Как отключить XML sitemap в WordPress и не сломать индексацию

Ситуация типичная для сайтов на VDS и обычном хостинге: после смены SEO-плагина, переноса сайта или обновления ядра WordPress появляется лишняя XML-карта сайта, а иногда сразу две. В итоге поисковик видит дубли, в Search Console сыпятся предупреждения, а владелец сайта не понимает, что именно отключать: встроенный sitemap WordPress, карту из Yoast, Rank Math или отдельного плагина.

Если задача не в том, чтобы «убрать sitemap вообще», а в том, чтобы оставить одну корректную карту и убрать конфликт, действовать нужно аккуратно. Ниже — рабочая схема диагностики и отключения лишнего XML sitemap без потери индексации важных URL.

Когда sitemap действительно мешает

Отключать карту сайта имеет смысл не всегда. Проблема есть, если:

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

Если карта сайта одна, открывается без ошибок и содержит только нужные URL, отключать ее не нужно. Иногда проблема не в sitemap, а в неверной настройке robots.txt, кэша или редиректов.

Диагностика: какая карта сайта сейчас работает

Сначала нужно понять, кто именно генерирует XML sitemap. В WordPress это может быть ядро, SEO-плагин или отдельный генератор. Проверка занимает пару минут.

Проверьте адреса вручную

Откройте в браузере и через curl несколько типовых адресов:

curl -I https://example.com/sitemap.xml
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xml

Что смотреть:

  • 200 OK — карта существует;
  • 301/302 — есть редирект, возможно, на карту другого плагина;
  • 404 — адрес не используется;
  • 403 — карта закрыта сервером или правилом безопасности.

Если открываются сразу два адреса с разным содержимым, это уже конфликт. Например, /wp-sitemap.xml от WordPress и /sitemap_index.xml от SEO-плагина.

Посмотрите исходный код и заголовки

Иногда карта сайта подключена не напрямую, а через плагин, который добавляет ее в robots.txt или создает редирект. В таком случае полезно проверить заголовки ответа и сам HTML, если адрес открывается в браузере.

Для серверной диагностики удобно использовать:

curl -s https://example.com/robots.txt
curl -s https://example.com/sitemap.xml | head
curl -s https://example.com/wp-sitemap.xml | head

Если в robots.txt уже указан один sitemap, а по факту работает другой, поисковик будет получать противоречивые сигналы.

Как отключить встроенный sitemap WordPress

С версии 5.5 WordPress сам генерирует XML sitemap. Если вы используете Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин с собственной картой, встроенную карту ядра обычно отключают, чтобы не было дубля.

Самый безопасный способ — через фильтр wp_sitemaps_enabled. Его можно добавить в functions.php дочерней темы или в небольшой mu-plugin.

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

После этого адрес /wp-sitemap.xml должен перестать открываться. Если у вас уже есть карта от SEO-плагина, она продолжит работать отдельно.

Когда этот способ не подходит

Если вы не уверены, какой плагин отвечает за sitemap, не отключайте все подряд. Сначала проверьте, есть ли у SEO-плагина собственная карта. Например, у Yoast это обычно /sitemap_index.xml, у Rank Math — тоже свой индекс карт. В таком случае отключение ядра WordPress оправдано.

Как убрать sitemap в SEO-плагине без потери нужных URL

Иногда наоборот: встроенная карта WordPress нужна, а SEO-плагин генерирует лишнюю. Тогда отключение делается в интерфейсе плагина. Логика у большинства решений похожая: в настройках XML sitemap нужно выключить генерацию или исключить лишние типы записей.

Практически это выглядит так:

  • отключить карту для медиа-вложений, если они не нужны в индексе;
  • убрать служебные таксономии;
  • исключить архивы автора на сайтах без редакторской структуры;
  • проверить, не дублируются ли страницы пагинации.

Если плагин позволяет отключить sitemap полностью, делайте это только после того, как убедились, что другая карта уже работает и отдается с 200 OK.

Сравнение вариантов: что лучше отключать

ВариантЧто делаетПлюсМинус
Отключить wp-sitemap.xmlУбирает встроенную карту WordPressПросто и безопасно при наличии SEO-плагинаНужно убедиться, что другая карта уже работает
Отключить sitemap в SEO-плагинеОставляет карту ядраПодходит, если не нужен отдельный индекс картМожет быть меньше гибкости по исключениям
Оставить обе картыНичего не выключатьИногда допустимо на тестовом сайтеПочти всегда создает дубли и путаницу

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

  1. Определите, какой sitemap должен остаться основным.
  2. Проверьте, что он открывается с 200 OK.
  3. Отключите лишний генератор: ядро WordPress или SEO-плагин.
  4. Очистите кэш сайта, сервера и CDN, если он есть.
  5. Обновите robots.txt, если там указан старый адрес sitemap.
  6. Проверьте карту в браузере и через curl.
  7. Переотправьте актуальный sitemap в Search Console.

Если сайт работает на VDS с Nginx, не забудьте проверить, не закэширован ли старый редирект на уровне конфигурации. Иногда WordPress уже отключил карту, а сервер продолжает отдавать старый ответ из-за правил в конфиге или reverse proxy.

Проверка результата после внедрения

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

Что проверить вручную

  • /wp-sitemap.xml — должен возвращать 404 или не использоваться, если вы его отключили;
  • /sitemap_index.xml или другой основной адрес — должен открываться с 200 OK;
  • robots.txt — должен содержать только актуальный путь к sitemap;
  • в Search Console — нет новых ошибок по sitemap;
  • в кэше CDN и браузера нет старой версии карты.

Для быстрой проверки статуса удобно использовать:

curl -I https://example.com/sitemap_index.xml
curl -I https://example.com/wp-sitemap.xml
curl -s https://example.com/robots.txt | grep -i sitemap

Если адрес отключенной карты все еще отдает 200, значит, где-то остался второй источник генерации или редирект на уровне сервера.

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

Отключили не тот sitemap

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

Забыли очистить кэш

Если сайт использует плагин кэша, серверный кэш или CDN, старый sitemap может продолжать отдаваться даже после изменения настроек. После любых правок очистите все уровни кэша, иначе проверка будет ложной.

Оставили старый адрес в robots.txt

Поисковик может продолжать ходить по неактуальной карте, если она указана в robots.txt. Это не всегда критично, но создает шум в отчетах и мешает диагностике.

Скрыли sitemap через robots.txt вместо отключения

Это не одно и то же. Если карта генерируется и доступна по прямому URL, но вы просто убрали ссылку из robots.txt, она все равно может индексироваться и использоваться поисковиком. Если карта лишняя, отключайте генератор, а не только ссылку.

Безопасность и производительность

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

Практически полезно:

  • оставить только один генератор sitemap;
  • исключить из карты служебные и пустые типы записей;
  • не держать одновременно несколько SEO-плагинов с похожими функциями;
  • обновлять карту после массовых изменений контента, а не вручную править XML.

Если нужен более широкий набор инструментов для чистки дублей и SEO-настроек, можно посмотреть на Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какой именно sitemap должен остаться основным и где он генерируется.

Главный критерий успеха простой: у сайта должен остаться один корректный XML sitemap, который открывается без ошибок, содержит нужные URL и не конфликтует с robots.txt, кэшем и SEO-плагинами.

⭐⭐⭐⭐⭐