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