Встроенная XML Sitemap в WordPress полезна не всегда. На живых проектах чаще проблема не в самом файле карты сайта, а в том, что он дублирует карту от SEO-плагина, отдаёт лишние URL или мешает контролю индексации после миграции. Если у вас уже есть sitemap из Yoast, Rank Math, Clearfy Pro или другого SEO-инструмента, встроенную карту лучше отключить и оставить один источник правды.
Ниже — рабочий сценарий: как понять, что именно нужно отключать, как сделать это без плагинов, чем заменить при необходимости и как проверить, что поисковики видят только нужную карту сайта.
Когда встроенную XML Sitemap действительно стоит отключить
Отключение имеет смысл, если у сайта уже есть отдельная карта сайта и вы хотите избежать дублей. Это типичная ситуация после установки SEO-плагина или при переносе сайта с одной конфигурации на другую. Встроенная sitemap WordPress появляется по адресу /wp-sitemap.xml и может быть лишней, если:
- SEO-плагин уже генерирует собственную карту сайта;
- нужно закрыть от индексации служебные типы контента, которые попадают в стандартную sitemap;
- после миграции в Search Console видны две разные карты сайта;
- вы хотите вручную управлять картой через код, а не через несколько плагинов сразу.
Быстрая диагностика проблемы
Сначала проверьте, какая sitemap реально открывается в браузере и что в ней лежит. Для этого достаточно трёх шагов:
- Откройте
https://ваш-домен/wp-sitemap.xml. - Проверьте, не отдаёт ли сайт одновременно карту от плагина, например
/sitemap_index.xmlили другой URL. - Сравните список URL в обеих картах: если они пересекаются, у вас дублирование.
Если в Search Console уже отправлены обе карты, сначала не удаляйте их вслепую. Сначала отключите одну, дождитесь повторного обхода и убедитесь, что в отчётах не растёт число ошибок 404 или исключённых страниц.
Как отключить XML Sitemap в WordPress кодом
Встроенная sitemap отключается через фильтр wp_sitemaps_enabled. Это штатный механизм WordPress, без выдуманных хуков и без правки ядра. Самый безопасный способ — добавить код в дочернюю тему или в небольшой mu-plugin.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Если нужно отключить не всю sitemap, а только отдельные типы, лучше не рубить всё целиком. Например, можно оставить карту для записей и страниц, но убрать служебные типы, если они вам не нужны. Для этого используйте фильтры WordPress sitemap providers.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
unset( $post_types['attachment'] );
return $post_types;
} );
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );
Но если задача именно убрать встроенную карту полностью, первый вариант проще и надёжнее.
Куда лучше вставить код
Для постоянного решения не советую класть такой код в functions.php активной темы, если тема часто меняется. Практичнее сделать маленький mu-plugin: он не зависит от темы и не отключится после обновления шаблона.
<?php
/**
* Plugin Name: Disable Core XML Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Файл можно сохранить как wp-content/mu-plugins/disable-core-sitemap.php. Если папки mu-plugins нет, создайте её вручную.
Что делать, если sitemap нужна, но не встроенная
Иногда отключать карту полностью нельзя: сайт ещё не подключил SEO-плагин, а поисковикам нужна актуальная карта. В таком случае сначала подготовьте замену, потом отключайте встроенную версию.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Оставить встроенную sitemap | Сайт простой, без SEO-плагина | Ничего настраивать не нужно | Мало контроля над составом URL |
| Отключить и использовать sitemap SEO-плагина | Есть Yoast, Rank Math, Clearfy Pro или аналог | Один источник карты, гибкая настройка | Нужно следить за корректностью плагина |
| Отключить всё и собрать карту вручную | Нестандартная структура сайта | Полный контроль | Нужно поддерживать код и обновления |
Если используете Clearfy Pro, имеет смысл проверить, не включена ли там отдельная настройка для управления sitemap и дублями. В таких задачах удобнее сначала собрать единый SEO-контур, а уже потом отключать встроенные механизмы WordPress. Ссылка на плагин: Clearfy Pro.
Пошаговая проверка после внедрения
После отключения важно не ограничиваться открытием страницы в браузере. Нужно проверить, что WordPress больше не отдаёт встроенную карту и что поисковые системы видят только нужный вариант.
Чек-лист проверки
- Откройте
/wp-sitemap.xml— должен быть 404 или пустой ответ, если карта отключена полностью. - Проверьте карту от SEO-плагина — она должна открываться без ошибок.
- Посмотрите исходный код главной страницы и шаблонов: не осталось ли старых ссылок на
wp-sitemap.xml. - Проверьте
robots.txt: там не должно быть конфликтующих указаний на старую карту. - В Search Console отправьте только актуальную sitemap и дождитесь переобхода.
Если вы работаете через WP-CLI, можно быстро проверить HTTP-ответ:
curl -I https://example.com/wp-sitemap.xml
Для отключённой sitemap ожидаем не 200 OK, а другой код ответа, чаще всего 404. Если страница всё ещё открывается, значит фильтр не применился или код лежит не в том месте.
Частые ошибки и как их исправить
Код добавили в тему, а после обновления он исчез
Это типичная ошибка. Если код лежал в functions.php родительской темы, обновление могло его затереть. Перенесите решение в mu-plugin или в собственный мини-плагин.
Отключили sitemap, но в Search Console осталась старая ссылка
Это не баг WordPress. Поисковик хранит старую карту до следующего обхода. Удалите устаревшую sitemap из Search Console вручную и отправьте новую. Не ждите мгновенного обновления отчётов.
Отключили встроенную карту, а SEO-плагин тоже перестал отдавать sitemap
Так бывает, если вы отключили не только core sitemap, но и карту в плагине, либо конфликтует кэш. Проверьте настройки SEO-плагина и очистите серверный/страничный кэш. Для диагностики полезно временно открыть карту в режиме инкогнито и сравнить ответ с заголовками сервера.
В robots.txt осталась ссылка на несуществующую карту
Если robots.txt генерируется вручную, обновите в нём адрес sitemap. Иначе поисковик будет регулярно ходить по старому URL и тратить краулинговый бюджет впустую.
Безопасность и производительность: что учесть
Сама по себе XML Sitemap не нагружает сайт критично, но на больших проектах лишние карты и дубли создают шум в индексации и усложняют поддержку. Чем меньше источников sitemap, тем проще контролировать состав URL и отлавливать ошибки.
Если вы отключаете встроенную карту ради SEO-плагина, не держите одновременно несколько решений, которые генерируют одно и то же. Это касается и плагинов, и ручных правок в теме, и сторонних сервисов. Один источник карты сайта — нормальная практика для поддерживаемого проекта.
Если нужен более широкий контроль над дублями, служебными страницами и SEO-настройками, иногда проще собрать это в одном инструменте, чем поддерживать набор разрозненных правок. Но даже в этом случае сначала проверьте, какие URL реально попадают в индекс, а уже потом меняйте конфигурацию.
Когда лучше не отключать встроенную sitemap
Если сайт маленький, без SEO-плагина и без сложной структуры, встроенная sitemap WordPress может быть вполне достаточной. В таком случае отключение ради самого факта ничего не даст. Решение имеет смысл только тогда, когда у вас есть понятная причина: дубли, лишние URL, конфликт карт или необходимость централизованного управления индексацией.
Практическое правило простое: если вы не можете назвать конкретный конфликт или лишний источник sitemap, сначала разберитесь с текущей конфигурацией, а не отключайте всё подряд.