Что такое robots.txt и что он умеет на самом деле
robots.txt — текстовый файл в корне сайта, в котором владелец сообщает поисковым роботам, какие разделы обходить не нужно. Это первый файл, который робот запрашивает на сайте. С его помощью экономят краулинговый бюджет: робот не тратит время на корзину, личный кабинет, результаты поиска и бесконечные варианты сортировок, а быстрее находит и переобходит важные страницы.
Основные директивы
| Директива | Что делает | Кто понимает |
|---|---|---|
| User-agent | Начинает секцию правил для конкретного робота или для всех (*) | Все |
| Disallow | Запрещает обход путей, начинающихся с указанного префикса | Все |
| Allow | Разрешает обход внутри запрещённого раздела; побеждает более длинное правило | Яндекс, Google |
| Sitemap | Полный адрес карты сайта; может быть несколько | Яндекс, Google |
| Clean-param | Говорит Яндексу, что параметры не меняют содержимое, и склеивает дубли | Только Яндекс |
| * и $ | Любая последовательность символов и конец адреса | Яндекс, Google |
Директивы Host и Crawl-delay встречаются в старых инструкциях, но устарели: Яндекс перестал учитывать Host в 2018 году и предлагает для главного зеркала 301-редирект, а скорость обхода настраивается в Вебмастере. Google ни ту, ни другую не поддерживает. Генератор их не добавляет.
Что обычно закрывают
- Служебные разделы движка: админка, системные папки, страницы авторизации. Пресеты для WordPress, 1С-Битрикс, OpenCart, MODX и Next.js закрывают их, оставив открытыми картинки и скрипты.
- Корзину, оформление заказа и личный кабинет — в них нет контента для поиска, а у каждого посетителя они свои.
- Внутренний поиск — результаты поиска по сайту порождают тысячи похожих страниц с пустым или повторяющимся содержимым.
- Сортировки и фильтры в GET-параметрах, если для фильтров не сделаны отдельные посадочные страницы. Если сделаны — например, «/catalog/divany/uglovye/» — их, наоборот, оставляют открытыми.
- Версии для печати, сравнение, избранное — дубли основного контента.
Clean-param: как избавиться от дублей с UTM-метками
Ссылка «/catalog/?utm_source=vk» для робота — отдельный адрес, хотя содержимое то же самое. Если таких ссылок много, Яндекс тратит обход на копии и может выбрать в качестве основной не ту версию. Директива Clean-param перечисляет параметры, которые не меняют содержимое: utm-метки, yclid, gclid, идентификаторы сессий. Робот склеит такие адреса с основным и перенесёт на него сигналы. Для Google аналогичную задачу решает тег canonical на странице — стоит настроить и его.
Частые ошибки
- «Disallow: /» на рабочем сайте — чаще всего остаётся после разработки на тестовом домене. Трафик падает до нуля за пару недель.
- Закрытые CSS и JS. Поисковик не может отрисовать страницу, считает её неадаптивной и хуже ранжирует.
- Полные адреса вместо путей: «Disallow: https://site.ru/cart» не работает — нужно «/cart».
- Пустая строка внутри секции. Для некоторых роботов она означает конец секции, и следующие правила теряются.
- Закрытие страниц с noindex. Робот не прочитает запрет индексации, если ему запретили заходить на страницу.
- Отдельный robots.txt забыли для поддомена. Каждый поддомен (shop.site.ru, m.site.ru) читает свой файл.
Как проверить файл после загрузки
- Откройте https://ваш-домен/robots.txt в браузере — файл должен отдаваться с кодом 200 и как обычный текст.
- В Яндекс Вебмастере зайдите в «Инструменты → Анализ robots.txt» и проверьте пару важных адресов: они должны быть разрешены.
- В Google Search Console посмотрите отчёт о файле robots.txt — там видны ошибки разбора и дата последней загрузки.
- Через неделю загляните в отчёты об индексации: не выпали ли нужные страницы.
Вместе с robots.txt настройте карту сайта — её можно собрать генератором sitemap.xml. Типовые ошибки в обоих файлах мы разобрали в статье карта сайта и robots.txt, а если страницы не попадают в поиск — смотрите почему страницы не в индексе.
Минимальный robots.txt для небольшого сайта
Если сайт простой — лендинг или визитка без корзины и личного кабинета, — сложный robots.txt не нужен. Достаточно разрешить обход всего сайта и указать карту: две строки «User-agent: *» и «Disallow:» с пустым значением, а ниже — «Sitemap: https://ваш-домен/sitemap.xml». Всё остальное добавляйте по мере появления разделов, которым не место в поиске.
Вопросы и ответы
Где должен лежать robots.txt?
Строго в корне домена: https://site.ru/robots.txt. Файл в подпапке роботы не ищут. У каждого поддомена и протокола свой файл.
Нужны ли отдельные секции для Яндекса и Google?
Не обязательно. Отдельная секция удобна, когда правила различаются: например, Clean-param нужен только Яндексу. Учтите, что робот читает только самую подходящую ему секцию — общие правила из «User-agent: *» в именную секцию не наследуются, поэтому генератор дублирует их.
Закрыл страницу в robots.txt, а она всё ещё в поиске. Почему?
robots.txt запрещает обход, но не удаляет уже проиндексированное. Чтобы убрать страницу, временно откройте её, добавьте мета-тег noindex и дождитесь переобхода — или отдавайте код 404/410.
Нужно ли закрывать пагинацию?
Как правило, нет. Страницы пагинации помогают роботу найти товары глубже в каталоге. Лучше оставить их открытыми с уникальными заголовками и самоканоническими ссылками.
Как быстро поисковики увидят изменения?
Яндекс и Google перечитывают robots.txt примерно раз в сутки. Новые правила начинают действовать после следующей загрузки файла.
