Каждый добросовестный поисковый робот — Googlebot, YandexBot, Bingbot — перед обходом сайта запрашивает файл /robots.txt и выполняет его правила. С его помощью вы экономите краулинговый бюджет: роботы не тратят время на корзину, фильтры с параметрами и служебные разделы, а быстрее находят важные страницы.
Синтаксис robots.txt
Файл состоит из групп правил. Каждая группа начинается с User-agent (для какого робота) и содержит директивы.
User-agent: *
Disallow: /admin/
Allow: /admin/ajax.php
Sitemap: https://example.ru/sitemap.xml
| Директива | Что делает | Кто поддерживает |
|---|---|---|
User-agent |
Указывает робота (* — все) |
Все |
Disallow |
Запрещает сканирование пути | Все |
Allow |
Разрешает путь внутри запрещённого раздела | Google, Яндекс, Bing |
Sitemap |
Адрес карты сайта (полный URL) | Google, Яндекс, Bing |
Clean-param |
Указывает незначащие GET-параметры | Только Яндекс |
Crawl-delay |
Пауза между запросами | Bing; Google и основной робот Яндекса игнорируют |
Host |
Главное зеркало | Не поддерживается с 2018 года |
Специальные символы:
*— любая последовательность символов:Disallow: /*?sort=;$— конец адреса:Disallow: /*.pdf$.
Важные правила разбора:
- Пути чувствительны к регистру:
/Admin/и/admin/— разные адреса. - При конфликте
AllowиDisallowпобеждает более длинное (более конкретное) правило. - Если для робота есть своя группа (
User-agent: Yandex), он выполняет только её и игнорирует группу*. - Пустой
Disallow:означает «можно всё».
Директива Clean-param для Яндекса
Интернет-магазины и сайты с UTM-метками часто имеют тысячи дублей вида /catalog/?utm_source=vk или /product/?ref=123. Clean-param говорит Яндексу, что эти параметры не меняют содержимое:
User-agent: Yandex
Clean-param: utm_source&utm_medium&utm_campaign&ref /
Яндекс будет считать такие адреса одной страницей и не станет обходить каждую копию. Google эту директиву не понимает — для него дубли решаются через rel="canonical".
Пример для WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /*?replytocom=
Sitemap: https://example.ru/sitemap_index.xml
Не закрывайте /wp-content/ и /wp-includes/ целиком: там лежат CSS, JS и изображения, без которых Google не сможет корректно отрисовать страницу.
Пример для интернет-магазина
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /personal/
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?filter=
Disallow: /search/
User-agent: Yandex
Disallow: /cart/
Disallow: /checkout/
Disallow: /personal/
Disallow: /search/
Clean-param: sort&filter&utm_source&utm_medium&utm_campaign /
Sitemap: https://example.ru/sitemap.xml
Обратите внимание: в группе Yandex повторены все нужные запреты, потому что Яндекс прочитает только свою группу. Параметры сортировки и фильтров для него вынесены в Clean-param.
Если часть фильтров у вас — продвигаемые посадочные страницы (например, «диваны серые»), не закрывайте их: сделайте для них отдельные чистые URL.
Собрать файл без ошибок можно в генераторе robots.txt, а проверить, закрыт ли конкретный адрес, — в проверке robots.txt.
Robots.txt или noindex: что выбрать
Это разные инструменты, и путаница между ними — самая частая ошибка.
| Задача | Инструмент |
|---|---|
| Не тратить бюджет обхода на мусорные URL | Disallow в robots.txt |
| Убрать страницу из результатов поиска | <meta name="robots" content="noindex"> или заголовок X-Robots-Tag |
| Склеить дубли | rel="canonical" (Google), Clean-param (Яндекс) |
| Закрыть от всех, включая людей | Пароль на уровне сервера |
Главная ловушка: если страница закрыта в robots.txt, робот не увидит на ней noindex. В итоге URL может остаться в индексе Google с пометкой «Описание недоступно из-за ограничений в файле robots.txt». Чтобы удалить страницу из поиска, сначала откройте её для сканирования и поставьте noindex, дождитесь выпадения из индекса, и только потом при желании закрывайте в robots.txt.
Robots.txt — это не защита. Файл публичный, и любой может прочитать, какие разделы вы «прячете». Конфиденциальные данные защищайте паролем.
Как проверить, что робот видит ваш файл
После любых изменений проверьте файл тремя способами:
- Откройте
https://ваш-сайт/robots.txtв браузере — убедитесь, что отдаётся актуальная версия, а не закэшированная CDN. - Проверьте конкретные URL. В проверке robots.txt введите адрес важной страницы и убедитесь, что она разрешена для
GooglebotиYandex, а служебная — запрещена. - Посмотрите отчёты поисковиков. В Google Search Console есть отчёт о файле robots.txt с датой последней загрузки и ошибками разбора, в Яндекс Вебмастере — инструмент «Анализ robots.txt», где можно проверить список адресов.
Google обычно кэширует robots.txt до 24 часов, поэтому изменения применяются не мгновенно.
Роботы нейросетей
В последние годы появились краулеры, собирающие данные для обучения ИИ-моделей, например GPTBot или Google-Extended (это не отдельный робот, а токен управления для использования контента в моделях Google). Если вы не хотите, чтобы ваш контент использовался для обучения, их можно запретить отдельными группами:
User-agent: GPTBot
Disallow: /
Запрет Google-Extended не влияет на индексацию в Google Поиске.
Частые ошибки
Disallow: /на рабочем сайте. Остаётся после разработки на тестовом домене — сайт полностью выпадает из обхода. Проверяйте файл после каждого запуска.- Отдельная группа для Яндекса без общих запретов — Яндекс игнорирует группу
*. - Закрыты CSS и JS — Google видит «сломанную» страницу.
- Кириллица в путях без кодирования. Пути с русскими буквами указывайте в URL-кодированном виде, как их отдаёт сервер.
- Неверный адрес Sitemap — относительный путь вместо полного URL.
- Файл отдаёт код 5xx. Если robots.txt недоступен из-за ошибки сервера, Google может временно приостановить обход всего сайта. Код 404 же означает «ограничений нет».
- Размер. Google обрабатывает только первые 500 КиБ файла.
Чек-лист
- Файл доступен по адресу
/robots.txtи отдаёт код 200. - Нет строки
Disallow: /в общей группе (если сайт должен индексироваться). - Служебные разделы, корзина, поиск и параметры сортировки закрыты.
- CSS, JS и изображения открыты.
- Для Яндекса заданы
Clean-paramи повторены все нужные запреты. - Указан полный адрес Sitemap.
- Страницы, которые нужно убрать из индекса, закрыты через
noindex, а не через robots.txt. - Файл проверен в Google Search Console и в Яндекс Вебмастере («Анализ robots.txt»).
Robots.txt и карта сайта работают в паре: первый говорит, куда не ходить, вторая — что важно найти. Про карту сайта читайте в гайде Что такое sitemap.xml.