Robots.txt управляет обходом сайта поисковыми роботами: помогает не тратить краулинговый ресурс на служебные разделы, фильтры и дубли URL. Ниже разберём директивы, популярных ботов, GET-параметры, способы снизить нагрузку и готовые примеры для Яндекса, Google и AI-поиска.
Краткий ответ
Файл robots.txt размещают в корне сайта по адресу https://site.ru/robots.txt. Он сообщает роботам, какие URL можно обходить, а какие лучше не запрашивать. Для удаления страницы из поисковой выдачи одного Disallow недостаточно: оставьте страницу доступной роботу и используйте noindex или HTTP-заголовок X-Robots-Tag.
Что такое robots.txt и когда он нужен
Robots.txt нужен прежде всего для управления обходом. На сайте с каталогом, фильтрами, поиском и личным кабинетом один и тот же контент часто открывается по множеству адресов. Если не ограничить технические URL, робот будет расходовать запросы на дубли, а важные карточки, статьи и посадочные страницы может посещать реже.
Файл не является защитой данных. Недобросовестный бот может проигнорировать правила, а URL, закрытый от обхода, иногда всё равно появляется в поиске без сниппета. Конфиденциальные разделы закрывают авторизацией, а URL, который нельзя показывать в поиске, помечают noindex.
Где лежит файл и как проверить его доступность
| Требование | Что проверить |
|---|---|
| Адрес | Файл доступен только из корня хоста: /robots.txt. |
| Ответ сервера | Возвращается HTTP 200. У Яндекса допустим переход на другой robots.txt при корректном ответе 200. |
| Формат | Обычный текстовый файл, без кириллицы в путях. Кириллические URL указывают в percent-encoding. |
| Размер | Делайте файл компактным. Яндекс указывает лимит 500 КБ и рекомендует объединять похожие правила масками. |
После публикации проверьте URL в браузере и в Анализе robots.txt Яндекс Вебмастера. Для Google используйте проверку URL в Search Console и убедитесь, что Googlebot получает доступ к нужным страницам.
Все основные директивы robots.txt
| Директива | Назначение | Где учитывать |
|---|---|---|
| User-agent | Начинает группу правил для конкретного робота или всех роботов через *. | Стандарт REP, Яндекс, Google, Bing и большинство добросовестных ботов. |
| Disallow | Запрещает обход пути. Пустая строка после двоеточия означает, что запрета нет. | Основная директива. |
| Allow | Разрешает более конкретный путь внутри закрытого раздела. | Поддерживается крупными поисковыми системами, включая Яндекс и Google. |
| Sitemap | Указывает полный URL XML-карты сайта. Можно добавить несколько строк. | Межсекционная директива, место в файле не критично. |
| Clean-param | Сообщает Яндексу, какие GET-параметры не меняют содержимое страницы. | Расширение Яндекса. |
| Crawl-delay | Просит робота делать паузу между запросами. | Поддерживается Bingbot. Google эту директиву не использует. |
Базовый шаблон для корпоративного сайта
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /component/search/
Disallow: /index.php?option=com_users
Allow: /
Sitemap: https://site.ru/sitemap.xml
Как работают Allow, Disallow и маски
Путь всегда начинайте со слеша. Символ * заменяет любую последовательность символов, а $ обозначает конец URL. Чем точнее правило, тем безопаснее настройка. Не закрывайте папку с CSS, JavaScript и изображениями, если роботу нужен рендеринг страницы или индексация медиа.
| Запись | Результат |
|---|---|
| Disallow: /admin/ | Запрещает обход всего раздела /admin/. |
| Disallow: /*?sort= | Закрывает URL, где в строке запроса встречается sort=. |
| Disallow: /*.pdf$ | Закрывает PDF-файлы с окончанием .pdf. |
| Disallow: /files/ Allow: /files/price.pdf | Закрывает раздел, но делает исключение для конкретного файла. |
Лайфхак: перед массовым запретом возьмите 10 реальных URL из логов, Вебмастера или Search Console и проверьте каждый адрес. Ошибочная маска может закрыть целый каталог или полезные страницы пагинации.
Как исключить GET-параметры и не потерять позиции
GET-параметры появляются в UTM-метках, сортировках, фильтрах, идентификаторах сессии и внутреннем поиске. Сначала разделите их на два типа: параметры, которые не меняют контент, и параметры, которые создают самостоятельную ценную страницу. Закрывать одинаково все фильтры нельзя.
Яндекс: Clean-param для незначащих параметров
Если UTM, ref или идентификатор сессии не меняют содержимое, используйте Clean-param. Яндекс объединяет такие адреса с основной страницей и не расходует обход на дубли.
User-agent: Yandex
Clean-param: utm_source&utm_medium&utm_campaign
Clean-param: ref /catalog/
Синтаксис и ограничения смотрите в официальной документации Яндекса по Clean-param. Не добавляйте туда параметры, которые меняют цену, наличие, регион или набор товаров.
Google: canonical и настройка самих URL
Google не поддерживает Clean-param. Для дублей с параметрами используйте канонический URL в HTML, внутренние ссылки на каноническую версию и понятную логику параметров в CMS. Для страниц, которые не должны появляться в поиске, используйте noindex, но не блокируйте их в robots.txt.
Подробности: руководство Google по robots.txt и правила noindex.
Как снизить нагрузку на сайт от поисковых роботов
Начните не с Crawl-delay, а с диагностики. В логах сервера найдите URL, которые роботы запрашивают чаще всего. Обычно нагрузку создают поиск по сайту, фасетные фильтры, сортировки, страницы сессий и бесконечные комбинации параметров.
- Закройте действительно технические разделы через Disallow: поиск, черновики, служебные обработчики, корзину и личный кабинет.
- Для Яндекса примените Clean-param к незначащим меткам и параметрам. Это безопаснее, чем массово закрывать URL с UTM.
- Проверьте canonical, чтобы одинаковые страницы не конкурировали между собой.
- Для Bingbot при реальной перегрузке можно задать Crawl-delay. Для Google используйте настройки скорости обхода и ответы сервера, а не неподдерживаемые директивы.
- Если робот получает 429 или 5xx, сначала устраните проблему производительности. Искусственно замедлять обход без диагностики не стоит.
Популярные User-agent: кого встречают в логах
| Агент | Задача | Практический вывод |
|---|---|---|
| Googlebot | Основной робот Google Search, включая связанные поисковые продукты. | Не закрывайте нужные страницы, CSS и JavaScript. |
| Bingbot | Поисковый робот Bing. | При подтверждённой перегрузке учитывает Crawl-delay. |
| YandexBot | Основной индексирующий робот Яндекса. | Проверяйте правила в Яндекс Вебмастере. |
| YandexImages | Индексирует изображения для Яндекс Картинок. | Не закрывайте нужные изображения и страницы, где они размещены. |
| OAI-SearchBot | Помогает обнаруживать публичный контент для поиска ChatGPT. | Разрешайте, если хотите, чтобы публичные страницы были доступны AI-поиску. |
| OAI-AdsBot | Проверяет посадочные страницы для рекламных сценариев ChatGPT. | Не блокируйте рекламные лендинги, если используете этот канал. |
| GPTBot | Отдельный агент, связанный с настройками использования контента для обучения. | Если не хотите разрешать такое использование, задайте отдельное правило именно для GPTBot. |
Не доверяйте только строке User-agent: её можно подделать. Яндекс рекомендует проверять робота обратным и прямым DNS-запросом, а для Google используйте официальную проверку роботов. Не создавайте отдельные блоки для каждого агента без причины: специфичная группа может перестать наследовать правила из User-agent: *.
Что не нужно писать в robots.txt
- Noindex не является рабочей директивой robots.txt для Google. Используйте meta robots или X-Robots-Tag.
- Host не добавляйте как способ выбора главного зеркала. Используйте корректные редиректы, canonical и настройку основного адреса сайта.
- Nofollow в robots.txt не управляет ссылками. Для ссылок применяют HTML-атрибут rel.
- Не закрывайте через robots.txt страницу, на которой уже стоит noindex. Робот не увидит метатег.
- Не используйте robots.txt для защиты административной панели, файлов резервных копий или персональных данных. Эти ресурсы должны быть недоступны без авторизации.
Пошаговая проверка после изменения robots.txt
- Сохраните предыдущую версию файла, чтобы можно было быстро откатить ошибку.
- Проверьте ответ https://site.ru/robots.txt: нужен код 200 и правильное содержимое.
- Протестируйте важные URL в Яндекс Вебмастере: главную, карточку товара, фильтр, поиск, корзину и страницу с параметрами.
- В Search Console проверьте, может ли Googlebot получить нужную страницу, а на исключаемой странице увидит ли он noindex.
- Через 1-2 недели посмотрите логи и отчёты об индексировании: сократился ли обход дублей и не исчезли ли нужные разделы.
Нужна проверка robots.txt и индексации?
Проверим технические разделы, фильтры, GET-параметры, карту сайта и доступность страниц для поисковых роботов. После аудита дадим понятный список правок и объясним риски для SEO.
Обсудить проверку сайтаЧастые вопросы о robots.txt
Можно ли закрыть страницу от индексации через Disallow?
Нет, это только запрет обхода. URL может сохраниться в поиске, если на него есть ссылки. Для удаления из выдачи используйте noindex или X-Robots-Tag и не закрывайте страницу от обхода до того, как робот увидит это правило.
Нужно ли писать Allow: /?
Обычно нет: отсутствие Disallow уже означает, что путь открыт. Allow: / полезен как явная запись в шаблоне, но не заменяет конкретные правила и не повышает позиции.
Можно ли закрыть UTM-метки через Disallow?
Не стоит делать это по умолчанию. Для Яндекса используйте Clean-param, для Google настройте canonical и внутренние ссылки. Так поисковые системы лучше поймут основную страницу и не потеряют сигналы.
Как быстро уменьшить нагрузку от Яндекса?
Сначала найдите источник нагрузки в логах. Яндекс рекомендует Clean-param для незначащих параметров и Disallow для действительно ненужных разделов. При экстренной перегрузке сервер должен корректно отдавать 429, а не нестабильные ошибки.
Поддерживает ли Google Crawl-delay?
Нет, Google не использует эту директиву. Управляйте качеством URL, настройками обхода и стабильностью сервера. Для Bingbot Crawl-delay поддерживается.
Нужно ли разрешать AI-ботов?
Это решение владельца сайта. Если публичный контент должен быть доступен для AI-поиска, не блокируйте OAI-SearchBot. Для рекламных лендингов в сценариях ChatGPT важен OAI-AdsBot. GPTBot настраивается отдельно.
Когда изменения вступят в силу?
Роботы периодически обновляют копию robots.txt, поэтому изменения не всегда видны мгновенно. Яндекс Вебмастер хранит версии файла и позволяет проверить конкретный URL, а Google требует повторного обхода для оценки новых правил.
Что важно запомнить
Хороший robots.txt короткий и основан на реальных URL сайта. Закрывайте технические разделы и дубли, но не прячьте важные страницы от роботов. Для GET-параметров используйте Clean-param в Яндексе и canonical в Google, а для удаления URL из поиска применяйте noindex или X-Robots-Tag. Проверка в Вебмастере, Search Console и логах важнее длинного списка случайных запретов.
