Встроенная XML-карта сайта в WordPress удобна, пока сайт не начинает жить по своим правилам: отдельный SEO-плагин уже генерирует sitemap, в индексе всплывают служебные архивы, а в /wp-sitemap.xml поисковик видит лишние URL. В такой ситуации лучше не «ломать всё подряд», а аккуратно убрать именно встроенную карту WordPress и оставить один понятный источник sitemap.
Ниже — рабочий сценарий: как понять, что у вас конфликт карт сайта, чем отключать встроенную XML sitemap, как проверить результат и какие ошибки чаще всего приводят к потере индексации.
Когда встроенная sitemap в WordPress действительно мешает
Сама по себе XML sitemap из ядра WordPress не вредна. Проблема начинается, когда на сайте уже есть другой генератор карты сайта или когда в карту попадают URL, которые вы не хотите отдавать поисковикам. Типичные признаки:
- в
robots.txtили в Search Console указаны сразу две sitemap; /wp-sitemap.xmlоткрывается, хотя вы используете Yoast SEO, Rank Math или другой SEO-плагин;- в карте сайта есть архивы авторов, дат, вложений, которые не нужны для индексации;
- после обновления WordPress поисковик начал видеть новые служебные URL.
Если у вас уже настроена карта сайта в SEO-плагине, обычно лучше оставить один источник. Дубли в sitemap не всегда критичны, но они создают лишний шум и усложняют диагностику.
Диагностика: что именно сейчас отдает карту сайта
Сначала проверьте, кто генерирует sitemap. Это можно сделать без доступа к серверу, просто открыв несколько адресов:
/wp-sitemap.xml— встроенная карта WordPress;/sitemap_index.xml— часто используется Yoast SEO;/sitemap.xml— нередко встречается у других плагинов;/robots.txt— там часто прописан основной адрес sitemap.
Если вы видите, что /wp-sitemap.xml доступен, а SEO-плагин уже генерирует свою карту, это и есть кандидат на отключение.
Полезно проверить ответ сервера через curl:
curl -I https://example.com/wp-sitemap.xmlЕсли в ответе 200 OK, встроенная карта активна. Если 404 или 410, значит она уже отключена или перехвачена другим правилом.
Как отключить встроенную XML sitemap в WordPress
Самый надежный способ — отключить генерацию через фильтр wp_sitemaps_enabled. Это штатный хук ядра WordPress, он работает без правки ядра и без установки лишних плагинов.
Вариант 1: через functions.php темы или mu-plugin
Если вам нужно быстро проверить поведение на тестовом сайте, можно добавить код в functions.php дочерней темы. Для продакшена лучше использовать mu-plugin, чтобы настройка не зависела от смены темы.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого WordPress перестанет отдавать встроенную sitemap по адресу /wp-sitemap.xml.
Вариант 2: через mu-plugin
Это более практичный вариант для боевого сайта. Создайте файл, например wp-content/mu-plugins/disable-wp-sitemap.php:
<?php
/**
* Plugin Name: Disable WP Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );Плюс такого подхода в том, что он не слетит при обновлении темы и не зависит от активного шаблона.
Если нужен не полный отказ, а только отключение отдельных разделов
Иногда встроенная sitemap нужна частично: например, вы хотите оставить записи и страницы, но убрать архивы авторов или вложения. Тогда не отключайте карту целиком, а фильтруйте провайдеры.
<?php
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) {
$disabled = array( 'users', 'posts' );
if ( in_array( $name, $disabled, true ) ) {
return false;
}
return $provider;
}, 10, 2 );Но здесь важно не путать провайдеры и типы контента. Если вы не уверены, какие именно разделы у вас отдает ядро, сначала откройте /wp-sitemap.xml и посмотрите структуру. У разных конфигураций набор может отличаться.
Сравнение подходов: плагин, код, компромисс
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код через фильтр | Нужно отключить встроенную sitemap WordPress | Прозрачно, без лишних зависимостей | Нужно место для кода и контроль после обновлений |
| SEO-плагин | Уже используете Yoast SEO, Rank Math и аналогичные решения | Управление sitemap из одного интерфейса | Легко получить дубли, если не отключить встроенную карту |
| Оставить как есть | Сайт маленький, sitemap одна и конфликтов нет | Ничего не нужно менять | Может появиться лишний шум в индексации |
Пошаговая проверка после внедрения
После отключения не ограничивайтесь открытием страницы в браузере. Проверьте результат по шагам:
- Откройте
/wp-sitemap.xmlв браузере — он должен вернуть ошибку 404 или пустую страницу, если вы специально так настроили сервер. - Проверьте заголовки ответа через
curl -Iи убедитесь, что адрес больше не отдает200 OK. - Откройте основную sitemap вашего SEO-плагина и убедитесь, что она доступна.
- Посмотрите
robots.txt: там должен остаться только один актуальный адрес sitemap. - В Search Console отправьте на проверку именно ту карту сайта, которую вы хотите использовать дальше.
Если у вас есть кэш на уровне сервера или CDN, очистите его. Иначе старый /wp-sitemap.xml может еще какое-то время отдаваться из кеша, и вы решите, что фильтр не сработал.
Частые ошибки и как их исправить
Отключили sitemap, но в индексе остались старые URL
Это нормально: поисковик не удаляет URL мгновенно. Если старые адреса уже были в индексе, они исчезнут не сразу. Не надо массово ставить noindex на всё подряд только из-за этого.
Сломали sitemap SEO-плагина
Частая причина — отключили не только встроенную карту WordPress, но и генерацию в плагине, а потом забыли оставить альтернативу. В итоге в robots.txt есть ссылка на несуществующий XML-файл. Проверьте, какой именно плагин должен быть источником sitemap, и оставьте только его.
Добавили код в родительскую тему
После обновления темы настройка исчезает. Для постоянного решения используйте дочернюю тему или mu-plugin.
Путают отключение sitemap с запретом индексации
Это разные вещи. Sitemap — это карта для поисковика. Запрет индексации управляется мета-тегами, robots.txt и настройками SEO-плагина. Если задача именно убрать лишнюю карту, не надо трогать индексацию всего сайта.
Что еще стоит проверить рядом с sitemap
Если вы уже наводите порядок в технической SEO-части, проверьте соседние настройки:
- не дублируется ли
robots.txtчерез плагин и сервер; - не отдаются ли архивы вложений как отдельные страницы;
- не создаются ли лишние архивы автора на сайте с одним редактором;
- не генерируются ли дубли через параметры URL;
- не конфликтует ли кэш с актуальной версией sitemap.
Для сайтов, где нужно не только убрать дубли, но и почистить технические настройки, иногда удобнее использовать специализированный набор оптимизаций вроде Clearfy Pro — но только если вы понимаете, какие именно функции вам нужны и не включаете все подряд.
Как понять, что решение сработало
Результат считается нормальным, если выполняются все условия:
/wp-sitemap.xmlбольше не отдает активную XML-карту;- в Search Console осталась только одна актуальная sitemap;
- в
robots.txtуказан один источник карты сайта; - SEO-плагин продолжает отдавать свою карту без ошибок;
- в логах и отчетах нет всплеска 404 по старому адресу sitemap.
Если после отключения встроенной карты сайт стал хуже индексироваться, проблема обычно не в самом фильтре, а в том, что вы убрали единственный рабочий источник sitemap и не оставили замену. В таком случае откатите изменение и сначала настройте альтернативную карту сайта, а уже потом отключайте встроенную.