Если в индексе появляются служебные URL, дубли архивов, страницы поиска или параметры сортировки, первым делом обычно смотрят на robots.txt. Это не универсальная кнопка «убрать из поиска», но для WordPress он помогает быстро ограничить обход технических разделов и снизить мусор в логах краулеров.
Ниже — рабочий сценарий: что именно закрывать, чем robots.txt отличается от noindex, как внести правила без конфликтов с WordPress и как проверить, что всё сработало.
Какие проблемы решает robots.txt в WordPress
Чаще всего речь не о «секретных» страницах, а о технических URL, которые не должны тратить краулинговый бюджет и мешать аналитике. В WordPress это могут быть:
- страницы поиска вида
?s=; - служебные каталоги
/wp-admin/,/wp-includes/; - архивы тегов, авторов, дат — если они не нужны в поиске;
- URL с параметрами фильтров и сортировки;
- служебные файлы, которые не должны обходиться роботами.
Но важно понимать границу: если страница уже в индексе, один Disallow не гарантирует её исчезновение. Для удаления из выдачи обычно нужен noindex на самой странице и время на переобход. Поэтому robots.txt — это про обход, а не про мгновенное удаление.
Диагностика: что именно закрывать, а что оставить
Перед правкой файла не стоит копировать чужие шаблоны. Сначала проверьте, какие URL реально создаёт ваш сайт и какие из них уже попадают в поиск.
Что смотреть в первую очередь
- Google Search Console: отчёты по страницам, исключённым из индекса, и URL с параметрами.
- Логи сервера или отчёты краулера: какие адреса чаще всего обходят боты.
- Результаты поиска по сайту: нет ли в выдаче страниц поиска, архивов автора, дублей с параметрами.
Если у вас включены SEO-плагины, проверьте, не генерируют ли они собственные правила для robots.txt. Иногда пользователь правит файл вручную, а плагин потом подставляет свой вариант и ломает ожидаемое поведение.
Когда robots.txt не подходит
Не закрывайте через robots.txt страницы, которые должны исчезнуть из индекса полностью и быстро. Для таких URL лучше:
- вернуть
noindex; - оставить доступ для обхода;
- при необходимости настроить 301 на релевантную страницу;
- убрать внутренние ссылки на этот адрес.
Если закрыть URL в robots.txt, поисковик может не увидеть noindex на самой странице и оставить её в индексе как «заблокированную robots.txt».
Пошаговая настройка robots.txt в WordPress
В WordPress файл robots.txt может быть виртуальным, то есть генерироваться системой или SEO-плагином. Если нужен свой вариант, проще всего создать физический файл в корне сайта и контролировать его содержимое вручную.
Базовый безопасный шаблон
Для большинства сайтов можно начать с такого варианта:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /search/
Disallow: /?s=
Disallow: /*?replytocom=
Disallow: /*?orderby=
Disallow: /*?filter=
Sitemap: https://example.com/sitemap_index.xmlЗдесь есть несколько важных моментов:
/wp-admin/закрывает админку, ноadmin-ajax.phpоставляем доступным, иначе можно сломать фронтенд-скрипты и AJAX-запросы;/?s=и/search/помогают ограничить обход страниц поиска;- паттерны с параметрами вроде
replytocomиorderbyуменьшают количество дублей; - строка
Sitemapдолжна указывать на реальную карту сайта.
Если нужно закрыть только часть параметров
Иногда не стоит запрещать весь поиск или все фильтры. Например, у вас есть полезные посадочные страницы с параметрами, а мусор создаёт только один конкретный параметр. Тогда лучше закрыть точечно:
User-agent: *
Disallow: /*?sort=
Disallow: /*?session=
Disallow: /*?utm_Но не переусердствуйте: слишком широкий шаблон может случайно закрыть нужные страницы. Перед публикацией проверьте, не совпадает ли правило с важными URL.
Сравнение подходов: robots.txt, noindex и 301
| Задача | robots.txt | noindex | 301 редирект |
|---|---|---|---|
| Снизить обход служебных URL | Подходит | Не решает задачу | Не нужен |
| Убрать страницу из индекса | Недостаточно | Подходит | Подходит, если есть замена |
| Сохранить ссылочный вес | Нет | Частично | Да, если редирект релевантный |
| Закрыть дубли с параметрами | Подходит для обхода | Часто нужен дополнительно | Иногда лучше каноникал или редирект |
Практически это выглядит так: robots.txt убирает лишний обход, noindex управляет индексацией, а 301 нужен, когда есть явная замена страницы.
Как добавить правила через код, если файл генерируется WordPress
Если вы не хотите править физический файл или он перезаписывается плагином, можно добавить правила через фильтр robots_txt. Это штатный механизм WordPress, и он работает без выдуманных хуков.
<?php
add_filter( 'robots_txt', function( $output, $public ) {
$rules = array(
'User-agent: *',
'Disallow: /wp-admin/',
'Allow: /wp-admin/admin-ajax.php',
'Disallow: /search/',
'Disallow: /*?replytocom=',
'Sitemap: https://example.com/sitemap_index.xml',
);
return implode( "\n", $rules ) . "\n";
}, 10, 2 );Этот вариант удобен, если вы ведёте сайт как проект и храните настройки в теме или мини-плагине. Но если SEO-специалист меняет правила часто, физический файл обычно проще для поддержки.
Проверка результата после внедрения
После правки не ограничивайтесь открытием /robots.txt в браузере. Нужно проверить и сам файл, и реакцию поисковика.
- Откройте
https://ваш-домен/robots.txtи убедитесь, что там именно те правила, которые вы ожидаете. - Проверьте, не отдаёт ли сайт 404, 403 или редирект вместо файла.
- В Search Console протестируйте URL, которые вы закрывали, и посмотрите, как робот видит доступ к ним.
- Через несколько дней проверьте, уменьшилось ли количество обходов технических адресов в логах или отчётах краулера.
Если вы закрывали параметры, полезно вручную открыть несколько реальных URL с этими параметрами и убедиться, что основная страница остаётся доступной, а лишние варианты не индексируются.
Частые ошибки и как их исправить
Закрыли слишком много
Самая частая ошибка — запретить весь каталог или шаблон, который нужен для работы сайта. Например, закрывают /wp-admin/ без исключения admin-ajax.php, а потом ловят проблемы с формами, фильтрами или фронтенд-скриптами.
Что делать: верните доступ только для реально нужных служебных файлов и проверьте фронтенд после изменения.
Путают robots.txt и noindex
Если страница уже в индексе, Disallow не всегда решает задачу. Поисковик может оставить URL в выдаче без содержимого. Для удаления используйте noindex или редирект, а robots.txt оставляйте для обхода.
Дублируют правила в плагине и вручную
Когда SEO-плагин генерирует свой robots.txt, а вы добавляете второй вариант вручную, итог может зависеть от того, какой источник WordPress отдаёт первым. В результате правила выглядят правильными в админке, но в браузере — другие.
Что делать: оставьте один источник правды. Либо физический файл, либо генерацию через код/плагин.
Используют слишком общие маски
Правило вроде Disallow: /*? может закрыть почти все URL с параметрами, включая полезные страницы. Это особенно опасно на сайтах с фильтрами, где параметры участвуют в навигации.
Что делать: закрывайте только конкретные параметры и проверяйте совпадения на реальных URL.
Практические советы по безопасности и производительности
robots.txt не защищает от доступа к контенту, он лишь подсказывает роботам, что обходить не нужно. Поэтому не используйте его как средство безопасности для приватных разделов. Для закрытия админки, личных кабинетов и служебных страниц нужны авторизация, права доступа и серверные ограничения.
С точки зрения производительности полезно держать файл коротким и понятным. Чем меньше хаотичных правил, тем проще поддержка и меньше риск случайно закрыть важный раздел после очередного обновления темы или плагина.
Если на сайте много дублей и служебных страниц, иногда удобнее сначала навести порядок в SEO-настройках, а уже потом править robots.txt. В проектах, где нужен более широкий контроль дублей и технических мета-тегов, часто используют инструменты вроде Clearfy Pro, но сам принцип остаётся тем же: не закрывать всё подряд, а убрать конкретные источники мусора.
Короткий чек-лист перед публикацией
- Проверил, какие URL реально создаёт сайт.
- Не закрыл
admin-ajax.phpи другие нужные служебные файлы. - Не использую
robots.txtвместоnoindexтам, где нужен вывод из индекса. - Убедился, что sitemap указан верно.
- Проверил файл в браузере и в Search Console.
- Сверил, что правила не конфликтуют с SEO-плагином.
Если после правки нужные страницы продолжают попадать в индекс, проблема обычно не в самом robots.txt, а в том, что закрыт только обход, но не решён вопрос индексации или внутренних ссылок. В таком случае стоит смотреть на каноникал, noindex и структуру ссылок на сайте.