Если сайт на WordPress начал тратить краулинговый бюджет на служебные URL, robots.txt — первое место, куда стоит смотреть. Но это не универсальная «кнопка скрыть от поиска»: файл управляет обходом, а не индексацией как таковой. Поэтому ошибка здесь обычно не в том, что robots.txt «не работает», а в том, что его используют не по назначению.
Ниже разберём, какие страницы имеет смысл закрывать, как собрать рабочий robots.txt без конфликтов с темой и плагинами, и как проверить, что вы не отрезали поисковику нужные ресурсы.
Когда robots.txt действительно нужен
В WordPress robots.txt полезен, если в выдачу и в обход попадают технические URL, которые не должны тратить ресурсы поискового робота. Типичные примеры: служебные страницы плагинов, внутренние каталоги, параметры поиска, временные директории, отдельные endpoint'ы, которые не должны сканироваться.
При этом важно понимать границу: если страница уже в индексе, директива Disallow не удалит её из поиска мгновенно. Она лишь ограничит обход. Для удаления из индекса нужны другие меры: noindex, редирект, 404/410 или корректная каноникализация — в зависимости от ситуации.
Что обычно закрывают, а что нет
Закрывать имеет смысл только то, что не несёт ценности для поиска и не должно сканироваться вообще. Например:
- служебные каталоги и временные пути, если они доступны по HTTP;
- внутренние страницы поиска по сайту, если они генерируют мусорные URL;
- параметры, создающие бесконечные комбинации фильтров или сортировок;
- технические endpoint'ы плагинов, если они не используются публично.
Не стоит закрывать CSS, JS, изображения и шрифты без проверки. Если поисковик не может загрузить ресурсы, он хуже рендерит страницу и может неверно оценить мобильную версию или layout. Это особенно заметно, когда robots.txt пишут «на всякий случай» и закрывают слишком много.
Диагностика: что именно мешает индексации и обходу
Перед правкой robots.txt нужно понять, какая проблема у вас на самом деле. Если в индексе мусорные URL — это одна задача. Если в отчётах по сканированию видно слишком много параметров — другая. Если страницы не индексируются вообще, robots.txt может быть лишь частью проблемы.
Проверьте три вещи:
- какие URL реально доступны по HTTP и возвращают 200;
- есть ли у них канонический адрес и мета-роботы;
- не закрыты ли важные ресурсы в robots.txt уже сейчас.
Для быстрой проверки откройте /robots.txt и посмотрите, не добавил ли его плагин SEO, кеш-плагин или хостинг. В WordPress часто бывает так, что файл генерируется не физически, а динамически, и править его нужно не через FTP, а в настройках SEO-плагина или через фильтр.
Как понять, что robots.txt уже конфликтует с сайтом
Признаки обычно такие:
- в Search Console есть страницы, которые не сканируются из-за
robots.txt; - страницы выглядят нормально в браузере, но поисковик не видит стили или скрипты;
- после обновления SEO-плагина правила в robots.txt меняются сами;
- в файле есть несколько блоков
User-agent: *с разными правилами, и непонятно, какие из них фактически применяются.
Рабочая схема настройки robots.txt в WordPress
Самый безопасный подход — сначала собрать минимальный набор правил, а потом добавлять только то, что действительно нужно. Не копируйте чужой robots.txt целиком: структура сайта, плагины и пути отличаются.
Базовый вариант для WordPress обычно выглядит так:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap_index.xmlЗдесь закрывается административная часть, но разрешается admin-ajax.php, который нужен фронтенду и некоторым плагинам. Это важная деталь: если закрыть весь /wp-admin/ без исключения, можно сломать часть функций темы или плагинов, которые используют AJAX-запросы.
Как добавить правила для служебных URL
Если у вас есть конкретные технические пути, добавляйте их точечно. Например, если сайт генерирует мусорные URL поиска или параметров, можно ограничить их обход:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /*?orderby=
Disallow: /*?filter_=
Sitemap: https://example.com/sitemap_index.xmlНо здесь есть нюанс: robots.txt не понимает все шаблоны одинаково у всех роботов. Поддержка wildcard-записей зависит от поисковой системы. Поэтому такие правила стоит использовать только когда вы понимаете, какие именно URL они затрагивают, и проверили, что это не ломает полезные страницы.
Настройка через код, если robots.txt генерируется WordPress
Если вам нужно управлять содержимым robots.txt из темы или небольшого mu-plugin, используйте фильтр robots_txt. Это штатный механизм WordPress, и он подходит для точечных правок без ручного редактирования файла.
<?php
add_filter( 'robots_txt', function( $output, $public ) {
$lines = array(
'User-agent: *',
'Disallow: /wp-admin/',
'Allow: /wp-admin/admin-ajax.php',
'Disallow: /search/',
'Sitemap: https://example.com/sitemap_index.xml',
);
return implode( "\n", $lines ) . "\n";
}, 10, 2 );Этот вариант удобен, если:
- robots.txt должен быть одинаковым на всех окружениях;
- вы не хотите зависеть от интерфейса SEO-плагина;
- нужно добавить правило программно, например для staging или multisite.
Но если на сайте уже есть SEO-плагин, проверьте, не перезаписывает ли он robots.txt своим генератором. Иначе получится гонка правил: вы добавляете одно, плагин — другое, а в браузере видите третий вариант.
Сравнение подходов: плагин, код или ручной файл
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Через SEO-плагин | Если robots.txt уже управляется из админки | Удобно, не нужен код | Зависимость от интерфейса и логики плагина |
Через фильтр robots_txt | Если нужна централизованная настройка | Контроль в коде, можно версионировать | Нужно следить за конфликтами с плагинами |
| Физический файл в корне | Если сервер отдаёт именно файл, а не динамику | Просто и прозрачно | WordPress и плагины могут его не учитывать |
На практике для небольших проектов чаще всего хватает SEO-плагина или фильтра. Физический файл имеет смысл, когда вы точно знаете, как сервер и WordPress его обслуживают.
Проверка результата после внедрения
После правки не ограничивайтесь открытием /robots.txt в браузере. Нужно проверить, что правила реально отдаются и не конфликтуют с картой сайта, canonical и мета-роботами.
- Откройте
https://example.com/robots.txtи убедитесь, что там именно тот текст, который вы ожидаете. - Проверьте, не закрыт ли
/wp-content/uploads/или другие публичные ресурсы, нужные для рендеринга. - В Search Console посмотрите отчёты по сканированию и сообщения о заблокированных ресурсах.
- Протестируйте несколько URL вручную: служебный, обычную запись, страницу категории, поиск по сайту.
Если вы добавляли правила для параметров, проверьте, что канонические страницы всё ещё доступны и не попали под слишком широкую маску. Частая ошибка — закрыть не только мусорные URL, но и полезные страницы с параметрами сортировки или пагинации.
Что считать успешным результатом
Решение можно считать рабочим, если:
- robots.txt отдаёт только нужные директивы;
- поисковик перестал активно обходить мусорные URL;
- важные страницы и ресурсы не оказались закрыты;
- в отчётах Search Console нет новых ошибок, связанных с блокировкой CSS/JS.
Частые ошибки и как их исправить
Ошибка 1: закрывают всё подряд. Если в robots.txt попадает слишком широкий Disallow, поисковик перестаёт видеть нужные страницы или ресурсы. Исправление простое: сузить правило до конкретного каталога или параметра и проверить рендер страницы.
Ошибка 2: путают robots.txt и noindex. Если URL уже в индексе, Disallow не всегда решает задачу удаления. Для удаления используйте noindex, редирект или код ответа 404/410 — в зависимости от сценария.
Ошибка 3: забывают про admin-ajax.php. После закрытия /wp-admin/ без исключения AJAX может работать нестабильно. Всегда оставляйте явный Allow для этого файла, если он нужен фронтенду.
Ошибка 4: правят не тот robots.txt. На сайте может быть динамический файл от WordPress, физический файл в корне или генерация через SEO-плагин. Сначала определите источник, потом вносите изменения.
Ошибка 5: закрывают ресурсы темы. Если в robots.txt случайно попали CSS, JS или папка с изображениями, поисковик может хуже отрисовать страницу. Это особенно критично для адаптивных шаблонов и страниц с динамическими блоками.
Практические советы по безопасности и производительности
Если ваша цель — не только убрать мусор из обхода, но и снизить нагрузку, robots.txt работает лучше в паре с другими мерами. Служебные URL, которые не должны индексироваться, лучше ещё и не генерировать без необходимости. Например, отключить лишние архивы, убрать дубли, ограничить параметры фильтров на уровне темы или плагина.
Для сайтов, где много технических дублей, удобно держать SEO-логику в одном месте. Из практических инструментов здесь часто используют Clearfy Pro, если нужен набор настроек для чистки WordPress без ручного разбрасывания по нескольким плагинам. Но даже в этом случае robots.txt стоит проверять отдельно: автоматическая настройка не отменяет ручной контроль.
И ещё один момент: не храните в robots.txt то, что должно быть защищено авторизацией. Если URL действительно приватный, закрывайте его на уровне доступа, а не только директивой для роботов.
Короткий чек-лист перед публикацией
- Поняли, что именно закрываете: обход, а не индексацию.
- Проверили источник robots.txt: файл, плагин или фильтр.
- Не закрыли CSS, JS и изображения без необходимости.
- Оставили
Allow: /wp-admin/admin-ajax.php, если он нужен. - Проверили результат в браузере и в Search Console.
- Убедились, что полезные страницы не попали под слишком широкие правила.
Если после правки robots.txt поведение поисковика не меняется, ищите причину не только в файле. Часто проблема лежит в дублирующих URL, неправильных canonical, параметрах фильтрации или в том, что нужная страница уже была проиндексирована раньше и теперь требует отдельного удаления.