wpeasy.ru wordpress wpeasy.ru

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

XML sitemap в WordPress часто включают по умолчанию и потом забывают. Проблема начинается, когда карта сайта дублируется плагином SEO, содержит лишние типы записей, указывает на уже закрытые от индексации URL или просто создаёт шум в отчётах Search Console. В таких случаях правильнее не «лечить» карту сайта, а понять, кто её генерирует, и отключить лишнее без потери контроля над индексацией.

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

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

Сам по себе sitemap не вреден. Он становится проблемой, когда:

  • WordPress отдаёт встроенную карту, а SEO-плагин — свою, и поисковик видит несколько источников;
  • в sitemap попадают архивы, теги, авторы или другие страницы, которые вы не хотите индексировать;
  • карта содержит URL с редиректами, 404 или canonical на другой адрес;
  • на сайте есть staging-копия, и её sitemap случайно открыт для индексации;
  • после миграции остались старые карты сайта, которые продолжают отдавать 200 OK.

Как понять, что проблема именно в sitemap

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

Дальше посмотрите:

  • какой sitemap указан в Google Search Console;
  • нет ли в карте URL, которые вы закрывали через noindex или robots.txt;
  • не дублируются ли записи и таксономии между встроенной и плагинной картой;
  • не меняется ли содержимое карты после очистки кеша.

Сначала диагностика: кто генерирует карту сайта

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

Проверка простая: откройте исходный код главной страницы и найдите ссылку на sitemap, либо посмотрите настройки SEO-плагина. У Yoast, Rank Math и похожих решений карта обычно включается отдельно. Если плагин уже отдаёт индекс, встроенную карту WordPress лучше отключить.

Быстрая проверка через браузер и curl

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

Если оба адреса отвечают 200 OK, это не всегда ошибка, но чаще всего лишняя конкуренция двух карт. Если один из адресов отдаёт редирект или 404, сначала разберитесь, кто его создаёт и не сломан ли кеш.

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

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

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

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

Когда этого достаточно

Этот вариант подходит, если:

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

После отключения проверьте, что /wp-sitemap.xml больше не отдаёт активную карту. В идеале он должен возвращать 404 или редирект на актуальный sitemap, если вы так настроили сервер.

Если sitemap генерирует SEO-плагин

Здесь логика другая: не отключайте карту целиком, а уберите из неё лишние разделы. Это особенно важно, если в индекс попадают теги, авторы, архивы дат или служебные таксономии.

У большинства SEO-плагинов есть настройки индексации и sitemap в интерфейсе. Но если нужен точечный контроль, удобнее использовать фильтры плагина. Пример для WordPress-логики: отключить отдельный тип записей из sitemap через фильтр, если плагин его поддерживает. У разных SEO-плагинов названия фильтров отличаются, поэтому здесь важно смотреть документацию конкретного решения, а не копировать чужой код вслепую.

Если вы не уверены, лучше идти через настройки плагина, а не через хук. Это проще сопровождать и легче откатить.

Сравнение подходов

ПодходКогда подходитПлюсыМинусы
Отключить встроенный sitemap WordPressЕсть SEO-плагин со своей картойУбирает дубли на уровне ядраНужно убедиться, что альтернатива уже работает
Настроить карту в SEO-плагинеНужно оставить sitemap, но почистить егоГибко управляет типами URLЗависит от возможностей плагина
Оставить всё как естьСайт маленький, карта не мешаетНичего не ломаетеРиск дублей и лишнего шума в индексации

Пошаговое решение без лишнего риска

  1. Проверьте, какие sitemap доступны по URL /wp-sitemap.xml и /sitemap_index.xml.
  2. Убедитесь, что SEO-плагин уже генерирует свою карту и она открывается без ошибок.
  3. Отключите встроенный sitemap через wp_sitemaps_enabled.
  4. Очистите кеш сайта, CDN и серверный кеш, если он есть.
  5. Проверьте ответ сервера на старый URL sitemap.
  6. Обновите карту в Google Search Console, если менялся основной источник.

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

Проверка должна быть не визуальной, а технической. Смотрите на HTTP-ответ и содержимое страницы.

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

После отключения встроенной карты:

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

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

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

Отключили встроенный sitemap, но забыли включить альтернативу

В результате сайт остаётся без актуальной карты. Исправление простое: сначала включите sitemap в SEO-плагине, потом отключайте встроенный.

Правили файл плагина напрямую

После обновления изменения исчезнут. Используйте фильтр, дочернюю тему или мини-плагин.

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

Старый sitemap продолжает отдаваться из кеша, и вы видите неактуальный результат. Очистите page cache, object cache и CDN, если он подключён.

Закрыли sitemap robots.txt

Это частая путаница. Robots.txt не отключает генерацию карты, а только подсказывает роботам, что не стоит её сканировать. Если карта уже отдаёт мусор, сначала исправьте сам sitemap.

Оставили в карте URL с noindex

Такой sitemap создаёт противоречие: вы одновременно просите поисковик не индексировать страницу и предлагаете её в карте. Лучше убрать эти URL из sitemap на уровне настроек или фильтра.

Практические советы по безопасности и производительности

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

Для безопасности важно не светить staging-сайт и служебные разделы. Если тестовая копия доступна публично, закройте её на уровне сервера и проверьте, не отдаются ли там sitemap и robots.txt с боевого домена.

Если вам нужен более широкий контроль над технической чисткой сайта, в экосистеме WPShop есть Clearfy Pro, который помогает убирать лишние технические элементы и настраивать SEO-часть аккуратнее, без ручного правления ядра.

Что делать, если sitemap нужен, но в нём слишком много лишнего

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

Хорошее правило: sitemap должен отражать только те URL, которые вы реально хотите видеть в индексе. Если страница не должна индексироваться, она не должна попадать туда «по привычке».

<?php
// Пример: отключение встроенного sitemap WordPress на уровне мини-плагина.
/*
Plugin Name: Disable WP Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );

После внедрения ещё раз проверьте ответ /wp-sitemap.xml, карту в SEO-плагине и отчёты Search Console. Если всё совпадает с вашей логикой индексации, решение можно считать завершённым.

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее