В WordPress часто нужно не «выключить всё подряд», а убрать только те карты сайта, которые создают шум: RSS-ленты, служебные XML-выгрузки или дубли, которые не помогают поисковику. Проблема обычно всплывает после установки SEO-плагина, обновления темы или переноса сайта: в индексе появляются лишние URL, а в Search Console — странные адреса, которые вы не планировали продвигать.
Ниже разберём, как отключить именно ненужные XML-RSS карты сайта, не трогая основной sitemap, и как проверить, что индексация важных страниц не пострадала.
Когда это действительно нужно
Отключать стоит не «XML вообще», а конкретный источник мусора. Чаще всего это нужно в таких сценариях:
- в sitemap попали RSS-ленты записей, рубрик или тегов, которые не должны индексироваться;
- плагин генерирует отдельные XML-файлы для служебных разделов;
- после миграции на новый SEO-плагин остались старые карты сайта и поисковик видит дубли;
- сайт отдаёт несколько sitemap-индексов, и один из них ведёт на ненужные URL.
Если у вас уже есть проблемы с дублями авторов, архивов или страниц поиска, сначала проверьте, не создаёт ли sitemap дополнительный канал для тех же URL. Но не отключайте карту сайта целиком, если основной XML нужен для нормальной индексации.
Диагностика: что именно отдаёт WordPress
Сначала нужно понять, какой компонент создаёт карту сайта. В WordPress это может быть встроенный генератор, SEO-плагин или отдельный плагин для sitemap. Откройте в браузере адреса вида /wp-sitemap.xml, /sitemap_index.xml и проверьте, какие именно файлы там перечислены.
Если вы не уверены, что именно индексируется, посмотрите ответ сервера и содержимое страниц. Удобно проверить через терминал:
curl -I https://example.com/wp-sitemap.xml
curl -s https://example.com/wp-sitemap.xml | head -n 40Если в ответе есть индекс sitemap, а внутри — ссылки на RSS или служебные XML-файлы, значит отключать нужно не robots.txt, а генерацию конкретного типа карты на уровне WordPress или плагина.
Что смотреть в первую очередь
- какой URL sitemap открывается по умолчанию;
- есть ли в нём ссылки на RSS, теги, архивы, медиа или служебные страницы;
- не дублируется ли sitemap из ядра WordPress и SEO-плагина;
- не закрыт ли основной sitemap в
robots.txt.
Пошаговое решение
Ниже — безопасная последовательность. Она подходит, если у вас обычный сайт на WordPress без нестандартной генерации карт сайта.
1. Оставьте только один источник sitemap
Если SEO-плагин уже генерирует карту сайта, встроенный sitemap WordPress лучше отключить, чтобы не было двух независимых источников. В ядре WordPress это можно сделать фильтром:
add_filter( 'wp_sitemaps_enabled', '__return_false' );Этот код добавляют в functions.php дочерней темы или в небольшой mu-plugin. После этого адрес /wp-sitemap.xml перестанет работать, а основной sitemap должен остаться у SEO-плагина, если он настроен.
2. Уберите ненужные типы из sitemap плагина
Если вы используете SEO-плагин, отключать нужно именно лишние типы контента. В большинстве случаев это делается в настройках самого плагина: теги, авторы, медиа-вложения, служебные таксономии. Если в интерфейсе нет нужного переключателя, проверьте документацию плагина, а не пытайтесь «лечить» это через robots.txt.
Для Yoast SEO, например, можно отключать отдельные типы записей и таксономии через фильтры. Но если у вас нет уверенности в конкретном фильтре, безопаснее идти через настройки плагина, а не писать код наугад.
3. Закройте RSS-ленты, если они не нужны для индексации
RSS-ленты сами по себе не обязаны быть в индексе. Если они попали в sitemap или создают лишние URL, можно ограничить их доступность на уровне сервера или WordPress. Но не делайте это без проверки: некоторые сайты используют RSS для внешних сервисов и подписок.
Если нужно просто убрать RSS-ленты из sitemap, а не отключать их полностью, проверьте настройки SEO-плагина. Если же вы хотите отключить сами RSS-адреса, это уже отдельная задача и её лучше решать отдельно, чтобы не сломать интеграции.
4. Проверьте robots.txt, но не прячьте там проблему
Запрет в robots.txt не удаляет URL из индекса, если он уже известен поисковику. Поэтому закрывать sitemap через robots.txt — плохая идея. Правильнее убрать источник URL, а не маскировать его.
Если в robots.txt есть лишние директивы для sitemap, оставьте только актуальный адрес основного файла:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlЕсли у вас другой адрес sitemap, укажите именно его. Не перечисляйте старые и новые варианты одновременно, если один из них уже отключён.
Сравнение подходов: плагин, код или ручная правка
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Настройки SEO-плагина | Если sitemap создаёт Yoast, Rank Math или аналог | Безопасно, без правок кода | Не всегда можно убрать всё нужное точечно |
| Фильтр в коде | Если нужно отключить встроенный sitemap WordPress | Точно и предсказуемо | Нужен доступ к теме или mu-plugin |
| Правка robots.txt | Только для указания основного sitemap | Просто внедрить | Не решает проблему дублей |
Проверка результата после внедрения
После изменений не ограничивайтесь открытием страницы в браузере. Проверьте результат по цепочке, иначе можно пропустить скрытый дубль.
- Откройте старый URL sitemap и убедитесь, что он отдаёт 404, 410 или больше не существует.
- Проверьте новый основной sitemap и убедитесь, что там остались только нужные типы страниц.
- Сделайте запрос заголовков через
curl -Iи посмотрите код ответа. - В Google Search Console отправьте основной sitemap заново и проверьте, нет ли ошибок чтения.
- Через несколько дней посмотрите отчёт по индексированию: лишние XML-адреса должны исчезать из обнаруженных страниц.
Если у вас включён кэш, очистите его после правок. Иначе поисковик или браузер могут ещё какое-то время видеть старую версию sitemap.
Частые ошибки и как их исправить
Отключили не тот sitemap
Это самая частая ошибка после установки нескольких SEO-плагинов. Симптом простой: основной sitemap исчез, а лишний остался. Решение — сначала определить, какой плагин реально отдаёт XML, и только потом отключать встроенный генератор WordPress.
Спрятали sitemap в robots.txt
Так делают, когда хотят быстро убрать URL из отчёта, но это не удаляет уже известные поисковику адреса. Если sitemap уже попал в индекс, нужен 301/410 для старого файла или отключение генерации на уровне WordPress.
Удалили RSS, а сломали подписки
Если RSS используется внешними сервисами, полное отключение может повлиять на рассылки, агрегаторы и интеграции. В таком случае лучше убрать ленты только из sitemap и оставить их доступными по прямому адресу.
Оставили два sitemap-индекса одновременно
После миграции часто забывают удалить старый файл sitemap_index.xml или старый плагин продолжает работать в фоне. Это создаёт дубли и путаницу в Search Console. Проверьте список активных плагинов и физическое наличие старых файлов в корне сайта.
Практические советы по безопасности и производительности
Если вы правите sitemap кодом, лучше вынести изменения в mu-plugin, а не в тему. Тогда они не пропадут после обновления шаблона. Для небольших правок это надёжнее, чем держать код в functions.php.
Не ставьте несколько SEO-плагинов одновременно только ради sitemap. Два генератора карт сайта почти всегда создают лишние конфликты, а иногда и дубли метаданных. Если нужен более широкий набор технических правок, удобнее один раз настроить плагин вроде Clearfy Pro и не держать на сайте набор разрозненных решений: https://wpshop.ru/plugins/clearfy.
И ещё один момент: после любых изменений в sitemap не делайте массовую переиндексацию без необходимости. Сначала убедитесь, что новый файл отдаёт только нужные URL, а старые адреса не доступны по прямой ссылке.
Когда лучше не отключать, а просто почистить sitemap
Если проблема не в RSS, а в лишних типах страниц, иногда достаточно убрать из карты сайта только архивы, теги или вложения. Это мягче, чем отключать генератор целиком. Такой подход полезен, когда сайт уже стабильно индексируется и вы не хотите менять структуру URL без причины.
Если же у вас одновременно есть дубли, служебные страницы и мусор в sitemap, сначала устраните источник генерации, а потом уже проверяйте отчёты в Search Console. Так проще понять, что именно сработало.