Гид по технологиям

Как создать sitemap XML в WordPress без плагина

5 min read SEO Обновлено 05 Dec 2025
Как создать sitemap в WordPress без плагина
Как создать sitemap в WordPress без плагина

Скриншот сайта WordPress — пример рабочего сайта

Sitemap обязателен, если вы заботитесь о видимости в поиске: он упрощает краулинг и индексацию сайта. Следуя этому руководству, вы научитесь создавать sitemap XML вручную, вставлять код в тему и регистрировать файл в Google Search Console.

Содержание

  • Что такое XML‑sitemap?
  • Как создать sitemap в WordPress вручную
  • Вставка кода в редактор темы
  • Отправка sitemap в Google
  • Когда этот метод не подходит
  • Альтернативные подходы
  • Короткая методология действий
  • Чек‑листы по ролям
  • Критерии приёмки
  • Безопасность и приватность
  • Часто задаваемые вопросы

Что такое XML‑sitemap?

XML‑sitemap — это файл в формате XML, который перечисляет важные URL сайта и сопровождает их метаданными: дату последнего изменения, частоту изменения и приоритет. По протоколу Sitemap поисковые системы понимают структуру сайта и быстрее находят страницы.

Определение: XML‑sitemap — машиночитаемый план сайта, упрощающий индексацию для поисковых систем.

Как создать sitemap в WordPress вручную

Идея простая: получить список опубликованных постов и страниц, сформировать корректный XML и записать его в файл в корне сайта (например, custom-sitemap.xml). Ниже — готовая PHP‑функция, которую можно вставить в файл functions.php вашей темы.

// Function to create a sitemap.xml file in the root directory of the site
// You can uncomment the following lines if you wish to trigger the sitemap generation upon publishing a post or page
// add_action("publish_post", "eg_create_sitemap");
// add_action("publish_page", "eg_create_sitemap");

// Trigger sitemap generation whenever a post is saved
add_action("save_post", "eg_create_sitemap");

function eg_create_sitemap() {
    // Time offset handling
    $gmt_offset_raw = str_replace('-', '', get_option('gmt_offset'));
    if ($gmt_offset_raw === '') {
        $tempo = '+00:00';
    } else {
        if ($gmt_offset_raw < 10) {
            $tempo = ($gmt_offset_raw > 0 ? '+' : '-') . '0' . ltrim(get_option('gmt_offset'), '+-');
        } else {
            $tempo = get_option('gmt_offset');
        }
        if (strlen($tempo) == 2 || strlen($tempo) == 1) {
            $tempo .= ':00';
        }
        if ($tempo[0] !== '+' && $tempo[0] !== '-') {
            $tempo = '+' . $tempo;
        }
    }

    // Fetch all published posts and pages
    $postsForSitemap = get_posts(array(
        'numberposts' => -1,
        'orderby'     => 'modified',
        'post_type'   => array('post', 'page'),
        'post_status' => 'publish',
        'order'       => 'DESC'
    ));

    // Start building XML
    $sitemap = '';
    $sitemap .= "\n" . '' . "\n";

    // Add homepage
    $sitemap .= "\t\n";
    $sitemap .= "\t\t" . esc_url(home_url('/')) . "\n";
    $sitemap .= "\t\t" . date("Y-m-d\TH:i:s", current_time('timestamp', 0)) . $tempo . "\n";
    $sitemap .= "\t\tdaily\n";
    $sitemap .= "\t\t1.0\n";
    $sitemap .= "\t\n";

    // Add posts and pages
    foreach ($postsForSitemap as $post) {
        setup_postdata($post);
        $postdate = explode(" ", $post->post_modified);
        $sitemap .= "\t\n";
        $sitemap .= "\t\t" . get_permalink($post->ID) . "\n";
        $sitemap .= "\t\t" . $postdate[0] . 'T' . $postdate[1] . $tempo . "\n";
        $sitemap .= "\t\tweekly\n";
        $sitemap .= "\t\t0.5\n";
        $sitemap .= "\t\n";
    }
    wp_reset_postdata();

    // Close urlset
    $sitemap .= '';

    // Write to file in site root
    $fp = fopen(ABSPATH . "custom-sitemap.xml", 'w');
    if ($fp !== false) {
        fwrite($fp, $sitemap);
        fclose($fp);
    }
}

Советы:

  • Файл создаётся в корне сайта (ABSPATH). Убедитесь, что права на запись разрешают запись в корень.
  • При большом количестве страниц такой подход может потребовать оптимизации (пакетная обработка, кеширование).
  • Можно расширить код, чтобы исключать страницы с noindex или определённые типы постов.

Примечание: с помощью аналогичного подхода вы также можете формировать кастомные RSS‑ленты в WordPress.

Вставка кода в редактор темы

  1. Войдите в админ‑панель WordPress и перейдите в Внешний вид → Редактор тем (Appearance → Theme File Editor).

Пункт меню «Редактор тем» в админ‑панели WordPress, выделен

  1. Выберите файл Theme Functions (functions.php) в правой колонке.

Файл Theme Functions (functions.php) выбран в редакторе тем

  1. Прокрутите файл вниз, вставьте код и нажмите «Обновить файл».

Кнопка «Обновить файл» в редакторе тем WordPress

Если админ‑панель не позволяет редактировать файлы темы, скачайте functions.php из папки wp-content/themes/your-theme, внесите правки локально и загрузите обратно через FTP/SFTP.

Отправка sitemap в Google

После создания sitemap уведомьте Google:

  1. Откройте Google Search Console и добавьте сайт (если ещё не добавлен). Подтвердите права.
  2. В меню выберите Sitemaps.

Раздел «Sitemaps» в Google Search Console

  1. В поле «Add a new sitemap» введите адрес вашего sitemap, например https://website.com/custom-sitemap.xml, и нажмите Submit.

Поле добавления sitemap в Google Search Console

После отправки консоль покажет статус обработки и возможные ошибки. Индексация может занять от нескольких часов до нескольких дней — это зависит от размера сайта и частоты краулинга.

Рекомендуем одновременно настроить Google Tag Manager и отслеживание, чтобы видеть трафик на страницах.

Когда этот метод не подходит

  • Очень большой сайт (десятки тысяч URL): генерация в реальном времени может быть медленной, лучше использовать пакетную генерацию и разбиение sitemap на несколько файлов.
  • Хостинги с запретом на запись в корень: если нет доступа к ABSPATH или прав на запись, используйте FTP или плагины, которые могут сохранять файлы в доступном месте.
  • Нужна тонкая фильтрация/опрос сторонних постов: плагин с UI удобнее для менеджеров контента.

Альтернативные подходы

  • Использовать встроенный sitemap WordPress (/wp-sitemap.xml) — простой вариант без кода.
  • Плагин Yoast SEO, All in One SEO или Google XML Sitemaps — предлагают UI, фильтры и автоматическое разделение больших карт.
  • Генерация sitemap на стороне CI/CD: при деплое собирать актуальный sitemap и выкладывать в корень.

Короткая методология: шаги для быстрого выполнения

  1. Подготовьте резервную копию functions.php.
  2. Вставьте код и сохраните файл (локально или через редактор темы).
  3. Проверьте наличие файла https://your-site/custom-sitemap.xml.
  4. Отправьте URL в Google Search Console → Sitemaps.
  5. Мониторьте ошибки в Search Console и корректируйте исключения.

Чек‑листы по ролям

Владелец сайта:

  • Убедиться, что есть доступ к Search Console.
  • Проверить, что sitemap указан в robots.txt или доступен по URL.

Разработчик:

  • Вставить и протестировать функцию генерации.
  • Настроить права файла и резервное копирование.
  • Оптимизировать генерацию для больших сайтов (пагинация, кеш).

SEO‑специалист:

  • Проверить, исключены ли страницы noindex.
  • Настроить приоритеты и changefreq, если нужно.
  • Мониторить ошибки индексирования в Search Console.

Критерии приёмки

  • Файл custom-sitemap.xml доступен по адресу https://your-site/custom-sitemap.xml.
  • Sitemap валидируется через Search Console без ошибок.
  • Главные страницы (главная, топ‑категории, важные статьи) присутствуют в файле.
  • При публикации/обновлении контента дата lastmod обновляется корректно.

Факт‑бокс: что важно помнить

  • Формат: XML по протоколу sitemaps.org.
  • Имя файла может быть любым, главное — корректный URL в Search Console.
  • Sitemap не гарантирует индексацию, но ускоряет обнаружение страниц.

Безопасность и приватность

  • Не включайте в sitemap приватные страницы или страницы с персональными данными.
  • Обратите внимание на права записи в корне сайта — не давайте публичный доступ к FTP/SFTP.
  • Sitemap сам по себе не раскрывает конфиденциальных данных, но делает страницы более видимыми — фильтруйте контент с меткой noindex.

Часто задаваемые вопросы

Есть ли у WordPress встроенный sitemap?

Да. Начиная с версии 5.5 WordPress автоматически создаёт базовый sitemap по адресу /wp-sitemap.xml. Для большинства сайтов этого достаточно, но если нужна кастомизация, используйте собственный файл.

Нужен ли визуальный sitemap, если есть XML?

Визуальный sitemap помогает людям ориентироваться, XML — машинам. Для крупных сайтов визуальная карта удобна для навигации и планирования структуры.

Какой лучший бесплатный плагин для sitemap?

Популярные варианты: Yoast SEO, XML Sitemap Generator for Google и All in One SEO. Они удобны при отсутствии доступа к файлам темы или когда нужна расширенная фильтрация.

Краткий словарь

  • Sitemap: список URL сайта в XML для поисковых систем.
  • lastmod: метка времени последнего изменения страницы.
  • changefreq: предполагаемая частота изменения.
  • priority: относительный приоритет URL на сайте.

Фото: Unsplash. Скриншоты — David Morelo.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как играть в секретную мини‑игру Google Squid Game
Развлечения

Как играть в секретную мини‑игру Google Squid Game

Как сохранить файлы из iMessage в «Файлы»
iOS

Как сохранить файлы из iMessage в «Файлы»

Как исправить ошибки Avast 1316, 1638, 1603
Безопасность ПО

Как исправить ошибки Avast 1316, 1638, 1603

Добавить музыку в видео на iPhone
Видео

Добавить музыку в видео на iPhone

Двойная загрузка Windows 11 и Ubuntu — пошагово
Руководство

Двойная загрузка Windows 11 и Ubuntu — пошагово

Как загрузить резюме в LinkedIn
Карьера

Как загрузить резюме в LinkedIn