Как создать уникальный XML Sitemap в WordPress для улучшения индексации

Что такое XML Sitemap и зачем он нужен в WordPress

XML Sitemap – это файл, который содержит структурированный список ссылок на страницы вашего сайта, помогающий поисковым системам лучше индексировать контент. Для WordPress создание и настройка sitemap особенно важна, если у вас много страниц, кастомных типов записей (Custom Post Types), таксономий или сложная структура сайта.

Стандартные плагины вроде Yoast SEO или Rank Math создают sitemap автоматически, но часто они не учитывают специфические требования проекта или не дают гибкости в управлении контентом для индексации. В этой статье мы рассмотрим, как создать уникальный XML Sitemap с кастомными настройками, и приведём примеры кода для решения конкретных задач.

Основные проблемы стандартных Sitemap и их решения

Часто стандартные sitemap имеют следующие ограничения:

  • Отсутствие поддержки кастомных типов записей или таксономий.
  • Нет фильтрации по определённым параметрам, например, исключение черновиков, товаров из категории «архив» и т.п.
  • Проблемы с приоритетами и частотой обновления (priority и changefreq).

Для решения этих проблем можно использовать либо плагины с расширенными настройками, либо написать свой sitemap с помощью хуков WordPress.

Использование плагинов для создания кастомного Sitemap

Плагин Clearfy Pro

Clearfy Pro – мощный инструмент для оптимизации WordPress, который позволяет гибко настраивать sitemap. В частности, он поддерживает исключение ненужных страниц, настройку приоритетов и частоты обновления.

Для активации расширенных настроек sitemap в Clearfy Pro:

  1. Установите и активируйте плагин Clearfy Pro.
  2. Перейдите в настройки SEO → Sitemap.
  3. Выберите нужные типы записей и таксономии для включения или исключения из sitemap.
  4. Настройте приоритеты для разных разделов сайта.

Плагин WPGPT для генерации динамических sitemap

Если сайт использует много динамического контента и кастомных запросов, можно применить WPGPT, который позволяет создавать sitemap на основе GPT-алгоритмов и фильтровать URL по специфическим признакам.

Это полезно, если нужно автоматически обновлять sitemap при добавлении нового контента без нагрузки на сервер.

Написание собственного уникального XML Sitemap с помощью кода

Если вам нужно тонко контролировать содержимое sitemap, можно создать свой файл sitemap.php и подключить его через rewrite rules в WordPress.

Шаг 1. Создание функции для вывода sitemap

function wpinfo_generate_custom_sitemap() {
    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">';

    $args = [
        'post_type' => ['post', 'page', 'product'], // кастомизируйте типы записей
        'post_status' => 'publish',
        'posts_per_page' => -1
    ];
    $query = new WP_Query($args);

    while ($query->have_posts()) {
        $query->the_post();
        echo '<url>';
        echo '<loc>' . get_permalink() . '</loc>';
        echo '<lastmod>' . get_the_modified_date('c') . '</lastmod>';
        echo '<changefreq>weekly</changefreq>';
        echo '<priority>0.8</priority>';
        echo '</url>';
    }

    wp_reset_postdata();

    echo '</urlset>';
    exit;
}

Шаг 2. Добавление rewrite правила для sitemap.xml

function wpinfo_add_sitemap_rewrite_rule() {
    add_rewrite_rule('^custom-sitemap\.xml$', 'index.php?custom_sitemap=1', 'top');
}
add_action('init', 'wpinfo_add_sitemap_rewrite_rule');

function wpinfo_add_query_var($vars) {
    $vars[] = 'custom_sitemap';
    return $vars;
}
add_filter('query_vars', 'wpinfo_add_query_var');

function wpinfo_template_redirect() {
    if (get_query_var('custom_sitemap')) {
        wpinfo_generate_custom_sitemap();
    }
}
add_action('template_redirect', 'wpinfo_template_redirect');

Шаг 3. Сброс пермалинков

После добавления кода нужно зайти в настройки → постоянные ссылки и просто сохранить изменения, чтобы обновить правила перезаписи.

Расширение функционала: добавление кастомных таксономий и фильтрация по мета-полям

Чтобы включить в sitemap кастомные таксономии, например «product_category», и исключить записи с определённым мета-ключом, дополните аргументы WP_Query:

$args = [
    'post_type' => ['post', 'page', 'product'],
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'tax_query' => [
        [
            'taxonomy' => 'product_category',
            'field' => 'slug',
            'terms' => ['archive'],
            'operator' => 'NOT IN'
        ]
    ],
    'meta_query' => [
        [
            'key' => '_exclude_from_sitemap',
            'compare' => 'NOT EXISTS'
        ]
    ]
];

Таким образом, вы исключите из sitemap записи в категории «archive» и те, в которых установлен мета-ключ _exclude_from_sitemap.

Выводы и рекомендации

Уникальный XML Sitemap, созданный с учётом специфики проекта, помогает улучшить индексацию сайта и повысить позиции в поисковой выдаче. Если вы не хотите писать код, воспользуйтесь плагинами Clearfy Pro или расширенными настройками WPGPT.

Если же нужен полный контроль, создайте свой sitemap с помощью WP_Query и rewrite правил, как показано в примерах выше. Это позволит точно управлять, какие страницы и записи попадут в sitemap, с какой частотой и приоритетом.

Не забывайте регулярно обновлять sitemap и сообщать о его изменениях в Google Search Console и других поисковых системах.

Автоматическая оптимизация базы данных WordPress: практические решения и примеры кода
10.02.2026
Как создать уникальный XML Sitemap в WordPress для улучшения индексации
06.01.2026
Как добавить автоматические уведомления о обновлениях тем и плагинов в WordPress
17.04.2026
WordPress авторизация без пароля: настройка и применение
05.12.2025
Как отладить проблемы с отображением визуального редактора Gutenberg в WordPress
27.11.2025