Ситуация типовая: в WordPress уже есть карта сайта от ядра, но SEO-плагин или тема добавляют свою. В итоге в /sitemap.xml открывается не то, что вы ожидаете, в Search Console появляются дубли, а при смене плагина карта начинает вести на старые URL. Отключать XML-карту «в лоб» можно, но только если вы понимаете, кто именно её генерирует и чем это заменяется.
Ниже — практический сценарий: как найти источник карты сайта, отключить лишнее, не сломать индексацию и проверить, что поисковики видят ровно один актуальный sitemap.
Когда XML-карта сайта становится проблемой
Обычно проблема не в самой карте сайта, а в конфликте источников. В WordPress XML sitemap может отдавать:
- ядро WordPress, если включена встроенная карта;
- SEO-плагин, например Yoast SEO, Rank Math, All in One SEO;
- отдельный плагин для sitemap;
- редко — кастомный код в теме или mu-plugin.
Если одновременно доступны несколько карт, поисковик может видеть разные наборы URL, а вы — разные ответы на один и тот же адрес. Это особенно заметно после миграции сайта, смены SEO-плагина или чистки старых расширений.
Диагностика: что именно отдаёт sitemap
Сначала проверьте, какой ответ возвращает адрес карты сайта. В браузере этого мало: нужен именно HTTP-ответ и содержимое.
curl -I https://example.com/sitemap.xmlЕсли у вас открывается HTML-страница, а не XML, значит адрес перехвачен редиректом, кэшем или плагином. Если видите XML, посмотрите в начале файла, кто его генерирует: у ядра WordPress обычно есть индексная карта с ссылками на отдельные sitemap-файлы, у SEO-плагинов структура может отличаться.
Полезно проверить и другие адреса:
/wp-sitemap.xml— встроенная карта WordPress;/sitemap_index.xml— часто используется SEO-плагинами;/sitemap.xml— нередко алиас или кастомный маршрут.
Если все три адреса живые, у вас почти наверняка есть дублирование.
Как отключить лишнюю XML-карту сайта
Правильный путь зависит от того, чем карта создаётся. Самая частая ошибка — удалять файл или закрывать URL в robots.txt. Это не отключает генерацию и не решает конфликт источников.
Вариант 1. Отключить встроенную карту WordPress
Если вы используете SEO-плагин, встроенная карта ядра часто не нужна. Её можно отключить через фильтр wp_sitemaps_enabled. Добавьте код в functions.php дочерней темы или в свой mu-plugin.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );После этого адрес /wp-sitemap.xml должен перестать отдавать карту. Но если SEO-плагин тоже генерирует sitemap, его карта останется доступной — и это нормально, если вы сознательно оставляете один источник.
Вариант 2. Отключить карту в SEO-плагине
У большинства SEO-плагинов карта выключается в настройках. Это предпочтительнее, чем код, если вы не хотите поддерживать кастомные фильтры после обновлений.
| Подход | Что делать | Плюс | Минус |
|---|---|---|---|
| Настройки плагина | Выключить XML sitemap в интерфейсе SEO-плагина | Без кода, проще сопровождать | Зависит от конкретного плагина |
| Код | Отключить wp_sitemaps_enabled или фильтр плагина | Точный контроль | Нужно следить за темой и обновлениями |
| Удаление плагина | Полностью убрать генератор sitemap | Чистая схема | Можно потерять нужные типы URL |
Если у вас стоит плагин, который умеет не только sitemap, но и чистку дублей, редиректы и технические настройки, удобно держать это в одном месте. Например, в Clearfy Pro есть набор инструментов для технической оптимизации сайта: Clearfy Pro. Но даже в этом случае важно проверить, какая именно карта остаётся активной после настройки.
Вариант 3. Отключить только отдельные типы записей или таксономии
Иногда карта нужна, но в ней не должны быть, например, медиафайлы, служебные страницы или пустые таксономии. Тогда не выключайте sitemap целиком — уберите лишние сущности через настройки SEO-плагина или его фильтры. Это безопаснее для индексации, чем полное отключение.
Если вы пишете свой код, не удаляйте URL вручную из XML-вывода строковыми заменами. Работайте на уровне фильтров плагина или ядра, иначе при обновлении всё сломается.
Пошаговое решение без потери индексации
- Определите, какой sitemap сейчас основной:
/wp-sitemap.xml,/sitemap_index.xmlили другой адрес. - Проверьте, не дублируется ли карта в нескольких местах.
- Отключите только один источник генерации.
- Сохраните один актуальный sitemap и убедитесь, что он содержит нужные типы контента.
- Обновите карту в Search Console после проверки ответа сервера.
Если вы отключаете встроенную карту WordPress, а SEO-плагин оставляете, логика простая: один генератор, один адрес, один набор URL. Это лучше, чем несколько карт с пересекающимися записями.
Пример проверки через PHP
Если нужно быстро понять, доступна ли карта и не отдаёт ли она ошибку, можно временно проверить это через HTTP-запрос из PHP. Такой код полезен при отладке на staging-сайте.
<?php
$response = wp_remote_get( home_url( '/wp-sitemap.xml' ) );
if ( is_wp_error( $response ) ) {
error_log( $response->get_error_message() );
return;
}
$code = wp_remote_retrieve_response_code( $response );
$body = wp_remote_retrieve_body( $response );
if ( 200 === $code && str_contains( $body, '<urlset' ) || str_contains( $body, '<sitemapindex' ) ) {
error_log( 'Sitemap looks OK' );
}Этот пример не заменяет ручную проверку, но помогает быстро понять, что именно отдаёт сайт после изменений.
Проверка результата после внедрения
После отключения лишнего sitemap проверьте не только страницу в браузере, но и технические признаки:
curl -Iна старый и новый адрес карты;- наличие одного активного sitemap в Search Console;
- отсутствие дублей в индексации по служебным URL;
- корректные
robots.txtи канонические URL на страницах сайта; - отсутствие ошибок 404/500 на адресе карты.
Если карта отключена намеренно, не оставляйте поисковик без замены. Убедитесь, что новый sitemap доступен по стабильному адресу и обновляется после публикации новых материалов.
Что смотреть в Search Console
В отчёте по файлам sitemap проверьте, что:
- отправлен именно один актуальный файл;
- нет старых файлов со статусом ошибки;
- количество обнаруженных URL выглядит логично для структуры сайта;
- после обновления сайта новые страницы попадают в карту без задержек.
Если Search Console продолжает показывать старый sitemap, часто виноват кэш на стороне сервера или CDN. В этом случае сначала сбросьте кэш, а уже потом повторно отправляйте карту.
Частые ошибки и как их исправить
Удалили sitemap, но не отключили генератор
Если вы просто удалили файл или закрыли путь в robots.txt, генератор всё равно может создавать карту заново. Исправление: отключите источник на уровне плагина или ядра.
Оставили две карты одновременно
Одна карта от ядра, вторая от SEO-плагина — частый источник дублей. Исправление: оставьте только один механизм генерации и проверьте все возможные адреса.
Сломали карту после обновления темы
Если код отключения лежал в functions.php активной темы, при смене темы он исчезнет. Исправление: перенесите кастомный код в дочернюю тему или mu-plugin.
Проверяли только в браузере
Браузер может показать старую версию из кэша или красиво отрендерить XML, даже если сервер уже отдаёт ошибку. Исправление: проверяйте ответ через curl или DevTools по заголовкам и статусу.
Безопасность и производительность
XML-карта сайта сама по себе не тяжёлая, но лишние генераторы создают лишнюю работу и путаницу в индексации. Если на сайте много плагинов, лучше держать технические функции в одном месте и не разносить их по теме, дочерней теме и нескольким расширениям.
Для production-сайта безопаснее:
- не редактировать код в рабочей теме напрямую;
- проверять изменения на staging;
- после отключения sitemap очищать серверный и CDN-кэш;
- не закрывать sitemap в robots.txt, если он должен индексироваться поисковиками;
- не использовать «магические» плагины, которые меняют sitemap без прозрачной настройки.
Если вам нужно не только отключить лишнюю карту, но и навести порядок в технических настройках сайта, удобно делать это через один понятный инструмент, а не набор разрозненных сниппетов. Но в любом случае сначала определите источник sitemap, а потом уже меняйте логику генерации.
После внедрения оставьте в заметках: какой адрес карты активен, где отключён второй генератор и кто отвечает за обновление sitemap при публикации новых материалов. Это экономит время при следующем обновлении плагина или переезде сайта.