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

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

Если у вас уже есть карта сайта от Yoast, Rank Math, SEOPress, Clearfy Pro или от собственного кода, встроенный генератор WordPress лучше отключить. Иначе поисковик может видеть несколько источников с разной логикой включения страниц, а это уже не косметическая проблема.

Когда встроенный sitemap мешает

Проблема обычно проявляется не сразу. Сайт открывается, страницы индексируются, но в Search Console появляются странные URL, часть записей дублируется в разных sitemap, а в логике исключений начинается хаос: один плагин убирает архивы, другой их возвращает, третий вообще не знает о кастомных типах записей.

Типичные сценарии:

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

Диагностика: как понять, что конфликт уже есть

Сначала проверьте, какой sitemap реально отдаёт сайт. В WordPress с версии 5.5 встроенный генератор доступен по адресу /wp-sitemap.xml. Если на проекте есть SEO-плагин, у него обычно свой адрес: например, /sitemap_index.xml или аналогичный.

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

  • открывается ли /wp-sitemap.xml и не отдаёт ли он XML с реальным содержимым;
  • есть ли в robots.txt ссылка на встроенный sitemap WordPress;
  • не дублируются ли одни и те же URL в нескольких sitemap;
  • не индексируется ли сам sitemap как обычная страница;
  • не ломается ли карта сайта после очистки кэша.

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

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

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

Как отключить XML sitemap штатно

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

Вариант через functions.php или mu-plugin

Если вам нужно отключить встроенный sitemap полностью, добавьте такой код:

add_filter( 'wp_sitemaps_enabled', '__return_false' );

Лучше размещать это не в активной теме, а в mu-plugins или в небольшом функциональном плагине. Тогда настройка не исчезнет при смене темы.

Вариант с условием

Иногда встроенный sitemap нужен только на части окружений. Например, на staging его лучше отключить, а на production оставить. Тогда используйте условие по домену или окружению:

add_filter( 'wp_sitemaps_enabled', function( $enabled ) {
	if ( defined( 'WP_ENVIRONMENT_TYPE' ) && WP_ENVIRONMENT_TYPE === 'staging' ) {
		return false;
	}

	return $enabled;
} );

Такой подход удобен, если вы тестируете SEO-логику на копии сайта и не хотите, чтобы поисковики случайно увидели служебные карты сайта.

Если sitemap должен остаться, но нужен контроль

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

Например, можно исключить конкретный post type:

add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
	unset( $post_types['attachment'] );
	unset( $post_types['revision'] );

	return $post_types;
} );

Или убрать таксономии, которые не нужны в индексации:

add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
	unset( $taxonomies['post_tag'] );

	return $taxonomies;
} );

Это полезно, если вы не хотите полностью отключать sitemap, но нужно сократить шум и убрать служебные разделы.

Сравнение подходов: плагин, код, сервер

ПодходКогда подходитПлюсыМинусы
Фильтр wp_sitemaps_enabledНужно отключить встроенный sitemap WordPressПросто, безопасно, без правки ядраТребует доступа к коду
SEO-плагинНужна гибкая карта сайта и управление индексированиемУдобный интерфейс, исключения по типам контентаМожет добавить лишнюю нагрузку и свои правила
Серверная настройкаНужно жёстко переопределить отдачу URLКонтроль на уровне nginx/apacheСложнее сопровождать, выше риск ошибки

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

  1. Определите, какой sitemap должен быть основным: встроенный WordPress, SEO-плагин или кастомный.
  2. Проверьте, не дублируются ли URL в нескольких XML-файлах.
  3. Если встроенный sitemap не нужен, отключите его через wp_sitemaps_enabled.
  4. Если нужен частично, исключите лишние post type и таксономии через фильтры.
  5. Обновите robots.txt и убедитесь, что там указан только один основной sitemap.
  6. Очистите кэш страницы, кэш объекта и CDN, если они используются.

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

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

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

Удобно проверить заголовки и код ответа:

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

Если один из адресов отдаёт 200, а второй 404, это уже понятная и контролируемая схема. Если оба активны и содержат похожие URL, конфликт ещё не устранён.

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

Отключили sitemap в теме, а после смены дизайна он вернулся

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

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

Чаще всего мешает кэш: плагин кэширования, серверный кэш или CDN. Очистите все уровни кэша и проверьте ответ повторно через curl -I.

В robots.txt осталась старая ссылка

Некоторые SEO-плагины и кастомные шаблоны robots.txt не обновляются автоматически. Если ссылка на неактуальный sitemap осталась, поисковик продолжит ходить по старому адресу.

Сломалась индексация медиа или кастомных типов записей

Значит, вы отключили не только встроенный sitemap, но и не подготовили замену. Сначала убедитесь, что новый sitemap покрывает все нужные типы контента, а потом убирайте старый.

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

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

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

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

Ключевая идея простая: не оставляйте в WordPress два независимых источника карты сайта, если они решают одну и ту же задачу. В техническом SEO это почти всегда создаёт лишнюю неопределённость, а не пользу.

Как отключить Emoji в WordPress и убрать лишние запросы из фронтенда
13.09.2026
Устранение дублей страниц в WordPress: canonical, noindex и редиректы
03.09.2026
Отключение XML-RPC pingback’ов в WordPress: как убрать лишние запросы и не сломать удалённую публикацию
20.09.2026
Как отключить XML sitemap в WordPress и оставить свой вариант
16.09.2026
Поиск и устранение 404 ошибок в WordPress: где ломаются ссылки и как быстро исправить
07.09.2026