WPFAQ

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

Встроенная XML Sitemap в WordPress обычно полезна, но на практике она не всегда нужна в текущем виде. Частый сценарий: сайт уже отдаёт карты через SEO-плагин, а стандартный генератор WordPress создаёт дубли, лишние URL в индексе или путаницу в Search Console. Ещё один вариант — карта сайта нужна только частично, а часть записей, медиа или архивов вы хотите исключить на уровне логики сайта.

Ниже — рабочие способы отключить встроенную XML Sitemap в WordPress, проверить, что именно отдаёт сайт, и не сломать индексацию важных страниц.

Когда встроенная XML Sitemap мешает

Проблема обычно проявляется не в самом факте наличия карты сайта, а в конфликте источников. WordPress с версии 5.5 умеет генерировать sitemap сам. Если у вас уже стоит Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин, он часто тоже создаёт собственную карту. В итоге поисковик видит несколько sitemap-источников, а вы — лишние вопросы в отчётах.

Типичные симптомы

  • в /wp-sitemap.xml открывается карта WordPress, но в SEO-плагине уже есть своя;
  • в Search Console появляются URL карт сайта, которые вы не планировали отдавать;
  • в sitemap попадают типы записей или таксономии, которые давно закрыты от индексации;
  • после миграции старые карты продолжают отдавать 200 OK и создают дубли;
  • робот тратит время на технические URL вместо нужных страниц.

Диагностика: что именно сейчас отдаёт сайт

Перед изменениями проверьте, кто формирует карту сайта. Это важно, потому что отключать встроенный sitemap WordPress имеет смысл только если вы понимаете, чем его заменяете.

  1. Откройте /wp-sitemap.xml в браузере.
  2. Проверьте, отдаётся ли XML-страница WordPress или редирект на sitemap SEO-плагина.
  3. Посмотрите исходный код: в нём обычно видно, какие разделы включены.
  4. Если стоит SEO-плагин, откройте его настройки sitemap и сравните список URL.
  5. Проверьте ответ сервера через curl -I https://example.com/wp-sitemap.xml.
curl -I https://example.com/wp-sitemap.xml

Если ответ 200 OK и содержимое — стандартная XML-карта WordPress, значит встроенный генератор активен. Если там редирект или кастомная карта от плагина, отключать нужно именно встроенный механизм, а не всё подряд.

Как отключить встроенную XML Sitemap кодом

Самый надёжный способ — отключить генератор через фильтр wp_sitemaps_enabled. Это штатный хук WordPress, он не требует правки ядра и нормально переживает обновления.

<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );

Код можно добавить в functions.php дочерней темы, в собственный мини-плагин или в mu-plugin. Для production-сайта mu-plugin обычно удобнее: он не зависит от темы и не исчезнет после её смены.

Вариант через mu-plugin

Создайте файл, например wp-content/mu-plugins/disable-wp-sitemap.php, и добавьте туда:

<?php
/**
 * Plugin Name: Disable WordPress Sitemap
 */
add_filter( 'wp_sitemaps_enabled', '__return_false' );

После этого встроенная карта WordPress перестанет генерироваться, а запрос к /wp-sitemap.xml должен вернуть 404 или ответ, который отдаёт ваш SEO-плагин, если он перехватывает этот адрес.

Если sitemap нужен, но только частично

Иногда отключать всё не нужно. Например, вы хотите оставить sitemap для записей и страниц, но убрать вложения, служебные типы записей или отдельные таксономии. Тогда лучше не выключать генератор целиком, а ограничить набор сущностей.

WordPress позволяет управлять объектами sitemap через фильтры. Для таксономий и типов записей можно исключать конкретные элементы на уровне логики плагина или темы. Если задача сложнее, чем просто выключить встроенный sitemap, безопаснее делать это в SEO-плагине, где уже есть готовые настройки.

ПодходКогда подходитМинус
Отключить через wp_sitemaps_enabledЕсть отдельный sitemap от SEO-плагина или он не нужен вообщеНужно убедиться, что поисковик не потеряет карту
Оставить встроенный sitemap и настроить исключенияНужна только часть URLТребует аккуратной настройки фильтров
Полностью перейти на sitemap SEO-плагинаУже используете Yoast SEO, Rank Math или аналогНужно убрать дубли и проверить редиректы

Пошаговое решение без дублей

  1. Определите, какой sitemap должен быть основным: WordPress или SEO-плагин.
  2. Если основной sitemap отдаёт плагин, отключите встроенный генератор WordPress через wp_sitemaps_enabled.
  3. Проверьте, не остались ли старые ссылки на /wp-sitemap.xml в robots.txt, шаблонах или внешних сервисах.
  4. Обновите sitemap в Search Console.
  5. Проверьте, что в карте нет лишних типов записей, архивов и медиа-URL.

Если нужен редирект со старого адреса

Иногда на сайте уже есть внешние ссылки на /wp-sitemap.xml. В таком случае можно не просто отключить генератор, а отдать 301 на новый sitemap, если он действительно существует. Делать это лучше на уровне сервера или через плагин редиректов, а не в шаблоне темы.

Пример для functions.php — только если вы понимаете, что делаете и не используете отдельный плагин для редиректов:

<?php
add_action( 'template_redirect', function () {
    if ( isset( $_SERVER['REQUEST_URI'] ) && $_SERVER['REQUEST_URI'] === '/wp-sitemap.xml' ) {
        wp_redirect( home_url( '/sitemap_index.xml' ), 301 );
        exit;
    }
} );

Этот вариант рабочий, но не самый чистый. Для постоянной эксплуатации лучше настроить редирект на уровне Nginx/Apache или через специализированный плагин.

Как проверить, что решение сработало

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

  • откройте /wp-sitemap.xml и убедитесь, что он больше не отдаёт встроенную карту WordPress;
  • проверьте заголовки через curl -I;
  • посмотрите, нет ли дублирующего sitemap в SEO-плагине;
  • обновите sitemap в Google Search Console;
  • проверьте robots.txt, если там вручную прописан старый адрес карты сайта;
  • посмотрите логи сервера: нет ли массовых 404 на старый sitemap после изменения.
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xml

Если вы отключали встроенный sitemap, а /wp-sitemap.xml всё ещё отдаёт XML, значит фильтр не применился. Обычно причина в том, что код добавили не туда, где он реально загружается, или кэш отдаёт старую версию ответа.

Частые ошибки и как их исправить

Отключили sitemap, но не включили замену

Это самая неприятная ошибка. Поисковик теряет карту сайта, а вы замечаете это только после падения числа обнаруженных URL. Решение простое: сначала убедитесь, что новый sitemap уже отдаётся и доступен по стабильному адресу, и только потом отключайте старый.

Добавили код в тему, а потом сменили шаблон

Если код лежит в functions.php активной темы, после смены темы он исчезнет. Для технической настройки лучше использовать mu-plugin или собственный плагин.

Не очистили кэш

Кэш страницы, CDN или серверный кэш может продолжать отдавать старую XML-страницу. После изменений очистите все уровни кэша и проверьте ответ повторно.

Оставили дубли в SEO-плагине

Если у вас уже есть sitemap от Yoast SEO, Rank Math или другого плагина, не держите одновременно два активных источника без необходимости. Это не всегда ломает сайт, но почти всегда усложняет диагностику.

Что учесть для безопасности и производительности

Отключение встроенной XML Sitemap само по себе не ускоряет сайт заметно, но помогает убрать лишнюю путаницу в технической части. Если вы делаете это на боевом проекте, проверьте ещё несколько вещей:

  • не оставляйте в robots.txt старые адреса карт сайта;
  • не закрывайте sitemap через noindex — это не тот механизм;
  • не редактируйте ядро WordPress;
  • не ставьте два SEO-плагина одновременно ради одной карты сайта;
  • проверяйте изменения на staging, если сайт большой и уже проиндексирован.

Если вам нужно не только убрать дубли, но и системно почистить технические хвосты WordPress, в таких задачах часто используют Clearfy Pro: он закрывает часть типовых SEO- и cleanup-сценариев без ручной правки кода. Но даже с плагином всё равно стоит проверять, какой именно sitemap остаётся активным и кто его отдаёт.

Когда лучше не отключать встроенный sitemap

Если на сайте нет SEO-плагина, а карта WordPress — единственный источник sitemap, отключать её не стоит без замены. То же самое касается небольших сайтов, где карта нужна просто как базовый сигнал для поисковика. В таких случаях лучше оставить стандартный механизм и только убрать из него лишние типы контента, если они действительно мешают.

Практический ориентир простой: если после отключения вы не можете сразу назвать новый источник sitemap и проверить его ответ, значит рано выключать встроенный генератор WordPress.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее