XML-карта сайта в WordPress полезна не всегда. На небольших проектах она часто дублирует уже настроенную логику индексации, а на сайтах с несколькими SEO-плагинами может создавать лишние URL, путаницу в sitemap index и проблемы с проверкой в Google Search Console. Если задача не в том, чтобы «убрать sitemap вообще», а в том, чтобы оставить один понятный источник карт и не плодить дубли, сначала стоит понять, кто именно её генерирует.
Когда XML-карта сайта становится проблемой
Типичный сценарий выглядит так: в WordPress включена встроенная карта сайта, одновременно работает SEO-плагин, а в robots.txt и в Search Console уже отправлены другие sitemap-адреса. В результате поисковик видит несколько карт, часть из них пустая или дублирует контент, а вы тратите время на проверку не того URL.
Ещё один частый случай — сайт после миграции. Старый SEO-плагин отключили, новый ещё не настроили, а карта сайта осталась доступна по адресу /wp-sitemap.xml. Формально это не ошибка, но если вы строите индексацию через один плагин, встроенный генератор может мешать контролю.
Что именно нужно проверить перед отключением
- какой URL карты сайта сейчас открыт в браузере;
- есть ли у сайта SEO-плагин, который уже генерирует sitemap;
- не отправлен ли в Search Console старый адрес карты;
- нет ли в robots.txt нескольких строк
Sitemap:; - не используется ли карта сайта в сторонних сервисах мониторинга.
Диагностика: кто генерирует sitemap
В WordPress с версии 5.5 есть встроенная XML-карта сайта. Она доступна по адресу /wp-sitemap.xml. Но многие SEO-плагины отключают её автоматически или подменяют своей реализацией. Поэтому сначала не трогайте код, а проверьте источник.
Откройте в браузере:
https://example.com/wp-sitemap.xmlЕсли страница открывается и показывает индекс карт, значит встроенный генератор активен. Если вместо этого вы видите редирект, 404 или карту от SEO-плагина, значит решение уже принято другим компонентом.
Дополнительно проверьте исходный код robots.txt. Если там есть несколько sitemap-адресов, это уже повод привести всё к одному варианту.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xml
Sitemap: https://example.com/wp-sitemap.xmlТакой набор строк не всегда ломает сайт, но для диагностики это сигнал: у вас два источника карты, и поисковику не обязательно нужен оба.
Пошаговое решение: как отключить встроенную XML-карту сайта
Если вы используете SEO-плагин с собственной картой сайта, самый чистый вариант — отключить встроенную карту WordPress через фильтр wp_sitemaps_enabled. Это безопаснее, чем править ядро или удалять файлы вручную.
Вариант через код в functions.php или mu-plugin
Добавьте код в дочернюю тему или, лучше, в mu-plugins, если не хотите зависеть от темы:
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого адрес /wp-sitemap.xml должен перестать открываться. Если у вас уже есть sitemap от SEO-плагина, убедитесь, что именно он остаётся основным.
Вариант через SEO-плагин
У большинства популярных SEO-плагинов есть собственная настройка sitemap. Логика простая: либо вы оставляете встроенную карту WordPress, либо используете карту плагина. Два активных источника одновременно почти никогда не нужны.
| Подход | Что делает | Плюсы | Минусы |
|---|---|---|---|
Код через wp_sitemaps_enabled | Отключает встроенную карту WordPress | Точный контроль, без лишних зависимостей | Нужно не забыть, где лежит код |
| Настройка SEO-плагина | Плагин сам управляет sitemap | Удобно, если уже используете SEO-инструмент | Зависит от конкретного плагина |
| Оставить всё как есть | Ничего не менять | Быстро | Риск дублей и путаницы в индексации |
Если нужно отключить только часть карт, а не всё целиком
Иногда проблема не в самой XML-карте, а в отдельных типах контента. Например, в sitemap попадают медиафайлы, служебные таксономии или записи, которые вы не хотите отдавать в индекс. Тогда отключать всё подряд не нужно — лучше управлять составом карты.
Для встроенной карты WordPress можно исключать типы контента через фильтры, но на практике это уже тонкая настройка. Если у вас SEO-плагин, обычно проще управлять включением и исключением в его интерфейсе. Это снижает риск сломать структуру URL.
Когда лучше не трогать встроенную карту
- если сайт маленький и не использует SEO-плагин;
- если карта нужна только для базовой индексации;
- если вы не уверены, кто ещё зависит от
/wp-sitemap.xml; - если сайт уже стабильно индексируется и нет дублей в Search Console.
Как проверить, что решение сработало
После отключения проверьте не только сам URL, но и поведение поисковых инструментов. Ошибка здесь часто в том, что карту «выключили», но старый адрес продолжает жить в robots.txt, в кеше или в Search Console.
- Откройте
/wp-sitemap.xmlв браузере. Он должен отдавать 404, редирект на другую карту или пустую страницу — в зависимости от вашей схемы. - Проверьте
robots.txt: там должен остаться один актуальныйSitemap:. - Посмотрите отчёт по sitemap в Google Search Console и убедитесь, что старый адрес не висит как основной источник ошибок.
- Очистите кеш, если сайт использует серверный кеш, CDN или плагин кеширования.
Если после отключения карта всё ещё открывается, проверьте, не генерирует ли её SEO-плагин или MU-plugin. Иногда фильтр добавляют в тему, а потом меняют тему — и кажется, что WordPress «не слушается», хотя код просто исчез.
Частые ошибки и как их исправить
Отключили встроенную карту, но забыли про SEO-плагин
В итоге sitemap не исчезает, а меняет источник. Это нормально, если вы этого и добивались. Но если вы ожидали 404, значит нужно проверить настройки плагина, а не WordPress.
Удалили строку из robots.txt вручную, а плагин вернул её обратно
Такое бывает, если robots.txt виртуальный и формируется на лету. В этом случае редактировать файл на сервере бесполезно — нужно менять настройку в плагине или через фильтр.
Сразу отключили sitemap без замены
Это плохая идея для сайта, который ещё не имеет стабильной индексации. Поисковик может дольше находить новые страницы, особенно если внутренняя перелинковка слабая. Сначала настройте альтернативный источник карты, потом отключайте старый.
Не очистили кеш
После изменений браузер, CDN или плагин кеша может отдавать старую версию страницы. Если проверяете результат сразу, можно сделать ложный вывод, что код не работает.
Практические советы по безопасности и производительности
Если вы вносите код для отключения sitemap, не кладите его в случайный файл темы. Для постоянной технической логики лучше использовать mu-plugins: такой код не потеряется при обновлении темы и не зависит от переключения дизайна.
Пример минимального MU-плагина:
<?php
/**
* Plugin Name: Disable WordPress Core Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );Файл можно положить в wp-content/mu-plugins/disable-core-sitemap.php. Это простой и предсказуемый способ, если задача — держать технические настройки отдельно от темы.
Если вы используете Clearfy Pro, имеет смысл проверить его SEO-настройки и чистку дублей: иногда удобнее управлять такими вещами из одного интерфейса, чем держать часть логики в коде, а часть — в плагине. Но здесь важно не дублировать управление: один источник истины для sitemap всегда лучше двух.
Короткий чек-лист перед публикацией изменений
- один активный sitemap-источник вместо двух;
/wp-sitemap.xmlведёт себя так, как вы планировали;- в
robots.txtосталась одна строкаSitemap:; - в Search Console отправлен актуальный адрес;
- кеш очищен на сайте и на CDN;
- нет ошибок 404 или редирект-цепочек у нового sitemap.
Если задача была именно в том, чтобы убрать лишний встроенный sitemap WordPress, а не отключить индексацию целиком, этого набора проверок обычно достаточно. Дальше уже имеет смысл смотреть не на сам факт наличия карты, а на то, какие URL в неё попадают и не создаёт ли она новые дубли.