robots.txt в WordPress часто правят «на глаз»: копируют чужой файл, добавляют лишний Disallow и потом удивляются, почему в индексе остаются мусорные страницы, а важные разделы проседают. Проблема обычно не в самом файле, а в том, что он конфликтует с реальной структурой сайта: архивами, служебными URL, картинками, картой сайта и страницами, которые должны быть доступны поисковику.
Ниже — рабочий сценарий: как диагностировать проблему, собрать адекватный robots.txt, проверить результат и не сломать индексацию при следующем обновлении темы или плагина.
Когда robots.txt действительно мешает индексации
Сначала стоит понять, что именно вы чините. robots.txt не удаляет страницы из индекса сам по себе, но может закрыть обход роботом. Если при этом страница уже известна поисковику, она может оставаться в выдаче без сниппета или с устаревшим описанием. Поэтому ошибка в robots.txt часто выглядит не как «страница исчезла», а как странные проблемы с обходом и переобходом.
Типовые симптомы
- в Search Console растёт число «Заблокировано robots.txt»;
- карта сайта доступна, но отдельные URL из неё не обходятся;
- в индексе остаются служебные страницы, хотя вы ожидали обратного;
- после смены темы поисковик перестал видеть CSS/JS и начал хуже рендерить страницы;
- в robots.txt появились лишние правила от плагина SEO или кэша.
Что проверить до правки файла
- открывается ли
/robots.txtв браузере без редиректов и 404; - не генерирует ли его SEO-плагин автоматически;
- не создаёт ли сервер свой robots.txt поверх файла в корне;
- не закрыты ли случайно
/wp-content/uploads/,/wp-includes/или/wp-admin/admin-ajax.php; - есть ли в карте сайта URL, которые вы сами запретили в robots.txt.
Диагностика: где искать ошибку в WordPress
В WordPress robots.txt может быть статическим файлом в корне сайта или виртуальным — когда его отдаёт ядро либо SEO-плагин. Это важно: если вы правите файл по FTP, а на сайте работает виртуальная версия, изменения просто не применятся.
Проверьте три места:
- корень сайта через FTP/SSH или файловый менеджер;
- настройки SEO-плагина, если он умеет управлять robots.txt;
- ответ сервера на запрос
https://example.com/robots.txt— именно его видит бот.
Если вы используете Nginx или Apache с нестандартными правилами, убедитесь, что сервер не подменяет ответ. Иногда в конфигурации есть отдельная обработка для robots.txt, и WordPress до неё вообще не доходит.
Как собрать безопасный robots.txt для WordPress
Базовая задача — не закрыть то, что нужно для обхода и рендеринга, и при этом убрать мусорные служебные URL. Для большинства обычных сайтов достаточно аккуратного файла без экзотики.
Пример рабочего robots.txt
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlЧто здесь важно:
/wp-admin/закрыт, ноadmin-ajax.phpразрешён — это нужно многим темам и плагинам;- поисковая выдача сайта закрыта, если она не нужна в индексе;
- карта сайта явно указана в конце;
- нет блокировки
/wp-content/uploads/и публичных ресурсов темы.
Если у вас есть языковые версии, поддомены или отдельные разделы, правила нужно проверять отдельно. Один и тот же robots.txt не всегда подходит для мультисайта и для проекта с несколькими доменами.
Когда лучше не закрывать папки целиком
Частая ошибка — запретить целый каталог, потому что там «много мусора». Например, блокировка /wp-content/ или /uploads/ ломает доступ к изображениям, стилям и скриптам. Поисковик может хуже отрисовать страницу и неверно оценить её качество. Если нужно убрать только часть URL, закрывайте точечные шаблоны, а не весь каталог.
Настройка через код, если robots.txt должен собираться автоматически
Если сайт разворачивается по шаблону или у вас несколько окружений, удобнее не редактировать файл руками, а формировать правила через фильтр robots_txt. Это штатный механизм WordPress, без выдуманных хуков и без костылей.
<?php
add_filter( 'robots_txt', function( $output, $public ) {
$lines = array();
$lines[] = 'User-agent: *';
$lines[] = 'Disallow: /wp-admin/';
$lines[] = 'Allow: /wp-admin/admin-ajax.php';
$lines[] = 'Disallow: /wp-login.php';
if ( defined( 'WP_ENVIRONMENT_TYPE' ) && WP_ENVIRONMENT_TYPE !== 'production' ) {
$lines[] = 'Disallow: /';
}
$lines[] = 'Sitemap: ' . home_url( '/sitemap_index.xml' );
return implode( "
", $lines ) . "
";
}, 10, 2 );Такой подход полезен, если на staging-среде нужно закрыть весь сайт, а на production — оставить нормальный robots.txt. Но не забывайте: если SEO-плагин тоже генерирует robots.txt, он может перебить ваш вывод. В этом случае нужно оставить один источник истины.
Сравнение подходов: файл, плагин или код
| Подход | Когда подходит | Минус |
|---|---|---|
| Статический robots.txt в корне | Небольшой сайт, редкие изменения | Легко забыть обновить после смены структуры |
| SEO-плагин | Нужна быстрая правка без доступа к серверу | Можно случайно получить конфликт правил |
Фильтр robots_txt | Шаблонные сайты, staging, автоматизация | Нужен контроль над тем, кто ещё меняет вывод |
Проверка результата после внедрения
После правки не ограничивайтесь открытием файла в браузере. Проверьте, что поисковик видит именно тот robots.txt, который вы ожидаете, и что важные URL не попали под запрет.
- Откройте
/robots.txtв браузере и убедитесь, что там нет старых правил. - Проверьте карту сайта: она должна быть доступна и не закрыта директивами.
- В Search Console используйте проверку URL для нескольких страниц из разных типов контента.
- Посмотрите серверные логи: бот должен запрашивать разрешённые страницы, а не упираться в массовые 403.
Если после изменения robots.txt страницы всё ещё не индексируются, причина может быть не в нём. Тогда смотрите noindex, канонические URL, редиректы, дубли и качество внутренней перелинковки.
Частые ошибки и как их исправить
Закрыли CSS и JS
Это ломает рендеринг. Уберите запреты на публичные ресурсы темы и плагинов. Не блокируйте /wp-content/ целиком.
Ожидали удаления страниц из индекса
robots.txt не удаляет URL из поисковой выдачи мгновенно. Если нужно убрать страницу из индекса, используйте noindex и корректный ответ сервера, а не только запрет обхода.
Оставили два источника robots.txt
Если файл в корне и SEO-плагин одновременно генерируют правила, в итоге вы видите не то, что редактировали. Оставьте один вариант и проверьте фактический ответ сервера.
Забыли про карту сайта
Если Sitemap не указан, поисковику сложнее переобходить сайт после изменений. Особенно это заметно на больших проектах с частыми обновлениями.
Практические советы по безопасности и производительности
robots.txt не защищает сайт от атак и не заменяет ограничения на уровне сервера. Не используйте его как «безопасность» для админки или приватных разделов. Если URL нельзя видеть, закрывайте его авторизацией, правами доступа или серверными правилами.
Для производительности полезно держать robots.txt коротким и понятным. Чем меньше в нём хаотичных исключений, тем проще поддерживать сайт после обновления темы, миграции или подключения нового SEO-плагина. Если у вас много технических дублей, лучше сначала навести порядок в структуре URL, а уже потом править robots.txt.
Если нужен более широкий технический аудит дублей, индексации и служебных страниц, на практике часто помогает связка ручной проверки и инструментов вроде Clearfy Pro: он закрывает часть типовых SEO- и технических хвостов, но сам по себе не отменяет необходимость проверить robots.txt и карту сайта.