Коротко
- robots.txt — текстовый файл в корне сайта, который говорит поисковым роботам, какие адреса не нужно обходить. Он управляет обходом, а не индексацией.
- Файл должен открываться по адресу site.ru/robots.txt и отдавать код ответа 200. Для каждого поддомена и протокола нужен свой файл.
- Робот выбирает одну группу правил — самую точную для своего User-agent — и применяет из неё самое длинное подходящее правило. При равной длине побеждает Allow.
- Проверяйте не файл целиком, а конкретные адреса: карточки, категории, фильтры, корзину, поиск, CSS и JS. Быстрее всего — тестером robots.txt для списка URL.
Что такое robots.txt и на что он влияет
robots.txt — обычный текстовый файл, который лежит в корне сайта и содержит правила для поисковых роботов: какие разделы можно обходить, а какие нет. Яндекс и Google запрашивают его перед обходом сайта и следуют найденным правилам.
Главное, что нужно понимать: robots.txt управляет обходом, а не индексацией. Если закрыть страницу в robots.txt, робот не будет её загружать, но адрес всё равно может попасть в индекс Google — например, если на него ведут ссылки. Чтобы убрать страницу из поиска, используют meta robots noindex или заголовок X-Robots-Tag, а саму страницу в robots.txt оставляют открытой: иначе робот просто не увидит запрет на индексацию.
Для интернет-магазина robots.txt решает две задачи. Первая — не тратить внимание робота на служебные адреса: корзину, личный кабинет, внутренний поиск, сортировки и бесконечные комбинации параметров. Вторая — не закрыть случайно то, что должно приносить трафик: категории, карточки товаров, полезные фильтры.
Где находится robots.txt и как его открыть
Файл всегда лежит в корне сайта и открывается по адресу https://site.ru/robots.txt. Чтобы посмотреть его, достаточно открыть этот адрес в браузере.
- Один файл на хост. У
shop.ru,m.shop.ruиblog.shop.ru— свои файлы robots.txt. Правила основного домена на поддомены не распространяются. - Код ответа 200. Файл должен отдаваться с кодом 200. Если сервер отвечает ошибкой 5xx, Google считает, что обходить сайт нельзя, и временно приостанавливает сканирование.
- Обычный текст в UTF-8. Не HTML-страница с ошибкой и не редирект на главную — так бывает, когда CMS перехватывает несуществующие адреса.
Основные директивы
| Директива | Что делает | Кто учитывает |
|---|---|---|
User-agent | Начинает группу правил для конкретного робота или для всех (*) | Все поисковики |
Disallow | Запрещает обход адресов, которые начинаются с указанного пути | Все поисковики |
Allow | Разрешает обход — используется как исключение из Disallow | Яндекс и Google |
Sitemap | Указывает адрес карты сайта | Яндекс и Google |
Clean-param | Склеивает адреса с параметрами, которые не меняют содержимое страницы, — например, UTM-метки | Только Яндекс |
Host | Раньше указывал главное зеркало | Не учитывается с 2018 года |
Crawl-delay | Задавал паузу между запросами робота | Google не учитывает, Яндекс перестал учитывать |
В правилах работают два спецсимвола: * — любая последовательность символов и $ — конец адреса. Правила чувствительны к регистру: Disallow: /Catalog/ не закроет /catalog/.
Как роботы читают правила
Ошибки в robots.txt чаще всего появляются из-за того, что файл читают сверху вниз, как список команд. Роботы Яндекса и Google работают иначе:
- Выбирают одну группу. Робот ищет группу с самым точным совпадением своего имени. Если в файле есть группа
User-agent: Yandex, Яндекс будет использовать только её, а группуUser-agent: *проигнорирует полностью. - Ищут все подходящие правила внутри выбранной группы — и Allow, и Disallow, в любом порядке.
- Применяют самое длинное правило. Побеждает правило с самым длинным путём. Если длина одинаковая, побеждает Allow.
Пример: в группе есть правила Disallow: /catalog/ и Allow: /catalog/divany/. Адрес /catalog/divany/uglovye/ подходит под оба, но второе правило длиннее — значит, страница открыта. А /catalog/stoly/ закрыт, потому что под него подходит только Disallow.
Пошаговая проверка robots.txt
- Откройте файл по адресу
site.ru/robots.txtи убедитесь, что это текст, а не страница-заглушка или редирект. - Проверьте код ответа — он должен быть 200. Сделать это можно в Яндекс Вебмастере, в инструментах разработчика браузера или любым сервисом проверки кодов ответа.
- Соберите список важных адресов: главная, 3–5 категорий, 5–10 карточек товаров, страницы пагинации, полезные фильтры, статьи блога. Добавьте служебные адреса, которые должны быть закрыты: корзина, оформление заказа, личный кабинет, поиск, сортировки.
- Прогоните список через тестер отдельно для Яндекса и для Googlebot. Важные страницы должны быть открыты, служебные — закрыты.
- Проверьте CSS, JS и картинки. Возьмите пару адресов стилей и скриптов из кода страницы — они должны быть открыты, иначе поисковик не сможет корректно отрисовать страницу.
- Сверьтесь с данными поисковиков. В Яндекс Вебмастере есть инструмент «Анализ robots.txt», в Google Search Console — отчёт о файле robots.txt в настройках. Они покажут, какую версию файла видит робот и есть ли в ней ошибки.
- Повторяйте проверку после каждого релиза, переезда, смены CMS или шаблона — именно в эти моменты файл чаще всего ломается.
9 частых ошибок интернет-магазинов
- Забытый
Disallow: /. Тестовую копию сайта закрывают от индексации, а при переносе на боевой домен файл переезжает вместе с запретом. Результат — весь сайт закрыт. - Отдельная группа для Яндекса без общих правил. Добавили
User-agent: Yandexради одной директивы — и Яндекс перестал видеть все правила из группы*. Правила нужно дублировать в каждой группе. - Закрыты CSS и JS. Типичный пример —
Disallow: /bitrix/без исключений для папок шаблонов и скриптов. Страница для робота выглядит сломанной. - Закрыта страница с noindex. Робот не может загрузить страницу и не видит meta robots noindex, поэтому адрес может остаться в индексе Google.
- Закрыты полезные фильтры. Правило
Disallow: /*?закрывает все адреса с параметрами — вместе с фильтрами, которые собирают трафик по запросам вроде «диваны с ящиком для белья». - UTM-метки без Clean-param. Ссылки из рекламы и рассылок создают дубли страниц, и робот тратит на них время.
- Ошибка в регистре или пути.
Disallow: /Searchне закроет/search/, аDisallow: cartбез слеша в начале не сработает как задумано. - Устаревшие директивы как главный инструмент. Host больше не задаёт главное зеркало — для этого нужны 301 редиректы. Проверить правила переадресации поможет генератор редиректов.
- Карта сайта на чужом протоколе или домене. Директива Sitemap ведёт на
http://-версию или на старый домен после переезда.
Пример robots.txt для интернет-магазина
Базовый вариант, который подходит большинству магазинов. Адреса корзины, кабинета и поиска замените на свои — они зависят от CMS.
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /personal/
Disallow: /search/
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?utm_
Disallow: /*&utm_
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Sitemap: https://shop.ru/sitemap.xml
В этом файле нет отдельной группы для Яндекса, поэтому все роботы используют одни и те же правила. Clean-param можно указывать в общей группе — Google его просто пропустит.
Чек-лист проверки
- Файл открывается по адресу site.ru/robots.txt и отдаёт код 200.
- В файле нет
Disallow: /для основных роботов. - Категории, карточки, пагинация и полезные фильтры открыты.
- Корзина, оформление заказа, кабинет, поиск и сортировки закрыты.
- CSS, JS и изображения открыты.
- Если есть группа для Яндекса или Google, в ней продублированы общие правила.
- Для UTM-меток и рекламных параметров указан Clean-param.
- Директива Sitemap ведёт на актуальный адрес карты сайта по HTTPS.
- Страницы, которые нужно убрать из индекса, закрыты через noindex, а не только в robots.txt.
Частые вопросы
Нужно ли закрывать в robots.txt страницы пагинации?
Обычно нет. Страницы пагинации помогают роботу находить товары в глубине каталога. Закрывать их стоит, только если они создают дубли с неуникальным содержимым, и то лучше решать это canonical-тегом, а не запретом обхода.
Сколько времени поисковики учитывают изменения в robots.txt?
Google обычно перечитывает файл в течение суток, Яндекс — тоже достаточно быстро. Ускорить можно через инструменты вебмастера: в Яндекс Вебмастере — анализ robots.txt, в Search Console — запрос на повторное сканирование файла в отчёте о robots.txt.
Можно ли закрыть сайт от нейросетей через robots.txt?
Можно запретить обход отдельным ботам, которые собирают данные для обучения моделей, — например GPTBot или Google-Extended. Это не влияет на обычный поиск Яндекса и Google. Но если вы хотите, чтобы ИИ-ассистенты рекомендовали ваш магазин, ботов поиска ИИ лучше не блокировать.
Чем robots.txt отличается от meta robots noindex?
robots.txt запрещает загружать страницу, а noindex разрешает загрузку, но запрещает показывать страницу в поиске. Для удаления страниц из выдачи используйте noindex и оставляйте их открытыми в robots.txt.
Где проверить, какую версию robots.txt видит Яндекс?
В Яндекс Вебмастере, в разделе инструментов, — «Анализ robots.txt». Там видна загруженная версия файла и можно проверить конкретные адреса. В Google аналогичные данные — в отчёте о файле robots.txt в настройках Search Console.