Встроенные XML sitemaps в WordPress полезны не всегда. На живых проектах чаще встречается другая ситуация: карту сайта уже генерирует SEO-плагин, отдельный сервис или кастомный код, а ядро WordPress продолжает отдавать свой набор sitemap-URL. В итоге поисковики видят дубли, в консоли появляются лишние адреса, а при отладке непонятно, какая карта сайта вообще считается основной.
Если у вас уже есть рабочая карта сайта и вы хотите убрать стандартную генерацию WordPress, задача решается без вмешательства в ядро. Ниже разберём, когда это действительно нужно, как отключить встроенные XML sitemaps, чем заменить их при необходимости и как проверить, что после изменений сайт не потерял важные URL.
Когда встроенные sitemap WordPress мешают
Сама по себе функция не вредная. Проблемы начинаются, когда на сайте уже есть другой источник sitemap или когда стандартная карта сайта не подходит по логике проекта.
Типовые сценарии
- SEO-плагин уже отдаёт собственный
sitemap_index.xml, а WordPress дополнительно публикует/wp-sitemap.xml. - Нужно исключить часть контента по бизнес-логике, а стандартные sitemap не дают достаточно гибкости.
- На сайте есть нестандартные типы записей, таксономии или мультиязычность, и удобнее собирать карту сайта вручную.
- При аудите индексации в Search Console видно несколько карт сайта, которые дублируют одни и те же URL.
Если у вас один небольшой сайт без SEO-плагина, отключать встроенные sitemap обычно не нужно. Но если карта сайта уже управляется другим кодом, лучше оставить один источник правды.
Диагностика: кто сейчас отдаёт sitemap
Перед изменениями проверьте, откуда именно приходит карта сайта. Это важно, потому что отключение встроенного механизма WordPress не должно случайно убрать sitemap, который нужен поисковикам.
Что проверить вручную
- Откройте
/wp-sitemap.xmlи посмотрите, отдаётся ли стандартная карта WordPress. - Проверьте, не генерирует ли SEO-плагин свой индекс, например
/sitemap_index.xml. - Посмотрите исходный код главной страницы и шаблонов на наличие ссылок на sitemap.
- Если есть доступ к Search Console, сравните, какой sitemap добавлен вручную и какой индексируется.
Если одновременно доступны /wp-sitemap.xml и карта сайта плагина, это уже повод оставить только один вариант. Два индекса не дают пользы, но усложняют контроль.
Как отключить XML sitemaps в WordPress
В WordPress есть фильтр wp_sitemaps_enabled. Он отключает встроенный механизм генерации sitemap на уровне ядра. Это безопаснее, чем править файлы ядра или блокировать URL через сервер без понимания последствий.
Вариант через functions.php
Если вы управляете темой и не хотите ставить отдельный плагин для одной строки, добавьте код в functions.php дочерней темы или в собственный mu-plugin.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );
После этого стандартный адрес /wp-sitemap.xml должен перестать открываться как sitemap WordPress. Если на сайте есть другой механизм, он продолжит работать отдельно.
Вариант через mu-plugin
Для проектов, где изменения не должны зависеть от темы, лучше использовать mu-plugin. Такой код не выключится после смены шаблона.
<?php
/**
* Plugin Name: Disable Core XML Sitemaps
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Файл положите в wp-content/mu-plugins/. Если папки нет, создайте её вручную. Это удобный вариант для технических правок, которые должны жить отдельно от темы.
Чем заменить встроенную карту сайта
Если вы отключаете стандартный механизм, у вас должен быть понятный источник sitemap. Иначе поисковики просто потеряют актуальный список URL.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин с собственным sitemap | Если уже используется Yoast SEO, Rank Math или аналог | Нужно следить за настройками и не дублировать URL |
| Кастомный sitemap через код | Если структура сайта нестандартная и нужна точная логика | Нужно поддерживать код и тестировать обновления |
| Оставить встроенный sitemap WordPress | Если сайт простой и дополнительных требований нет | Меньше контроля над составом URL |
Если у вас уже работает SEO-плагин, чаще всего достаточно отключить встроенный sitemap WordPress и оставить только один индекс. Если нужен более тонкий контроль, можно собрать собственный sitemap endpoint, но это уже отдельная задача с генерацией XML и кешированием.
Проверка результата после внедрения
После отключения важно не ограничиться открытием страницы в браузере. Нужно проверить ответ сервера и убедиться, что поисковики видят именно тот sitemap, который вы планировали оставить.
Что проверить по шагам
- Откройте
/wp-sitemap.xmlи убедитесь, что он больше не отдаёт стандартный индекс WordPress. - Проверьте sitemap вашего SEO-плагина или кастомного решения.
- Посмотрите HTTP-статус ответа: для отключённого sitemap не должно быть случайного 200 с пустым содержимым.
- Если sitemap был добавлен в Search Console, проверьте, не появились ли ошибки обхода или дубли.
Для быстрой проверки можно использовать curl:
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xml
Если первый адрес больше не нужен, а второй остаётся рабочим, значит схема переключения выполнена корректно. Если оба адреса продолжают отдавать одинаковые URL, отключение не решило проблему дублирования.
Частые ошибки и как их исправить
Отключили sitemap, но забыли включить замену
Это самая неприятная ошибка. После отключения встроенного механизма сайт может остаться без актуальной карты. Решение простое: сначала убедитесь, что новый sitemap уже работает, и только потом отключайте старый.
Правят код в родительской теме
Если фильтр добавлен в родительскую тему, он может исчезнуть после обновления или смены шаблона. Для таких правок лучше использовать дочернюю тему или mu-plugin.
Путают sitemap и robots.txt
Иногда карту сайта пытаются «выключить» через robots.txt. Это не отключает генерацию, а только скрывает ссылку от части ботов. Сам URL при этом продолжает существовать.
Ожидают, что Search Console обновится мгновенно
После смены sitemap поисковики не перестраивают индекс сразу. Нужна повторная отправка актуального sitemap и время на переобход. Это нормальное поведение, а не ошибка кода.
Практические советы по безопасности и производительности
Если сайт большой, sitemap может стать заметной точкой нагрузки. Встроенный механизм WordPress обычно не создаёт серьёзных проблем, но на проектах с большим количеством записей и таксономий лучше следить за генерацией и кешированием уже на уровне выбранного решения.
- Не держите логику sitemap в
functions.php, если проектом управляют несколько человек и тема часто обновляется. - Не отключайте встроенный sitemap без проверки альтернативы на staging-окружении.
- Если sitemap генерируется кастомно, проверьте, не создаёт ли он лишние запросы к базе на каждом открытии.
- После изменений очистите кеш страниц и, если есть, серверный кеш или CDN.
Если вам нужна более широкая чистка SEO-дублей и технических хвостов, иногда удобнее собрать это в одном инструменте, чем держать набор разрозненных правок. Но даже в этом случае важно понимать, какой именно URL отвечает за sitemap и кто его формирует.
Мини-чек-лист перед публикацией изменений
- Проверен текущий sitemap-источник.
- Встроенный
wp-sitemap.xmlотключён только после подготовки замены. - Новый sitemap открывается с корректным HTTP-статусом.
- В Search Console добавлен актуальный sitemap.
- Кеш сайта очищен.
- Нет дублей URL в нескольких индексах sitemap.
Если после отключения стандартной карты сайта вы видите, что поисковики продолжают обращаться к старому адресу, это обычно не проблема кода. Чаще всего нужно просто оставить старый URL доступным на время миграции или корректно перенести все ссылки на новый sitemap и дождаться переобхода.