Встроенная XML Sitemap в WordPress полезна не всегда. На небольших сайтах она обычно не мешает, но в реальных проектах часто возникает другая задача: убрать лишний источник URL, если карту уже генерирует SEO-плагин, если нужно исключить служебные типы записей или если sitemap начинает отдавать мусорные ссылки после миграции темы и плагинов.
Проблема в том, что отключать sitemap «в лоб» нельзя без проверки. Если у вас уже настроена индексация через Yoast SEO, Rank Math или другой SEO-плагин, легко получить дублирующий sitemap, а иногда и конфликт по каноническим URL. Ниже — как понять, нужен ли вам встроенный sitemap WordPress, как отключить его безопасно и как проверить, что ничего не сломалось.
Когда встроенный XML Sitemap действительно мешает
С 5.5 WordPress умеет отдавать базовую XML Sitemap из коробки. Для простого блога это удобно, но в проектах с SEO-настройками часто появляется дублирование. Типичный сценарий: SEO-плагин уже генерирует собственную карту сайта, а встроенная карта WordPress остаётся доступной по адресу /wp-sitemap.xml. В итоге поисковик видит два источника, а вы — лишнюю точку контроля.
Симптомы, которые стоит проверить
- в
/wp-sitemap.xmlоткрывается карта, хотя SEO-плагин уже создаёт свою; - в sitemap попадают записи, которые вы не хотите индексировать;
- после обновления плагина или темы в карте появляются лишние типы контента;
- в Search Console есть URL из служебных разделов, хотя они не должны индексироваться;
- на сайте несколько sitemap-источников, и непонятно, какой из них основной.
Если у вас нет SEO-плагина и карта WordPress нужна как единственный источник, отключать её обычно не стоит. В таком случае лучше сначала настроить исключения, а не убирать механизм целиком.
Диагностика: кто именно генерирует sitemap
Перед изменениями проверьте, не дублирует ли карту сайт-плагин. Откройте /wp-sitemap.xml и посмотрите, отдает ли WordPress карту без участия SEO-плагина. Затем проверьте настройки установленного SEO-решения: у Yoast и Rank Math свои sitemap-эндпоинты, и именно они обычно должны быть основными.
Если доступ к серверу есть, полезно быстро посмотреть, не подключён ли фильтр отключения sitemap в теме или mu-plugin. Иногда проблема не в WordPress, а в кастомном коде, который уже блокирует карту частично и создаёт странное поведение.
add_filter( 'wp_sitemaps_enabled', '__return_false' );Если такой код уже есть, встроенная sitemap отключена. Тогда вопрос не в том, как её выключить, а в том, не сломал ли этот фильтр работу другого решения, которое рассчитывает на стандартный механизм WordPress.
Как отключить XML Sitemap в WordPress
Самый надёжный способ — использовать штатный фильтр wp_sitemaps_enabled. Это не хак и не правка ядра, а официальный механизм WordPress. Его можно добавить в functions.php дочерней темы, в собственный плагин или в mu-plugin, если нужно, чтобы настройка не зависела от темы.
Вариант 1. Отключить полностью
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого адрес /wp-sitemap.xml должен перестать отдавать карту. Если на сайте есть SEO-плагин, его sitemap продолжит работать отдельно.
Вариант 2. Отключить только для части сайта
Иногда полностью выключать карту не нужно. Например, вы хотите оставить стандартный sitemap для одного окружения, но убрать его на продакшене, где уже работает SEO-плагин. В таком случае фильтр можно сделать условным.
add_filter( 'wp_sitemaps_enabled', function( $enabled ) {
if ( defined( 'WP_ENVIRONMENT_TYPE' ) && WP_ENVIRONMENT_TYPE === 'production' ) {
return false;
}
return $enabled;
} );Такой подход полезен, если вы тестируете миграцию между SEO-плагинами и не хотите сразу ломать текущую индексацию на боевом сайте.
Вариант 3. Оставить sitemap, но убрать лишние типы
Если проблема не в самой карте, а в отдельных разделах, лучше точечно исключить ненужные post type или taxonomy. Это безопаснее, чем отключать всё целиком. Для этого обычно используют фильтры WordPress sitemap, но важно проверять конкретный тип контента, который вы убираете, чтобы не вырезать нужные URL случайно.
Например, если у вас есть служебный тип записей, который не должен попадать в sitemap, логика будет строиться вокруг фильтрации списка публичных объектов. Реализация зависит от структуры сайта, поэтому здесь важно не копировать код без адаптации к вашему проекту.
Что выбрать: код, плагин или настройка SEO-плагина
Если у вас уже стоит SEO-плагин, сначала ищите переключатель sitemap именно там. Это проще в сопровождении, чем держать отдельный код в теме. Если же карта WordPress мешает, а SEO-плагин не используется, фильтр в коде — самый чистый вариант.
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройка в SEO-плагине | Если sitemap уже генерирует Yoast SEO, Rank Math или аналог | Нужно помнить, где именно включён источник |
Фильтр wp_sitemaps_enabled | Если нужно отключить встроенную карту WordPress | Требует доступа к коду |
| Оставить как есть | Если sitemap один и он корректен | Меньше контроля над составом URL |
Если вам нужен более широкий набор инструментов для технической чистки сайта, в том числе управление дублями и служебными URL, иногда удобнее смотреть в сторону комплексных решений вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае сначала проверьте, не решается ли задача штатными средствами WordPress и вашего SEO-плагина.
Проверка результата после внедрения
После отключения sitemap не ограничивайтесь открытием страницы в браузере. Нужна проверка по нескольким точкам.
- Откройте
/wp-sitemap.xmlв браузере и убедитесь, что страница не отдаёт XML-карту. - Проверьте HTTP-статус ответа: если карта отключена, не должно быть корректной XML-структуры.
- Посмотрите sitemap в SEO-плагине, если он используется: он должен остаться доступным.
- В Search Console проверьте, не отправляете ли вы старый sitemap-URL в качестве основного источника.
- Сделайте поиск по сайту на наличие ссылок на
wp-sitemap.xmlв шаблонах, robots.txt и настройках плагинов.
Если после отключения карта всё ещё открывается, значит код не загрузился, фильтр добавлен не туда или его перебивает другой плагин. В таком случае сначала ищите место подключения, а не меняйте ядро WordPress.
Частые ошибки и как их исправить
Отключили встроенный sitemap, но забыли про SEO-плагин
Это нормальный сценарий, если у вас есть альтернативная карта. Ошибка начинается тогда, когда вы отключили WordPress sitemap, а SEO-плагин тоже выключен или не настроен. Тогда поисковики остаются без актуальной карты сайта. Исправление простое: либо включите sitemap в SEO-плагине, либо верните встроенный механизм.
Добавили код в файл, который не загружается
Часто фильтр вставляют в неактивную тему, в случайный файл шаблона или в плагин, который отключается при обновлении. Для постоянной настройки лучше использовать дочернюю тему или собственный мини-плагин.
Путают sitemap и robots.txt
Отключение XML Sitemap не равно закрытию индексации. Sitemap — это карта URL, а robots.txt — лишь подсказка для роботов. Если вы хотите убрать страницу из индекса, нужен отдельный механизм: noindex, каноникал или исключение из генерации URL.
Проверяют только главную страницу sitemap
Иногда /wp-sitemap.xml отключён, но в SEO-плагине остались активные подкарты, а в Search Console продолжают приходить старые сигналы. Проверяйте весь набор sitemap-URL, а не только один адрес.
Безопасность и производительность: что учесть
С точки зрения производительности встроенная sitemap не самая тяжёлая часть сайта, но на больших проектах лишние генераторы карт создают путаницу и лишние запросы. Если у вас уже есть один стабильный источник sitemap, второй лучше убрать, чтобы не поддерживать два разных механизма индексации.
С точки зрения безопасности важно не отключать sitemap через правку ядра. Любое обновление WordPress перезапишет изменения, а ручные правки в core почти всегда заканчиваются проблемами при сопровождении. Используйте фильтр, mu-plugin или настройки SEO-плагина.
Если нужен контроль не только над sitemap
На практике отключение XML Sitemap часто идёт вместе с другими задачами: убрать служебные URL, почистить дубли, отключить лишние встроенные функции и привести техническую часть сайта к одному стандарту. Если вы ведёте несколько проектов и не хотите собирать всё вручную, удобнее держать эти настройки в одном месте, а не размазывать по теме и разным плагинам.
Но даже в этом случае правило остаётся прежним: сначала понять, кто генерирует URL и зачем, потом отключать. Тогда sitemap не станет случайной жертвой оптимизации, а действительно будет работать в вашей схеме индексации.