XML Sitemap в WordPress часто включают «на автомате», а потом удивляются лишним URL в индексе, дублям архивов или тому, что поисковик тратит краулинговый бюджет на мусорные страницы. Если карта сайта уже генерируется SEO-плагином, штатный sitemap ядра может только мешать: дублировать набор URL, светить служебные страницы или создавать путаницу в отчётах Search Console.
Ниже — практический сценарий: как понять, нужен ли вам встроенный sitemap WordPress, как отключить его без поломки сайта и как проверить, что после изменений индексация стала чище.
Когда встроенный XML Sitemap действительно лишний
С 5.5 WordPress умеет отдавать базовый sitemap из коробки. Это удобно для простых сайтов без SEO-плагина, но на живом проекте часто появляется второй источник карты сайта: Yoast SEO, Rank Math, All in One SEO или другой плагин. В итоге поисковик видит несколько карт, а владелец сайта — лишние вопросы в Search Console.
Отключать штатный sitemap имеет смысл, если:
- SEO-плагин уже генерирует собственную карту сайта;
- в sitemap ядра попадают типы записей или таксономии, которые вы не хотите индексировать;
- нужно убрать дубли между несколькими картами сайта;
- вы хотите полностью контролировать список URL через код, а не через настройки ядра.
Что именно проверять перед отключением
Сначала откройте /wp-sitemap.xml на рабочем сайте. Если там есть ссылки на посты, страницы, авторов, категории и медиа, сравните этот список с картой сайта SEO-плагина. Если набор пересекается почти полностью, штатный sitemap можно убрать. Если же SEO-плагина нет, отключать карту сайта без замены не стоит: поисковикам нужен актуальный список страниц.
Диагностика проблемы: откуда берутся дубли и лишние URL
Самая частая ошибка — считать, что проблема только в sitemap. На деле лишние URL обычно появляются из-за комбинации факторов: архивы автора, страницы тегов, пагинация, медиа-страницы вложений, параметры фильтрации и служебные endpoints. Sitemap просто помогает поисковику быстрее найти всё это.
Проверьте три вещи:
- Есть ли у вас SEO-плагин с собственной картой сайта.
- Не отдаются ли одновременно
/wp-sitemap.xmlи, например,/sitemap_index.xml. - Не индексируются ли служебные URL через старые ссылки, внешние сайты или внутренние ссылки из шаблона.
Если в Search Console уже есть отчёты по дублям, сначала исправляйте причину на уровне каноникализации и индексации, а не только карту сайта. Sitemap — это подсказка для робота, а не жёсткий запрет.
Как отключить XML Sitemap штатно
Самый безопасный способ — через фильтр wp_sitemaps_enabled. Он есть в ядре WordPress и отключает встроенную генерацию карты сайта без правки файлов ядра.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );Код можно добавить в functions.php дочерней темы или в небольшой mu-plugin, если настройка должна переживать смену темы. Для production-проекта mu-plugin обычно надёжнее: его сложнее случайно отключить.
Вариант через mu-plugin
Создайте файл, например wp-content/mu-plugins/disable-core-sitemap.php, и положите туда такой код:
<?php
/**
* Plugin Name: Disable Core Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого /wp-sitemap.xml должен перестать отдавать карту сайта ядра. Если у вас есть SEO-плагин, его sitemap продолжит работать отдельно.
Если нужен не полный отказ, а точечная настройка
Иногда отключать sitemap целиком не нужно. Например, вы хотите оставить карту сайта для записей и страниц, но убрать авторов или медиа-вложения. Для этого лучше не отключать всё ядро, а фильтровать конкретные провайдеры.
В WordPress можно отключить отдельные типы через фильтр wp_sitemaps_add_provider. Пример ниже убирает авторов и медиа:
<?php
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) {
if ( in_array( $name, array( 'users', 'attachments' ), true ) ) {
return false;
}
return $provider;
}, 10, 2 );Это полезно, если вы не хотите ломать весь механизм, но нужно сократить шум. Однако на практике, если уже стоит SEO-плагин, проще и чище отключить штатный sitemap полностью.
Сравнение вариантов: плагин, код или ничего не трогать
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Оставить как есть | Простой сайт без SEO-плагина | Ничего не нужно настраивать | Меньше контроля над составом URL |
| Отключить через код | Есть SEO-плагин или нужна точная настройка | Полный контроль, без правки ядра | Нужно аккуратно внедрять и тестировать |
| Настраивать через SEO-плагин | Плагин уже управляет индексированием | Удобно для редактора и SEO-специалиста | Возможны дубли с sitemap ядра, если его не отключить |
Проверка результата после внедрения
После отключения откройте в браузере /wp-sitemap.xml. Если всё сделано правильно, WordPress не должен отдавать стандартную карту сайта. Дальше проверьте карту сайта SEO-плагина: она должна открываться отдельно и содержать только нужные URL.
Что ещё стоит проверить:
- в Search Console нет новых ошибок по sitemap;
- в индексе не появились лишние URL из старой карты;
- страницы сайта по-прежнему доступны для обхода через внутренние ссылки;
- robots.txt не блокирует важные разделы случайно.
Если вы меняли только ядро, а SEO-плагин оставили, убедитесь, что в robots.txt не прописаны старые пути к несуществующим картам сайта. Поисковик может ещё какое-то время ходить по старым ссылкам из кеша или внешних источников.
Частые ошибки и как их исправить
Отключили sitemap, но забыли про замену
Если SEO-плагина нет, поисковик потеряет удобный список URL. На небольшом сайте это не критично, но на крупном проекте новые страницы будут находиться медленнее. В таком случае либо оставляйте штатный sitemap, либо подключайте нормальный генератор карты сайта.
Отключили не там, где нужно
Правка functions.php активной темы — не лучший вариант для долгоживущего сайта. После обновления или смены темы настройка может исчезнуть. Для системных изменений лучше использовать mu-plugin.
Смешали несколько карт сайта
Когда одновременно работают ядро WordPress, SEO-плагин и сторонний генератор sitemap, в Search Console легко получить кашу. Оставьте один источник карты сайта. Остальные отключите или убедитесь, что они не отдают пересекающиеся URL.
Проверили только главную карту
Иногда /wp-sitemap.xml отключён, но отдельные подкарты ещё доступны по прямым URL или закешированы прокси. Проверьте не только корневой адрес, но и типовые вложенные адреса, если вы их уже знаете.
Безопасность и производительность: что не стоит делать
Не редактируйте файлы ядра WordPress. Это ломается при обновлении и усложняет диагностику. Не ставьте отдельный плагин только ради отключения штатного sitemap, если задача решается одной строкой кода. И не закрывайте sitemap в robots.txt, если он вам всё ещё нужен для SEO-плагина: вы просто спрячете полезный файл от робота, но не уберёте причину дублей.
Если вам одновременно нужно чистить сайт от дублей, лишних архивов и служебных страниц, удобнее собрать это в одном месте. В таком сценарии можно посмотреть на Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с таким плагином важно понимать, что именно он меняет, а не включать всё подряд.
Если нужен короткий рабочий чек-лист, он такой:
- проверить, кто сейчас генерирует sitemap;
- убедиться, что нет дублирующего источника;
- отключить штатный sitemap через
wp_sitemaps_enabled; - проверить
/wp-sitemap.xmlи карту SEO-плагина; - сверить Search Console и robots.txt;
- не трогать ядро и не плодить лишние плагины.
Если после отключения карта сайта SEO-плагина работает, а дубли в отчётах перестали расти, значит решение внедрено правильно. Если же поисковик всё ещё видит старые URL, проблема уже не в sitemap, а в ссылках, архивных страницах или настройках индексации.