Ситуация типовая: в /sitemap.xml или /wp-sitemap.xml открывается карта сайта, но в ней дублируются URL, часть разделов лишняя, а в Search Console появляются несколько источников sitemap. Обычно проблема не в самом XML, а в том, что карту генерируют сразу два механизма: ядро WordPress и SEO-плагин, либо тема и плагин вместе.
Ниже разберём, как быстро определить источник, отключить лишнее без поломки индексации и проверить результат на практике.
Когда нужно отключать XML sitemap
Отключать карту сайта имеет смысл не «на всякий случай», а когда есть конкретный конфликт. Например:
- в индексе видны два файла sitemap с разными наборами URL;
- в
robots.txtуказан один адрес, а в браузере открывается другой; - SEO-плагин уже умеет управлять картой сайта, но тема добавляет свою версию;
- в sitemap попадают служебные страницы, архивы, медиафайлы или дубли таксономий;
- после миграции осталась старая карта сайта, и поисковик продолжает её обходить.
Если карта сайта одна, корректно отдаёт 200 OK и содержит только нужные URL, отключать её не нужно. Важно не «убрать sitemap», а оставить один управляемый источник.
Диагностика: кто именно генерирует sitemap
Сначала нужно понять, откуда приходит XML. В WordPress это может быть:
1. Ядро WordPress
Начиная с WordPress 5.5, базовая XML-карта доступна по адресу /wp-sitemap.xml. Если SEO-плагин не вмешивается, именно она будет открываться по умолчанию.
2. SEO-плагин
Yoast SEO, Rank Math, All in One SEO и похожие плагины обычно подменяют или расширяют карту сайта. У них есть собственные настройки включения и исключения типов контента.
3. Тема или кастомный код
Иногда разработчик темы добавляет собственный endpoint, редирект или правило переписывания. Это реже, но именно такие случаи чаще всего ломают диагностику: в админке всё выглядит нормально, а по факту открывается не тот файл.
Проверка простая: откройте адрес sitemap в браузере и посмотрите исходный URL, а затем проверьте заголовки ответа. Если есть доступ к серверу, удобнее сделать так:
curl -I https://example.com/sitemap.xmlИщите:
200 OK— карта отдается напрямую;301/302— есть редирект, возможно на другой sitemap;X-Robots-Tagили нестандартные заголовки — иногда их добавляет плагин безопасности или кеширующий слой.
Если нужно быстро понять, какой sitemap активен в WordPress, проверьте настройки SEO-плагина и наличие фильтров в теме. Для поиска по коду достаточно grep по папке темы и mu-plugins:
grep -R "sitemap" wp-content/themes wp-content/mu-plugins wp-content/plugins -nПошаговое решение: как отключить лишний sitemap
Ниже — рабочая схема, которая подходит для большинства установок. Сначала отключаем лишний источник, потом проверяем, что остался один корректный sitemap.
Шаг 1. Оставьте только один генератор
Если вы используете SEO-плагин, обычно лучше оставить его sitemap и отключить базовый sitemap ядра, если он конфликтует. Если плагин не нужен, наоборот, можно оставить ядро и убрать генерацию плагином.
Для отключения sitemap ядра WordPress используйте фильтр wp_sitemaps_enabled. Добавьте код в functions.php дочерней темы или в собственный плагин:
add_filter( 'wp_sitemaps_enabled', '__return_false' );Это отключит базовую XML-карту /wp-sitemap.xml. После этого убедитесь, что SEO-плагин действительно генерирует свою карту, иначе сайт останется без sitemap.
Шаг 2. Если sitemap генерирует SEO-плагин, отключите его в настройках
У большинства SEO-плагинов есть отдельный переключатель XML sitemap. Это предпочтительнее, чем править код, потому что плагин сам уберёт связанные правила и ссылки.
Проверьте:
- включена ли XML sitemap в настройках плагина;
- не отключены ли нужные типы записей и таксономии;
- не добавляет ли плагин отдельные sitemap для изображений, видео или новостей без необходимости.
Если вы используете несколько SEO-инструментов одновременно, оставьте только один, который отвечает за sitemap. Два активных генератора почти всегда создают лишние редиректы и дубли.
Шаг 3. Уберите sitemap из robots.txt, если он указывает на старый адрес
После отключения старой карты сайта проверьте robots.txt. Там часто остаётся ссылка на неактуальный sitemap, и поисковик продолжает ходить по нему.
Если robots.txt формируется вручную, обновите строку:
Sitemap: https://example.com/sitemap_index.xmlЕсли sitemap больше не нужен, строку можно убрать совсем. Но если у сайта есть актуальная карта, лучше оставить один правильный адрес.
Шаг 4. Очистите кеш и проверьте редиректы
После изменений очистите:
- кеш плагина;
- серверный кеш, если он есть;
- CDN-кеш;
- кеш браузера для проверки вручную.
Иначе вы можете увидеть старую карту сайта и решить, что отключение не сработало.
Если sitemap создаёт кастомный код: как отключить точечно
Иногда в теме или плагине есть собственный фильтр, который добавляет URL в карту сайта или подменяет её поведение. В таком случае удобнее не удалять код целиком, а отключить конкретный участок через фильтр или условие.
Пример: если тема подключает собственную карту через rewrite rule и template redirect, можно временно снять обработчик, если он зарегистрирован через add_action. Но делать это нужно только после того, как вы нашли точное место подключения. Универсального «отключить всё, что связано с sitemap» в WordPress нет.
Если вы пишете свой код, безопаснее опираться на стандартный фильтр ядра, а не изобретать отдельный endpoint. Тогда отключение будет проще и предсказуемее.
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
if ( 'post' === $post_type ) {
$args['post_status'] = array( 'publish' );
}
return $args;
}, 10, 2 );Этот пример не отключает sitemap целиком, а ограничивает выборку. Подход полезен, если проблема не в наличии карты, а в том, что в неё попадают лишние записи.
Сравнение подходов
| Подход | Когда подходит | Минус |
|---|---|---|
Отключить sitemap ядра через wp_sitemaps_enabled | Если карту полностью берёт на себя SEO-плагин | Нужно убедиться, что плагин реально активен и отдаёт sitemap |
| Отключить sitemap в SEO-плагине | Если нужен только базовый sitemap ядра | Меньше гибкости по исключениям и типам контента |
| Оставить оба источника | Почти никогда | Дубли, путаница в robots.txt и лишние обходы |
Проверка результата после внедрения
После отключения лишнего источника проверьте не только открытие URL, но и то, как sitemap видит поисковик.
Что проверить вручную
- открывается ли нужный sitemap по правильному адресу;
- нет ли редиректа на старую карту;
- в XML остались только нужные разделы;
- в
robots.txtуказан один актуальный адрес; - страница sitemap не закрыта случайно в
noindexили через заголовки сервера.
Что проверить в Search Console
В разделе sitemap удалите старую карту, если она больше не нужна, и отправьте новую. После этого смотрите:
- статус обработки;
- ошибки загрузки;
- количество обнаруженных URL;
- нет ли повторяющихся адресов в нескольких sitemap.
Если Search Console продолжает показывать старый файл, проверьте, не остался ли он в кеше CDN или в старом robots.txt.
Частые ошибки и как их исправить
Отключили не тот sitemap
Частая ошибка — выключить /wp-sitemap.xml, а потом удивляться, что SEO-плагин тоже перестал отдавать карту. Перед изменением кода убедитесь, какой именно endpoint используется в продакшене.
Оставили старую ссылку в robots.txt
Поисковик продолжает ходить по старому адресу, даже если файл уже не нужен. Исправление простое: обновить или удалить строку Sitemap:.
Не очистили кеш
После изменений браузер, плагин кеша или CDN могут отдавать старую версию. Если проверяете результат сразу после правки, сначала сбросьте кеш на всех уровнях.
Смешали несколько SEO-плагинов
Если одновременно активны два плагина, которые умеют управлять sitemap, один из них почти наверняка будет мешать другому. В такой конфигурации лучше оставить один основной инструмент.
Отключили sitemap, но не настроили альтернативу
Если карта сайта была единственным способом сообщить поисковику о новых URL, после отключения сайт потеряет часть сигналов. Перед изменениями проверьте, чем будет заменён старый механизм.
Практические советы по безопасности и производительности
Sitemap сам по себе не тяжёлый, но проблемы вокруг него часто связаны с лишними запросами и дублированием логики. Чтобы не создавать лишнюю нагрузку:
- не генерируйте sitemap на лету несколькими плагинами одновременно;
- не добавляйте в карту служебные и закрытые разделы;
- не оставляйте старые rewrite rules после удаления плагина;
- проверяйте, что sitemap не отдаёт персональные или приватные URL;
- после миграции удаляйте устаревшие endpoint’ы и редиректы.
Если на сайте используется кеширование HTML, убедитесь, что sitemap не попадает под агрессивный кеш с долгим TTL. Для XML это не всегда критично, но при частых обновлениях контента лучше, чтобы карта обновлялась предсказуемо.
Если нужен более широкий аудит дублей и технической чистки, иногда удобнее использовать инструменты вроде Clearfy Pro, но только как вспомогательный слой. Основная логика всё равно должна быть понятной: один источник sitemap, один актуальный адрес, одна проверка в Search Console.
Мини-чек-лист перед публикацией изменений
- Определён единственный источник sitemap.
- Старый sitemap отключён или перенаправлен осознанно.
- В
robots.txtуказан только актуальный адрес. - Кеш на сайте и CDN очищен.
- XML открывается без ошибок и отдаёт
200 OK. - В Search Console отправлен новый sitemap.
Если после этого в индексе всё ещё всплывают старые URL, проблема уже не в генерации sitemap, а в том, что поисковик успел сохранить прежнюю структуру. Тогда нужно отдельно разбирать редиректы, каноникалы и внутренние ссылки.