Как создать автоматический sitemap в WordPress с помощью кода и плагина

Создание карты сайта (sitemap) — важный аспект SEO и удобства индексации вашего сайта поисковыми системами. В WordPress существует множество способов реализовать sitemap, от использования плагинов до написания собственного кода. В этой статье мы рассмотрим, как создать автоматический sitemap с помощью кода, а также познакомимся с удобным плагином, который упрощает задачу.

Что такое sitemap и зачем он нужен

Sitemap — это файл, в котором перечислены все важные страницы сайта. Он помогает поисковым роботам быстрее и эффективнее индексировать контент, особенно если структура сайта сложная или контент часто обновляется.

Для WordPress существует несколько форматов sitemap, но чаще всего используется XML sitemap.

Создаем простой автоматический sitemap с помощью кода

Если вы хотите обойтись без плагина и контролировать процесс самостоятельно, можно написать функцию, которая будет генерировать sitemap.xml на лету.

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wplesson_generate_sitemap() {
    // Проверяем, запрошен ли sitemap.xml
    if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], 'sitemap.xml') !== false) {
        header('Content-Type: application/xml; charset=utf-8');

        // Получаем все опубликованные записи
        $posts = get_posts(array(
            'numberposts' => -1,
            'post_type' => 'post',
            'post_status' => 'publish'
        ));

        // Начинаем формировать XML
        echo '<?xml version="1.0" encoding="UTF-8"?>';
        echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

        // Главная страница
        echo '<url><loc>' . get_home_url() . '</loc><priority>1.0</priority></url>';

        // Страницы записей
        foreach ($posts as $post) {
            echo '<url>';
            echo '<loc>' . get_permalink($post->ID) . '</loc>';
            echo '<lastmod>' . get_the_modified_date('c', $post->ID) . '</lastmod>';
            echo '<priority>0.8</priority>';
            echo '</url>';
        }

        echo '</urlset>';
        exit;
    }
}
add_action('init', 'wplesson_generate_sitemap');

Этот код ловит запрос к sitemap.xml, формирует XML-файл с главной страницей и всеми постами. Такой sitemap автоматически обновляется при изменении контента.

Как проверить работу

Просто перейдите в браузере по адресу https://ваш-сайт.ru/sitemap.xml. Вы должны увидеть XML-карту сайта.

Улучшение sitemap: добавляем страницы, категории и кастомные типы записей

Чтобы sitemap был более полным, можно добавить страницы, категории и кастомные типы записей. Вот пример расширенного кода:

function wplesson_generate_advanced_sitemap() {
    if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], 'sitemap.xml') !== false) {
        header('Content-Type: application/xml; charset=utf-8');

        echo '<?xml version="1.0" encoding="UTF-8"?>';
        echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

        // Главная
        echo '<url><loc>' . get_home_url() . '</loc><priority>1.0</priority></url>';

        // Страницы
        $pages = get_pages();
        foreach ($pages as $page) {
            echo '<url>';
            echo '<loc>' . get_permalink($page->ID) . '</loc>';
            echo '<lastmod>' . get_the_modified_date('c', $page->ID) . '</lastmod>';
            echo '<priority>0.7</priority>';
            echo '</url>';
        }

        // Записи
        $posts = get_posts(array('numberposts' => -1, 'post_status' => 'publish'));
        foreach ($posts as $post) {
            echo '<url>';
            echo '<loc>' . get_permalink($post->ID) . '</loc>';
            echo '<lastmod>' . get_the_modified_date('c', $post->ID) . '</lastmod>';
            echo '<priority>0.8</priority>';
            echo '</url>';
        }

        // Категории
        $categories = get_categories();
        foreach ($categories as $cat) {
            echo '<url>';
            echo '<loc>' . get_category_link($cat->term_id) . '</loc>';
            echo '<priority>0.6</priority>';
            echo '</url>';
        }

        echo '</urlset>';
        exit;
    }
}
add_action('init', 'wplesson_generate_advanced_sitemap');

Такой sitemap будет охватывать основные разделы сайта, улучшая индексацию.

Используем плагин для автоматического sitemap — WP SEO by WPSHOP

Если вы хотите получить расширенный функционал без написания кода, советуем плагин WP SEO от WPSHOP. Он автоматически генерирует sitemap, поддерживает кастомные типы записей, таксономии и интегрируется с популярными SEO-сервисами.

Преимущества плагина:

  • Автоматическое обновление sitemap при изменении контента.
  • Поддержка нескольких форматов sitemap.
  • Возможность исключать страницы и категории из sitemap.
  • Интеграция с Google Search Console.

Как установить и настроить WP SEO

  1. Перейдите в админку WordPress → Плагины → Добавить новый.
  2. Найдите «WP SEO by WPSHOP» и установите плагин.
  3. Активируйте плагин и перейдите в его настройки.
  4. Настройте типы записей, которые хотите включить в sitemap.
  5. Проверьте sitemap по адресу https://ваш-сайт.ru/sitemap_index.xml.

Как добавить ссылку на sitemap в robots.txt и в Google Search Console

Для улучшения индексации важно указать поисковикам местоположение sitemap. Для этого добавьте в файл robots.txt следующую строку:

Sitemap: https://ваш-сайт.ru/sitemap.xml

Если используете плагин с другим адресом, укажите его.

Также зайдите в Google Search Console, добавьте ваш сайт и вручную отправьте sitemap для быстрой индексации.

Заключение: что выбрать — код или плагин

Если у вас небольшой сайт и вы хотите минимизировать установку плагинов, кодовый вариант отлично подойдет. Он простой и быстрый.

Если же сайт большой, с кастомным контентом и вам нужны дополнительные опции — пользуйтесь плагином WP SEO от WPSHOP, который оптимизирует работу и облегчит настройку.

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

Как избежать проблем с базой данных при миграции WordPress
22.01.2026
Как удалить пустые meta данные в WordPress для ускорения сайта
23.03.2026
Как изменить URL товара WooCommerce без потери SEO
22.04.2026
Использование WP-Cron для автоматического очищения кеша и базы данных в WordPress
12.05.2026
Как добавить несколько обложек для записи в WordPress
13.01.2026