Ситуация типовая: SEO-плагин уже генерирует XML-карту сайта, а в robots.txt вы вручную добавили свои правила. После этого в Search Console появляются странные URL, карта сайта дублируется, а часть страниц выпадает из индекса. Проблема обычно не в самом WordPress, а в том, что правила для роботов и карта сайта начинают жить в разных местах и конфликтовать друг с другом.
Ниже разберём рабочую схему: как понять, где именно ломается индексация, как настроить robots.txt без лишних директив, как не задвоить sitemap и как проверить результат после правок.
Что обычно ломается в robots.txt и sitemap
В WordPress есть два разных слоя, которые часто путают:
robots.txt— текстовый файл с правилами для поисковых роботов;- XML sitemap — карта сайта, которую обычно отдаёт SEO-плагин или сам WordPress.
Если в robots.txt вручную указать несуществующий путь к sitemap, поисковик будет видеть ошибку. Если закрыть в robots.txt нужные разделы слишком агрессивно, карта сайта может продолжать их перечислять, и это создаёт лишний шум в индексации.
Признаки конфликта
- в Search Console sitemap помечен как недоступный или содержит ошибки;
- в
robots.txtесть несколько строкSitemap:с разными адресами; - в индексе появляются служебные страницы, которые вы хотели скрыть;
- после смены SEO-плагина старый sitemap продолжает отдавать 404 или редиректится странно;
- в исходном коде сайта видны ссылки на карту сайта от старого плагина и от нового одновременно.
Диагностика проблемы перед правкой
Сначала проверьте, что именно сейчас отдаёт сайт. Это быстрее, чем гадать по настройкам плагина.
1. Откройте robots.txt в браузере
Проверьте адрес /robots.txt. Если файл генерируется WordPress или SEO-плагином, вы увидите текстовые правила. Важно понять, есть ли там строка Sitemap: и какой URL указан.
2. Посмотрите, какой sitemap реально открывается
Откройте адрес карты сайта, который указан в robots.txt или в настройках SEO-плагина. Если это Yoast, Rank Math или другой плагин, карта обычно лежит на отдельном URL, а не в корне сайта. Если адрес не открывается или отдаёт редирект на старый путь, это уже источник проблемы.
3. Сверьте карту сайта с индексируемыми разделами
Если в sitemap есть страницы, которые вы закрыли от индексации, это не всегда ошибка. Но если там есть архивы, теги, авторы или служебные страницы, которые вы точно не хотите видеть в поиске, нужно проверить настройки плагина, а не только robots.txt.
Как настроить robots.txt без конфликтов
Самый надёжный подход — не редактировать физический файл на сервере, если WordPress уже умеет отдавать виртуальный robots.txt. Тогда вы не потеряете изменения после обновления и не получите две разные версии файла.
Базовый вариант через фильтр robots_txt
Если нужно добавить несколько правил, используйте фильтр robots_txt в functions.php дочерней темы или в небольшом mu-plugin. Пример ниже добавляет аккуратный набор директив и одну строку sitemap.
<?php
add_filter('robots_txt', function ($output, $public) {
$lines = [];
$lines[] = 'User-agent: *';
$lines[] = 'Disallow: /wp-admin/';
$lines[] = 'Allow: /wp-admin/admin-ajax.php';
$lines[] = 'Disallow: /?s=';
$lines[] = 'Disallow: /search/';
$lines[] = 'Sitemap: ' . home_url('/sitemap_index.xml');
return implode("\n", $lines) . "\n";
}, 10, 2);Этот вариант подходит, если вы точно знаете, что sitemap у вас лежит по адресу /sitemap_index.xml. Если SEO-плагин использует другой путь, подставьте его реальный URL.
Если sitemap генерирует SEO-плагин
Не прописывайте вручную второй sitemap, если плагин уже добавляет его сам. Двойная строка Sitemap: не даёт пользы и иногда путает диагностику. Лучше оставить один источник правды: либо плагин, либо ваш код.
| Подход | Когда использовать | Минус |
|---|---|---|
| SEO-плагин + его sitemap | Обычный проект с настройками индексации через админку | Нужно следить, чтобы вручную не дублировать правила |
| Виртуальный robots.txt через фильтр | Когда нужен контроль из темы или mu-plugin | Требует аккуратного сопровождения при смене темы |
| Физический файл в корне сайта | Когда WordPress не должен генерировать robots.txt | Легко забыть обновить после миграции |
Как убрать дубли sitemap после смены SEO-плагина
Частая ошибка — старый плагин отключили, а его sitemap всё ещё указан в robots.txt или в кэше CDN. В итоге поисковик видит старый адрес, получает редирект или 404, и это засоряет отчёты.
Что проверить в первую очередь
- Откройте
/robots.txtи убедитесь, что там только один актуальныйSitemap:. - Проверьте, не осталась ли ссылка на старый sitemap в шаблоне темы, в хедере или в настройках плагина.
- Очистите кэш сайта, серверный кэш и CDN, если он есть.
- Проверьте, не отдаёт ли старый sitemap 301/302 вместо 404 — для диагностики это важно.
Пример проверки через WP-CLI
Если у вас есть доступ к командной строке, быстро проверьте, что отдаёт сайт:
wp option get blog_public
curl -I https://example.com/robots.txt
curl -I https://example.com/sitemap_index.xmlПервая команда полезна, если сайт случайно закрыт от индексации через настройку blog_public. Вторая и третья показывают статус ответа и помогают понять, не мешает ли редирект или кэш.
Пошаговая настройка без лишних рисков
Шаг 1. Определите источник sitemap
Если sitemap создаёт SEO-плагин, не дублируйте его в коде. Если плагина нет, можно использовать встроенную карту сайта WordPress, но тогда проверьте, устраивает ли вас её структура и набор записей.
Шаг 2. Уберите лишние директивы
В robots.txt оставьте только то, что действительно нужно. Не стоит закрывать CSS, JS и изображения без причины: современные поисковые системы используют ресурсы страницы для рендеринга.
Шаг 3. Добавьте только актуальный sitemap
Одна строка Sitemap: достаточно. Если у вас мультиязычный сайт или несколько карт сайта от разных систем, сначала проверьте, не конфликтуют ли они между собой.
Шаг 4. Очистите кэш
После правок обязательно сбросьте кэш плагина, серверный кэш и CDN. Иначе вы будете проверять старую версию robots.txt и делать неверные выводы.
Проверка результата после внедрения
Проверять нужно не только сам файл, но и то, как его видит поисковик.
- Откройте
/robots.txtв браузере и убедитесь, что там один актуальный sitemap. - Проверьте, что sitemap открывается с кодом ответа 200.
- Убедитесь, что в sitemap нет страниц, которые вы явно закрыли от индексации.
- В Search Console отправьте sitemap повторно и посмотрите, нет ли ошибок чтения.
- Проверьте, не появились ли новые 404 на старый адрес sitemap в логах сервера.
Если после правок sitemap всё ещё не обновляется, почти всегда виноват кэш или то, что SEO-плагин продолжает перезаписывать ваши изменения своими настройками.
Частые ошибки и как их исправить
Два sitemap в robots.txt
Такое бывает после миграции с одного SEO-плагина на другой. Решение простое: оставьте только один актуальный адрес и проверьте, не добавляет ли второй строку автоматически.
Закрыли важные разделы через Disallow
Если вы закрыли /wp-content/ целиком, это может мешать рендерингу страниц. Закрывайте только то, что действительно не должно индексироваться, а не весь каталог наугад.
Sitemap ведёт на редирект
Редирект сам по себе не катастрофа, но для карты сайта лучше прямой URL без лишней цепочки. Если адрес поменялся, обновите его в настройках плагина или в коде.
Файл robots.txt не меняется
Если вы редактируете физический файл, а в браузере видите старое содержимое, значит WordPress или плагин отдаёт виртуальную версию. В этом случае править нужно не FTP-файл, а фильтр или настройки плагина.
Когда лучше править через плагин, а когда через код
Если сайт ведётся редактором или SEO-специалистом без доступа к коду, удобнее оставить управление в плагине. Если проект технический, а правила должны быть под контролем разработчика, фильтр robots_txt или mu-plugin надёжнее: он не зависит от темы и не исчезнет при обновлении шаблона.
Для проектов, где важна чистка дублей и аккуратная SEO-настройка, иногда проще использовать один инструмент вместо набора разрозненных правок. Например, Clearfy Pro закрывает часть задач по дублям и технической оптимизации, но даже в таком случае полезно понимать, что именно он меняет в robots.txt и sitemap, чтобы не ловить конфликты после обновлений.
Практический минимум для безопасной настройки
- не храните две версии
robots.txtодновременно; - не добавляйте sitemap вручную, если его уже генерирует плагин;
- после правок очищайте кэш на всех уровнях;
- проверяйте ответ сервера для
/robots.txtи sitemap; - не закрывайте ресурсы, нужные для рендеринга страниц;
- сверяйте настройки индексации в SEO-плагине и в коде темы.
Если после всех проверок проблема остаётся, смотрите не только WordPress, но и серверные правила: .htaccess, nginx-конфиг, CDN и кэш-плагины. Именно там часто прячется причина, почему поисковик видит не тот файл, который вы только что отредактировали.