Встроенная XML-карта сайта в WordPress полезна не всегда. На живом проекте она часто конфликтует с SEO-плагином, отдаёт лишние URL, дублирует типы записей или просто не совпадает с тем, что вы хотите отправлять в поисковые системы. Если у вас уже настроены отдельные правила индексации, проще взять генерацию sitemap под контроль и убрать встроенный вариант WordPress.
Ниже разберём, когда это действительно нужно, как отключить стандартную карту сайта, чем её заменить и как проверить, что поисковики видят только нужные файлы.
Когда встроенный sitemap WordPress становится проблемой
С версии 5.5 WordPress сам генерирует XML sitemap по адресу /wp-sitemap.xml. Для простого сайта это нормально, но в проектах с SEO-плагином, кастомными типами записей и отдельной логикой индексации начинаются накладки.
Типичные сценарии:
- SEO-плагин уже создаёт свой sitemap, а WordPress отдаёт второй, лишний вариант;
- в sitemap попадают архивы, авторы или CPT, которые вы не хотите индексировать;
- в логах видно, что поисковый робот ходит в старый адрес, а вы хотите оставить только карту от плагина;
- нужно полностью контролировать список URL и не зависеть от стандартного поведения ядра.
Что проверить до изменений
Сначала посмотрите, кто именно сейчас генерирует карту сайта. Если у вас установлен Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин, у него почти наверняка есть собственный sitemap. В этом случае отключение встроенного варианта WordPress обычно оправдано.
- Откройте
/wp-sitemap.xmlи проверьте, отдаётся ли XML; - проверьте sitemap SEO-плагина, например
/sitemap_index.xml; - сравните, нет ли в них одинаковых URL;
- посмотрите, не закрыт ли sitemap в robots.txt или на уровне сервера.
Как отключить стандартный XML sitemap в WordPress
В ядре WordPress для этого есть фильтр wp_sitemaps_enabled. Это безопаснее, чем править ядро или пытаться блокировать URL через .htaccess. Фильтр можно добавить в дочернюю тему, в mu-plugin или в небольшой собственный плагин.
Вариант через functions.php
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого адрес /wp-sitemap.xml перестанет работать, а WordPress не будет генерировать встроенные sitemap-файлы.
Вариант через отдельный mu-plugin
Если вы не хотите зависеть от темы, создайте файл wp-content/mu-plugins/disable-wp-sitemap.php и добавьте туда:
<?php
/**
* Plugin Name: Disable WP Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );Такой вариант удобнее на проектах, где тема может меняться, а логика SEO должна остаться неизменной.
Чем заменить встроенный sitemap
Если у вас уже есть SEO-плагин, обычно ничего дополнительно делать не нужно: его sitemap остаётся основным источником для поисковиков. Важно только убедиться, что старый адрес WordPress больше не отдаёт карту сайта и не попадает в индексацию.
Если вы хотите генерировать sitemap вручную, это тоже возможно, но тогда придётся поддерживать логику обновления списка URL, исключения лишних типов записей и разбиения на части. Для большинства проектов это лишняя нагрузка.
| Подход | Плюсы | Минусы |
|---|---|---|
| Оставить встроенный sitemap WordPress | Не требует настройки, работает из коробки | Мало контроля, возможны конфликты с SEO-плагином |
| Отключить и использовать sitemap SEO-плагина | Один источник правды, проще управлять индексированием | Зависимость от плагина |
| Сделать свой генератор sitemap | Полный контроль над URL | Нужно поддерживать код и обновления |
Пошаговая схема внедрения
- Проверьте, есть ли у сайта уже sitemap от SEO-плагина.
- Откройте
/wp-sitemap.xmlи убедитесь, что это именно встроенная карта WordPress. - Добавьте фильтр
wp_sitemaps_enabledчерезfunctions.phpили mu-plugin. - Очистите кеш сайта, если он есть.
- Проверьте, что старый URL больше не отдаёт XML.
- Убедитесь, что в robots.txt указан только нужный sitemap.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Иначе легко пропустить кеш или старую версию страницы.
- Откройте
https://ваш-домен/wp-sitemap.xmlв браузере: должен быть 404, 410 или редирект на нужный sitemap, если вы так настроили; - проверьте ответ через
curl -I https://ваш-домен/wp-sitemap.xml; - посмотрите, что основной sitemap SEO-плагина открывается без ошибок;
- в Search Console отправьте актуальный sitemap и убедитесь, что нет новых ошибок сканирования;
- проверьте robots.txt: там должен быть указан только рабочий sitemap.
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xmlЕсли первый адрес всё ещё отдаёт 200 OK, значит фильтр не применился или его перебивает другой код. Часто это бывает, когда правки внесли не в ту тему, а сайт работает на дочерней, или когда кеш отдаёт старую версию страницы.
Частые ошибки и как их исправить
Фильтр добавили, но sitemap всё ещё открывается
Причина обычно в кеше: плагин кеширования, серверный кеш или CDN. Сначала сбросьте кеш, потом повторите проверку через curl -I. Если ответ не меняется, проверьте, не подключён ли код в неактивной теме.
Отключили встроенный sitemap, а поисковик всё равно видит старый URL
Это нормально на переходном этапе. Поисковые системы не обновляют данные мгновенно. Важно, чтобы старый адрес не отдавал актуальный XML и не был указан в robots.txt как основной.
Отключили не тот sitemap
Иногда путают встроенный sitemap WordPress и sitemap SEO-плагина. Перед изменениями всегда смотрите, какой именно URL вы хотите убрать. Если у вас несколько sitemap-файлов, не трогайте рабочий индекс плагина.
Сломали sitemap плагина из-за дублирующего кода
Если в теме или плагине уже есть кастомная логика для sitemap, не добавляйте второй фильтр без проверки. Сначала найдите все упоминания wp_sitemaps_enabled и убедитесь, что код не конфликтует.
Безопасность и производительность
Отключение встроенного sitemap само по себе не ускоряет сайт заметно, но убирает лишнюю точку генерации XML и снижает риск путаницы в индексации. Для продакшена лучше держать такую логику в mu-plugin, а не в теме: это уменьшает шанс случайно потерять настройку после редизайна.
Если вы ведёте несколько сайтов, удобно хранить этот код в небольшом служебном плагине вместе с другими техническими правками. Так проще контролировать изменения и не разносить SEO-логику по шаблонам темы.
Если нужен более широкий набор технических правок для WordPress — очистка дублей, отключение лишних функций, управление индексированием и базовая оптимизация — уместно посмотреть в сторону Clearfy Pro. Но даже с плагином всё равно стоит понимать, какой sitemap у вас основной и кто его генерирует.
Что делать после внедрения
Когда встроенный sitemap отключён, не оставляйте это без контроля. Через несколько дней проверьте логи сервера, Search Console и ответ старого URL. Если старый адрес продолжает активно запрашиваться, возможно, где-то осталась ссылка на него — в шаблоне, в robots.txt или в настройках другого плагина.
Практически всегда лучший вариант для WordPress-проекта — один sitemap-источник, понятная структура URL и отсутствие дублирующих карт сайта. Это проще поддерживать и легче объяснить поисковым системам.