Если на сайте WordPress одновременно доступны sitemap от ядра, SEO-плагина и ещё один robots.txt, поисковик получает лишние сигналы. В лучшем случае это просто шум. В худшем — в индекс попадают не те URL, а в отчётах начинаются вопросы к дублям и обходу сайта.
Типичный сценарий: вы поставили SEO-плагин, включили XML-карту сайта, потом добавили ещё один плагин для кеша или безопасности, а в корне сайта внезапно появились дублирующиеся карты, странный robots.txt или открытые служебные файлы. Ниже — как это диагностировать и привести к одному понятному варианту.
Что именно проверять в первую очередь
Начинайте не с правок, а с проверки фактического состояния. В WordPress sitemap и robots.txt могут отдавать:
- ядро WordPress;
- SEO-плагин;
- плагин кеша или безопасности;
- ручной файл
robots.txtв корне; - виртуальный robots.txt, который генерируется на лету.
Откройте в браузере и через curl несколько адресов:
curl -I https://example.com/robots.txt
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xmlЕсли у вас SEO-плагин, проверьте, какой именно адрес он использует для карты сайта. У разных решений это может быть sitemap_index.xml или другой путь. Важно не гадать, а посмотреть ответ сервера и содержимое страницы.
Признаки конфликта
Проблема почти всегда видна по одному из признаков:
- в корне сайта доступно несколько sitemap, и все они ведут на разные наборы URL;
robots.txtсодержит старые правила, которые не совпадают с текущей структурой сайта;- в sitemap есть URL, которые вы уже закрывали от индексации;
- поиск показывает служебные страницы, архивы или технические URL, которые не должны индексироваться.
Какой вариант оставить: ядро, плагин или ручную настройку
В WordPress лучше не держать несколько источников правды для одной и той же задачи. Для sitemap и robots.txt это особенно заметно.
| Вариант | Когда подходит | Минус |
|---|---|---|
| Ядро WordPress | Простой сайт без SEO-плагина | Меньше гибкости для исключений |
| SEO-плагин | Нужны настройки индексации, исключения, карта сайта | Нужно следить, чтобы не было дубля от ядра или другого плагина |
| Ручной robots.txt | Нужны точечные правила и контроль | Легко сломать индексацию, если править без проверки |
Практически всегда лучше оставить один основной механизм генерации sitemap и один источник robots.txt. Если SEO-плагин уже управляет картой сайта, не дублируйте её отдельным плагином или ручной генерацией без необходимости.
Пошаговое решение
1. Отключите лишний генератор sitemap
Если у вас включена карта сайта в ядре WordPress и одновременно активен SEO-плагин, сначала проверьте, не создаются ли две карты. В большинстве случаев достаточно оставить один вариант. Для этого:
- в настройках SEO-плагина проверьте, включена ли XML-карта сайта;
- если плагин уже отдаёт sitemap, отключите дублирующую карту в другом плагине;
- если вы используете только ядро WordPress, убедитесь, что SEO-плагин не создаёт отдельный индекс карт.
После изменения снова откройте адреса sitemap и сравните, какой из них отдаёт актуальный список URL.
2. Приведите robots.txt к одному источнику
Если в корне сайта лежит физический файл robots.txt, он обычно имеет приоритет над виртуальной версией. Это удобно, но опасно: старый файл легко забыть после миграции или смены плагина.
Проверьте содержимое файла. В нём не должно быть правил, которые случайно закрывают важные разделы сайта, например:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlЭто базовый пример, но он не должен копироваться бездумно. Если у вас другой адрес sitemap, укажите именно его. Если сайт использует несколько карт, в robots.txt можно перечислить их все, но только если они реально нужны.
3. Уберите дубли через код, если плагин не справляется
Иногда проблема не в sitemap как таковом, а в том, что WordPress продолжает отдавать лишние служебные URL. Тогда проще точечно отключить ненужные элементы через код в теме или через mu-plugin.
Например, если нужно убрать стандартную карту сайта ядра WordPress, можно отключить её фильтром:
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );Этот вариант уместен только если вы точно используете другой механизм генерации sitemap. Иначе вы просто выключите карту сайта полностью.
Если нужно изменить содержимое robots.txt, используйте фильтр robots_txt:
<?php
add_filter( 'robots_txt', function( $output, $public ) {
$output .= "\nSitemap: https://example.com/sitemap_index.xml";
return $output;
}, 10, 2 );Такой подход полезен, когда вы не хотите держать отдельный физический файл и предпочитаете управлять правилами из кода.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. После правок сделайте три вещи:
- Откройте
/robots.txtи убедитесь, что там только нужные правила и актуальный адрес sitemap. - Откройте основной URL sitemap и проверьте, что он отдаёт один индекс без дублей.
- Проверьте заголовки ответа и код страницы через
curl -Iили любой HTTP-сканер.
Если есть доступ к Search Console, отправьте sitemap заново и посмотрите, нет ли ошибок чтения или неожиданных URL в отчёте. Для сайта с уже существующей историей полезно сравнить старый и новый список страниц, чтобы не потерять важные разделы.
Частые ошибки и как их исправить
Оставили два sitemap одновременно
Это самая частая ошибка после установки SEO-плагина поверх стандартной конфигурации WordPress. Исправление простое: оставьте один источник карты сайта и удалите или отключите второй.
Закрыли robots.txt слишком агрессивно
Иногда в robots.txt случайно попадает Disallow: / или закрываются CSS и JS-файлы, которые нужны для рендеринга страниц. В результате поисковик видит сайт хуже, а не лучше. После правки обязательно проверьте, не закрыты ли критичные ресурсы.
Сослались на несуществующий sitemap
Если в robots.txt указан старый адрес, поисковик будет получать 404 или пустую карту. Это часто случается после смены SEO-плагина. Исправление: обновить ссылку и проверить ответ сервера.
Правили файл, но изменения не видны
Если на сайте стоит кеш, он может отдавать старую версию robots.txt или sitemap. Очистите кеш плагина, серверный кеш и, если нужно, CDN. После этого повторите проверку через curl.
Безопасность и производительность
С точки зрения безопасности robots.txt не защищает данные, он только подсказывает поисковым роботам. Не рассчитывайте на него как на способ скрыть админку, приватные файлы или резервные копии. Если файл реально должен быть недоступен, закрывайте его на уровне сервера или прав доступа.
С точки зрения производительности лучше не генерировать лишние карты сайта и не держать несколько плагинов, которые решают одну и ту же задачу. Чем меньше конфликтующих источников, тем проще сопровождать сайт и тем меньше шансов получить неожиданный дубль после обновления.
Если вам нужен более широкий набор SEO- и технических настроек, иногда удобнее собрать их в одном инструменте, чем держать несколько разрозненных плагинов. Например, у Clearfy Pro есть функции для чистки сайта и работы с дублями: https://wpshop.ru/plugins/clearfy.
Короткий чек-лист перед публикацией
- Проверен один основной sitemap, без дублей.
robots.txtсодержит актуальный адрес sitemap.- Нет случайного
Disallow: /или закрытия важных ресурсов. - После изменений очищен кеш.
- Сайт повторно проверен через
curlи в Search Console.
Если после этого в индексации всё ещё остаются старые служебные URL, проблема уже не в sitemap и robots.txt, а в настройках конкретных страниц, архивов или шаблонов. Тогда нужно смотреть канонические URL, мета-robots и правила генерации архивов отдельно.