Зачем настраивать robots.txt
Robots.txt — это первый файл, который читает поисковый робот при заходе на сайт. Он определяет, какие разделы можно сканировать, а какие нет. Правильная настройка robots.txt решает две задачи: экономит краулинговый бюджет (робот не тратит время на служебные страницы) и защищает от попадания в индекс технических URL, которые размывают качество сайта в глазах поисковиков.
Неправильная настройка приводит к двум крайностям: либо робот тратит ресурсы на сканирование тысяч мусорных страниц, либо вообще не видит важный контент. Я встречал сайты, где в robots.txt стояла директива Disallow: /, оставшаяся после разработки. Сайт месяцами не индексировался, а владелец не понимал причину. Проверка robots.txt — базовый шаг, который занимает пять минут, но экономит недели ожидания.
Пошаговая инструкция
Шаг 1. Откройте текущий файл
Введите в браузере адрес https://ваш-сайт.ru/robots.txt. Файл должен открыться как обычный текстовый документ. Если вместо этого вы видите ошибку 404 — файла нет, и его нужно создать. Если отображается HTML-страница вместо текста — значит, robots.txt перехватывается CMS или сервером, и это нужно исправить.
Обратите внимание на код ответа сервера. Robots.txt должен отдаваться с кодом 200. Если файл возвращает 301-редирект или 500-ошибку — роботы могут интерпретировать это непредсказуемо. Проверьте код ответа через инструменты разработчика в браузере (F12 → Network) или любой HTTP-checker.
Шаг 2. Разберитесь в синтаксисе
Прежде чем редактировать файл, важно понимать, как работают директивы:
- User-agent. Указывает, для какого робота действуют правила.
User-agent: *— для всех роботов.User-agent: Yandex— только для Яндекса.User-agent: Googlebot— только для Google. - Disallow. Запрещает сканирование указанного пути.
Disallow: /wp-admin/закрывает всю папку.Disallow: /page.htmlзакрывает конкретный файл. ПустойDisallow:(без пути) — разрешает всё. - Allow. Разрешает сканирование внутри запрещённого раздела. Используется для исключений: вы закрыли
/wp-admin/, но хотите оставить доступ к/wp-admin/admin-ajax.php. - Sitemap. Указывает путь к карте сайта. Не зависит от блока User-agent — может стоять в любом месте файла.
- Clean-param. Работает только для Яндекса. Сообщает роботу, что URL с указанными GET-параметрами не нужно обрабатывать как отдельные страницы.
Важно: Disallow и Noindex — это разные вещи. Disallow запрещает сканирование, но не запрещает индексацию. Если на страницу есть внешние ссылки, Google может добавить её в индекс даже при Disallow — просто без содержимого, с пометкой «Описание недоступно из-за файла robots.txt». Для полного исключения из индекса нужен мета-тег <meta name="robots" content="noindex" /> или HTTP-заголовок X-Robots-Tag: noindex.
Шаг 3. Сформируйте правильный robots.txt для WordPress
Ниже — рекомендуемый шаблон для типичного WordPress-сайта. Адаптируйте под свой проект:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /cart/
Disallow: /checkout/
Disallow: /search/
Disallow: /?s=
Disallow: /author/
Disallow: /tag/
Disallow: /*?replytocom=
Disallow: /wp-json/
Disallow: /?p=
Disallow: /xmlrpc.php
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Allow: /wp-content/themes/
Allow: /wp-content/plugins/
Sitemap: https://ваш-сайт.ru/sitemap_index.xml
Разберу каждую директиву подробно:
- Disallow: /wp-admin/ — административная панель WordPress. Роботу там делать нечего, а сканирование этих URL тратит краулинговый бюджет.
- Disallow: /wp-login.php и /wp-register.php — страницы авторизации и регистрации. Не несут поисковой ценности.
- Disallow: /cart/ и /checkout/ — корзина и оформление заказа (для интернет-магазинов). Если на вашем сайте нет магазина — эти строки не нужны.
- Disallow: /search/ и /?s= — результаты внутреннего поиска WordPress. Яндекс и Google считают их дублями и тонким контентом. На крупных сайтах внутренний поиск генерирует тысячи мусорных URL.
- Disallow: /author/ — авторские архивы WordPress. На сайтах с одним автором они полностью дублируют основной блог. На многоавторских можно оставить открытыми, но только если на авторских страницах есть уникальный контент.
- Disallow: /tag/ — архивы меток. В большинстве случаев метки создают дубли категорий. Если вы осознанно используете метки как полноценные таксономии — не закрывайте.
- Disallow: /*?replytocom= — URL комментариев. WordPress генерирует отдельные URL для ответа на каждый комментарий — это мусорные дубли.
- Disallow: /wp-json/ — REST API WordPress. Технический эндпоинт, не нужен в индексе.
- Disallow: /?p= — короткие URL записей по ID. Дубли канонических URL.
- Allow: /wp-admin/admin-ajax.php — этот файл нужен для корректной работы AJAX-функций некоторых тем и плагинов при рендеринге.
- Allow: /wp-content/uploads/ — открывает доступ к изображениям и документам. Без этого картинки не попадут в поиск по изображениям Яндекса и Google.
- Allow: /wp-content/themes/ и /plugins/ — открывает доступ к CSS и JS файлам. Google прямо предупреждает в Search Console, если CSS/JS заблокированы — роботу нужны эти файлы для рендеринга страницы.
Шаг 4. Добавьте правила для отдельных роботов
Если нужны особые правила для конкретного поискового робота, добавьте отдельные блоки после общего:
User-agent: Yandex
Disallow: /tag/
Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content
Clean-param: yclid
Clean-param: fbclid&gclid
User-agent: Googlebot
Disallow: /tag/
Директива Clean-param работает только для Яндекса и решает проблему дублей из рекламных ссылок. Вместо того чтобы закрывать каждый URL с UTM-меткой отдельно, вы сообщаете роботу: «Эти параметры не меняют содержимое страницы, обрабатывай URL без них.» Это снимает проблему тысяч дублей, которые генерируют рекламные кампании.
Шаг 5. Разместите файл на сервере
Файл robots.txt должен лежать строго в корневой директории сайта — там же, где находится wp-config.php. Путь вида /blog/robots.txt или /site/robots.txt не работает — роботы его не увидят.
Способы размещения:
- Через файловый менеджер хостинга или FTP. Создайте текстовый файл с именем
robots.txt, заполните директивами и загрузите в корень. Самый надёжный способ. - Через Yoast SEO. SEO → Инструменты → Редактор файлов. Удобно для быстрых правок, но создаёт зависимость от плагина — если его деактивировать, виртуальный robots.txt пропадёт.
- Через SSH. Подключитесь к серверу и создайте файл командой
nano /path/to/site/robots.txt. Для тех, кто работает с сервером напрямую.
После размещения обязательно проверьте файл в браузере: https://ваш-сайт.ru/robots.txt должен отображать текст директив, а не ошибку или редирект.
Шаг 6. Проверьте через инструменты поисковиков
Яндекс Вебмастер. Перейдите в «Инструменты» → «Анализ robots.txt». Вставьте содержимое файла и проверьте несколько URL:
- Главную страницу — должна быть разрешена.
- Любую статью блога — должна быть разрешена.
- Страницу услуги — должна быть разрешена.
- Страницу /wp-admin/ — должна быть запрещена.
- URL с UTM-метками — должен быть обработан через Clean-param.
- Изображение из /wp-content/uploads/ — должно быть разрешено.
Google Search Console. В GSC robots.txt проверяется косвенно: если в отчёте «Страницы» вы видите статус «Заблокировано файлом robots.txt» для важных URL — файл настроен неправильно. Также Google уведомит в Search Console, если заблокированы CSS/JS-ресурсы, необходимые для рендеринга.
Шаг 7. Настройте мониторинг изменений
Robots.txt может измениться без вашего ведома: при обновлении WordPress, установке нового плагина, переезде на другой хостинг. Некоторые плагины безопасности добавляют собственные директивы. SEO-плагины могут перезаписать файл при обновлении настроек.
Я рекомендую раз в месяц проверять содержимое robots.txt и сверять с эталоном. Простой способ — сохранить правильную версию файла в заметках и сравнивать при каждой проверке.
Типичные ошибки
- Disallow: / — блокировка всего сайта. Чаще всего остаётся после переноса с тестового домена или разработки. Одна строка убирает сайт из поиска полностью. Всегда проверяйте robots.txt после запуска сайта.
- Закрытие CSS и JS файлов. Директивы вроде
Disallow: /wp-content/themes/илиDisallow: /wp-includes/мешают роботам рендерить страницу. Google прямо предупреждает об этом в Search Console. Роботу нужны эти файлы, чтобы «увидеть» страницу так же, как видит её пользователь. - Отсутствие директивы Sitemap. Без неё робот найдёт страницы через ссылки, но медленнее. Указание карты сайта ускоряет обнаружение нового контента и даёт чёткий сигнал о структуре сайта.
- Пустой файл вместо отсутствующего. Пустой robots.txt и отсутствие файла — разные вещи для некоторых краулеров. Лучше явно прописать
User-agent: *и разрешённые/запрещённые разделы, чем оставлять пустоту. - Использование robots.txt вместо noindex. Robots.txt запрещает сканирование, но не индексацию. Страница может попасть в индекс даже при Disallow, если на неё ведут внешние ссылки. Для полного исключения из индекса нужен мета-тег noindex.
- Несколько блоков User-agent: * в одном файле. Робот читает только первый подходящий блок. Если в файле два блока
User-agent: *с разными директивами, второй будет проигнорирован. - Пробелы и опечатки в директивах.
DisalowвместоDisallow, лишний пробел в пути — всё это приводит к тому, что правило не работает. Роботы строго интерпретируют синтаксис. - Закрытие /wp-content/uploads/. Без доступа к этой папке изображения не попадут в поиск по картинкам. А для некоторых ниш (интернет-магазины, портфолио) поиск по изображениям — значимый источник трафика.
Что проверить в итоге
- Файл доступен по адресу
https://ваш-сайт.ru/robots.txtи отдаётся с кодом 200. - Директива Sitemap указывает на актуальную карту сайта, и URL в ней открывается без ошибок.
- Основные страницы сайта (главная, услуги, статьи блога) не заблокированы — проверьте через инструмент анализа в Яндекс Вебмастере.
- Служебные разделы закрыты: /wp-admin/, /wp-login.php, /search/, /?s=, /cart/, /checkout/, /author/.
- Изображения и медиафайлы в /wp-content/uploads/ доступны роботам.
- CSS и JS файлы в /wp-content/themes/ и /wp-content/plugins/ доступны для рендеринга.
- Для Яндекса настроена директива Clean-param для UTM-меток и рекламных параметров.
- В Яндекс Вебмастере инструмент анализа robots.txt не показывает конфликтов для важных URL.
- В Google Search Console нет предупреждений о заблокированных ресурсах.
- Нет директивы
Disallow: /, блокирующей весь сайт.