robots.txt в WordPress часто правят «на глаз»: закрывают лишнее, забывают про важные разделы и потом удивляются, почему в индексе остаются дубли или, наоборот, выпадают нужные страницы. На практике задача обычно не в том, чтобы запретить как можно больше, а в том, чтобы поисковый робот тратил обход на полезные URL и не упирался в технический мусор.
Ниже — рабочий сценарий: что именно проверять, как собрать аккуратный robots.txt, чем он отличается от meta robots и как убедиться, что изменения не навредили индексации.
Когда robots.txt в WordPress действительно нужен
Файл robots.txt полезен, если у сайта есть:
- служебные разделы, которые не должны обходиться роботами;
- дубли архивов, тегов, пагинации или страниц поиска;
- нагрузка на сервер из-за частого обхода технических URL;
- потребность явно указать путь к sitemap.xml;
- нестандартная структура сайта, где стандартный файл WordPress уже не подходит.
Важно не путать Disallow в robots.txt и запрет индексации через noindex. Robots.txt ограничивает обход, но не гарантирует удаление URL из индекса, если на него уже есть ссылки. Для уже проиндексированных страниц часто нужен именно noindex или редирект, а не только robots.txt.
Диагностика: что проверить до правки файла
Перед изменением robots.txt стоит посмотреть, какие URL реально создаёт WordPress и какие из них не должны попадать в обход. Обычно проблема видна в логике структуры сайта, а не в самом файле.
Проверьте текущий robots.txt
Если файл уже существует, откройте его по адресу /robots.txt. В WordPress он может быть виртуальным, если физического файла нет. Проверьте, не закрыты ли случайно:
/wp-content/uploads/— если там лежат изображения, которые должны индексироваться;/wp-admin/admin-ajax.php— его часто закрывают, но это не всегда критично;/wp-json/— если сайт использует REST API для публичных данных;- страницы поиска, архивы и служебные параметры.
Сопоставьте robots.txt с реальной структурой сайта
Если у вас есть дубли из-за тегов, архивов автора или пагинации, robots.txt сам по себе не решит задачу. Он может уменьшить обход, но не уберёт уже известные поисковику URL. Для таких случаев обычно комбинируют:
- robots.txt — чтобы ограничить обход технических разделов;
noindex— чтобы не индексировать отдельные типы страниц;- канонические URL — чтобы указать основную версию страницы;
- редиректы — если есть явные дубли.
Пошаговая настройка robots.txt
Самый безопасный подход — не ломать стандартные правила WordPress, а добавить только то, что действительно нужно закрыть. Если вы используете SEO-плагин, сначала проверьте, не генерирует ли он robots.txt сам. В таком случае править нужно в его настройках, а не загружать второй файл поверх.
Базовый вариант для большинства сайтов
Ниже пример аккуратного robots.txt, который не мешает индексации контента и при этом закрывает типовые служебные URL:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /?s=
Disallow: /search/
Disallow: /tag/
Disallow: /author/
Sitemap: https://example.com/sitemap_index.xmlЗдесь есть важная оговорка: закрывать /tag/ и /author/ стоит только если вы осознанно не хотите, чтобы эти архивы обходились. На некоторых сайтах теги и архивы авторов дают полезный трафик, и их лучше не прятать в robots.txt, а настраивать через noindex или шаблоны SEO-плагина.
Если нужно закрыть только технические параметры
Иногда проблема не в разделах, а в параметрах URL: сортировка, фильтры, внутренний поиск, UTM-метки. Полностью закрывать такие URL в robots.txt не всегда удобно, но для части параметров это оправдано. Пример:
User-agent: *
Disallow: /*?orderby=
Disallow: /*?filter=
Disallow: /*?replytocom=
Disallow: /*?add-to-cart=
Sitemap: https://example.com/sitemap_index.xmlЭтот вариант стоит применять осторожно. Если параметр используется не только для мусорных URL, а ещё и для полезной навигации, лучше сначала проверить, как он влияет на обход и индексацию.
Если нужен физический файл robots.txt
Иногда удобнее создать реальный файл в корне сайта, особенно если вы хотите управлять им через Git или деплой. Тогда WordPress не будет подменять его виртуальной версией. Главное — не забыть, что физический файл имеет приоритет.
Минимальный набор действий:
- создайте файл
robots.txtв корне сайта; - добавьте правила без лишних директив;
- проверьте права на файл, чтобы веб-сервер мог его отдавать;
- убедитесь, что SEO-плагин не генерирует конфликтующую версию.
Пример настройки через код в WordPress
Если нужно управлять содержимым robots.txt из темы или мини-плагина, используйте фильтр robots_txt. Это удобно, когда правила зависят от окружения: staging, production, мультиязычность или кастомные типы контента.
<?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';
$lines[] = 'Disallow: /search/';
$lines[] = 'Sitemap: ' . home_url( '/sitemap_index.xml' );
return implode( "\n", $lines ) . "\n";
}, 10, 2 );Такой подход полезен, если вы хотите централизованно контролировать файл без ручного редактирования. Но не смешивайте это с SEO-плагином, который тоже умеет генерировать robots.txt: в итоге можно получить неожиданный набор правил.
Как проверить, что настройка сработала
После правки не ограничивайтесь открытием /robots.txt в браузере. Этого недостаточно: файл может отображаться правильно, но при этом закрывать не те URL.
- Откройте
/robots.txtи убедитесь, что он отдается без редиректов и ошибок. - Проверьте, что sitemap указан корректно и ведет на существующий файл.
- В Google Search Console используйте проверку URL для нескольких типовых страниц.
- Посмотрите, не исчезли ли из обхода важные разделы, например категории или записи.
- Проверьте, не остались ли в индексе старые дубли, которые robots.txt уже не должен закрывать.
Если сайт большой, полезно сравнить логи сервера до и после изменения. Снижение числа запросов к техническим URL — хороший знак, но только если при этом не просел обход контента.
Сравнение подходов: robots.txt, noindex и редирект
| Подход | Когда использовать | Плюс | Минус |
|---|---|---|---|
| robots.txt | Нужно ограничить обход технических разделов | Быстро и просто | Не гарантирует удаление URL из индекса |
| noindex | Страница должна быть доступна, но не индексироваться | Работает точнее для индексации | Робот должен иметь доступ к странице |
| редирект | Есть явный дубль или устаревший URL | Убирает лишнюю версию адреса | Нужно аккуратно настраивать цепочки |
Частые ошибки и как их исправить
Закрыли слишком много
Самая частая ошибка — запретить целые каталоги, не проверив, что там лежит. Например, /wp-content/ закрывать нельзя, если вы хотите, чтобы поисковики видели картинки, CSS и JS. В результате можно получить проблемы с рендерингом и ухудшение оценки страницы.
Пытаются удалить дубли только robots.txt
Если архивы тегов уже в индексе, robots.txt не решит проблему полностью. Нужны дополнительные меры: noindex, каноникал или редирект. Иначе URL может продолжать жить в выдаче как «запрещённый к обходу» адрес.
Конфликт физического и виртуального файла
Если в корне сайта есть физический robots.txt, а SEO-плагин генерирует свой вариант, вы можете видеть не тот файл, который ожидаете. Проверьте, какой именно файл отдаёт сервер, и оставьте только один источник правды.
Закрыли sitemap
Иногда в robots.txt по ошибке запрещают путь к sitemap или сам sitemap попадает под слишком широкое правило. Это мешает поисковикам быстрее находить новые страницы. Sitemap должен быть доступен без лишних ограничений.
Практические советы по безопасности и производительности
robots.txt не защищает сайт от атак и не скрывает чувствительные данные. Если нужно закрыть админку или API от нежелательного доступа, используйте нормальные меры безопасности: ограничение по IP, авторизацию, WAF, настройку прав доступа и актуальные обновления.
С точки зрения производительности полезно не только закрыть мусорные URL, но и убрать причины их появления. Например, если сайт генерирует много дублей из-за параметров сортировки, лучше пересмотреть шаблон ссылок, настройки плагина фильтров или логику канонических URL. В некоторых проектах помогает и чистка SEO-дублей через инструменты вроде Clearfy Pro, если задача именно в техническом шуме и лишних архивных страницах.
Если вы меняете robots.txt на боевом сайте, делайте это через staging или хотя бы с резервной копией текущего файла. Ошибка в одной строке может стоить заметной части трафика, а откат потом занимает время.