Robots.txt — текстовый файл в корне сайта, содержащий инструкции для поисковых роботов о том, какие страницы и разделы можно сканировать, а какие — нет.
Что такое robots.txt в SEO — главный технический документ управления индексацией: через него вебмастер сообщает Googlebot, YandexBot, Bingbot и другим поисковым роботам правила обхода сайта.
Файл размещается строго по адресу cropas.by/robots.txt (в корне домена) и доступен через прямой HTTP-запрос. Стандарт описан в Robots Exclusion Protocol, разработанном Мартейном Костером в феврале 1994 года, и официально утверждён как RFC 9309 в сентябре 2022 года. Главные директивы robots.txt: User-agent (для какого робота правила), Disallow (запрет сканирования), Allow (разрешение в пределах запрещённого), Sitemap (указание на карту сайта), Crawl-delay (задержка между запросами для Яндекса).
Важно понимать ограничения: robots.txt — рекомендация, а не строгий запрет. Серьёзные поисковики (Google, Яндекс, Bing) следуют его инструкциям, но боты-парсеры и злоумышленники могут игнорировать.
Что такое robots.txt
Robots.txt — простой текстовый файл (без расширения, в формате plain text), который размещается в корневой папке сайта и доступен по фиксированному URL: имя_домена/robots.txt. Это первое, что запрашивает поисковый робот при заходе на сайт. По содержимому файла бот определяет, какие части сайта сканировать, какие — пропускать, где найти sitemap.
Минимальный robots.txt разрешает всё:
User-agent: *
Allow: /Это означает: «для всех роботов разрешён весь сайт».
Запрещающий robots.txt блокирует весь сайт:
User-agent: *
Disallow: /Это используется на разработческих стендах, чтобы поисковики не индексировали тестовые сайты.
Типичный robots.txt коммерческого сайта содержит десятки строк с правилами для разных разделов: административные страницы (/wp-admin/, /admin/), поисковые URL (/search/, /?s=), технические файлы (/cgi-bin/, /tmp/), параметры URL (фильтры каталога с UTM-метками).
История протокола Robots Exclusion
Протокол Robots Exclusion (REP) разработан Мартейном Костером в феврале 1994 года, когда он работал в Nexor — одной из ранних британских компаний интернет-провайдеров. Поводом стало то, что робот-парсер случайно перегрузил сайт wikiwand.com и сделал его недоступным. Костер предложил способ для вебмастеров указывать роботам, что и как они могут сканировать.
Хронология протокола:
- Февраль 1994. Мартейн Костер публикует первую спецификацию Robots Exclusion Protocol на основе обсуждений в рассылке robots-request@nexor.co.uk.
- 1996. Принят как де-факто стандарт всеми крупными поисковиками того времени (AltaVista, Lycos, Excite, WebCrawler).
- 2008. Google, Yahoo и Microsoft публикуют совместную спецификацию расширенного синтаксиса robots.txt с поддержкой wildcards (* и $) и директивы Sitemap.
- 2019. Google открывает исходный код своего парсера robots.txt на GitHub и предлагает Internet Engineering Task Force (IETF) стандартизировать протокол.
- 1 сентября 2019. Google прекращает поддержку устаревших и нестандартных директив: noindex в robots.txt, nofollow в robots.txt, crawl-delay в robots.txt (для Googlebot — Яндекс продолжает поддерживать).
- Сентябрь 2022. Robots Exclusion Protocol официально утверждён как RFC 9309 IETF — впервые за 28 лет существования протокола.
До 2022 года протокол существовал как «джентльменское соглашение» без формального стандарта IETF, хотя на практике им пользовался весь интернет. RFC 9309 закрепил протокол как официальный стандарт.
Синтаксис robots.txt
Базовый синтаксис robots.txt прост — каждая строка содержит одну инструкцию в формате «директива: значение». Строки группируются в блоки, каждый блок начинается с User-agent:
# Комментарий (игнорируется роботами)
User-agent: Googlebot
Disallow: /admin/
Disallow: /search/
Allow: /admin/public/
User-agent: YandexBot
Disallow: /admin/
Crawl-delay: 2
User-agent: *
Disallow: /tmp/
Sitemap: https://cropas.by/sitemap.xmlГлавные правила синтаксиса:
- Все строки чувствительны к регистру для значений путей (например, /Admin/ и /admin/ — разные пути).
- Названия директив (User-agent, Disallow) регистронезависимы.
- Один пробел после двоеточия — стандарт, но не строгое требование.
- Комментарии начинаются с # и продолжаются до конца строки.
- Пустые строки разделяют блоки правил для разных User-agent.
- Кодировка файла — UTF-8 без BOM.
- Размер файла — до 500 КБ (Google игнорирует всё, что после этого размера).
Основные директивы
| Директива | Назначение | Поддержка |
|---|---|---|
| User-agent | Указывает, для какого робота применяются следующие правила. Звёздочка * означает «для всех роботов». | Все поисковики |
| Disallow | Запрещает сканирование указанного пути. Disallow: / запрещает весь сайт. | Все поисковики |
| Allow | Разрешает сканирование пути, который попадает под запрет Disallow. Используется для исключений из общих правил. | Все поисковики |
| Sitemap | Указывает URL карты сайта (sitemap.xml). Можно указывать несколько Sitemap-директив. | Все поисковики |
| Crawl-delay | Задержка между запросами робота в секундах. Защищает сервер от перегрузки. | Яндекс, Bing. Google игнорирует с 2019 года. |
| Clean-param | Сообщает Яндексу о параметрах URL, которые нужно игнорировать (UTM-метки, сессионные ID). | Только Яндекс |
| Host (устаревшая) | Указывала главное зеркало сайта для Яндекса. Отменена в марте 2018, заменена на 301-редирект. | Устарело |
| noindex (устаревшая) | Запрет индексации через robots.txt. Никогда не была официальным стандартом. | Google прекратил с 2019. Использовать meta robots. |
Wildcards (специальные символы), поддерживаемые Google, Яндексом и Bing:
- * (звёздочка) — любая последовательность символов. Disallow: /*.pdf$ блокирует все PDF-файлы.
- $ (знак доллара) — конец URL. Disallow: /*.pdf$ блокирует только URL, заканчивающиеся на .pdf.
Примеры robots.txt для разных CMS
WordPress (стандартный):
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /?s=
Disallow: /search/
Disallow: /*?
Sitemap: https://example.by/sitemap.xml1С-Битрикс (магазин):
User-agent: *
Disallow: /bitrix/
Disallow: /personal/
Disallow: /auth/
Disallow: /search/
Disallow: /basket/
Disallow: /catalog/?filter=
Disallow: /*?PAGEN_
Allow: /bitrix/components/
User-agent: Yandex
Disallow: /bitrix/
Clean-param: utm_source&utm_medium&utm_campaign
Sitemap: https://example.by/sitemap.xmlJoomla:
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/
Sitemap: https://example.by/sitemap.xmlrobots.txt vs noindex — в чём разница
Самая частая путаница в SEO — между robots.txt и meta robots noindex. Это разные инструменты с разными задачами:
| Параметр | robots.txt | meta robots noindex |
|---|---|---|
| Уровень применения | Управление сканированием на уровне всего сайта | Управление индексацией конкретной страницы |
| Где задаётся | В файле /robots.txt | В meta-теге в head страницы или через X-Robots-Tag HTTP-заголовок |
| Запрещает что | Сканирование (бот не загружает страницу) | Индексацию (бот загружает страницу, но не добавляет в индекс) |
| Результат | Страница может попасть в индекс через внешние ссылки без снапшота | Страница не показывается в результатах поиска |
| Когда использовать | Для технических разделов, которые не нужно даже скачивать | Для страниц, которые нужно скрыть из выдачи, но оставить доступными для роботов |
Важный нюанс: страница, заблокированная только в robots.txt, может всё равно появиться в индексе Google — с пустым сниппетом и пометкой «информация о странице недоступна». Это происходит, когда на страницу есть внешние ссылки: Google знает о её существовании, но не может прочитать содержимое. Чтобы полностью скрыть страницу из индекса, нужно использовать meta robots noindex (не блокируя в robots.txt — иначе бот не сможет прочитать тег).
Типичные ошибки
| Ошибка | Последствие |
|---|---|
| Случайный Disallow: / в продакшене | Полное удаление сайта из индекса через 1–3 недели |
| Блокировка CSS и JS-файлов | Google не может рендерить страницу, считает её сломанной, понижение в выдаче |
| Использование noindex в robots.txt | С 2019 года игнорируется Google, не работает |
| Блокировка страниц для скрытия из выдачи | Не работает — страницы могут попасть в индекс через внешние ссылки |
| Регистрозависимые ошибки в путях | Disallow: /Admin/ не блокирует /admin/ |
| Отсутствие Sitemap-директивы | Поисковик может не найти карту сайта без явного указания |
| Дублирование robots.txt на поддоменах | Каждый поддомен должен иметь свой собственный robots.txt |
| Использование Allow перед Disallow | Порядок не имеет значения для Google, но Яндекс может интерпретировать иначе |
| Слишком сложные регулярные выражения | Боты могут не понять — лучше использовать простой синтаксис |
| Файл robots.txt больше 500 КБ | Google игнорирует содержимое после 500 КБ — все правила после этой границы не работают |
Как проверить robots.txt
Инструменты для проверки корректности robots.txt:
- Google Search Console → Crawl → robots.txt Tester. Главный инструмент проверки. Показывает, как Googlebot интерпретирует файл, позволяет тестировать конкретные URL на блокировку.
- Яндекс.Вебмастер → Инструменты → Анализ robots.txt. Аналогичный инструмент для Яндекса с собственной интерпретацией директив (включая Clean-param).
- Прямой просмотр. Открыть в браузере имя_домена/robots.txt — файл должен показываться как обычный текст без HTML-форматирования.
- Screaming Frog SEO Spider. Десктопное приложение для технического аудита — показывает, какие URL заблокированы текущим robots.txt.
- Онлайн-валидаторы. Бесплатные сервисы вроде technicalseo.com/tools/robots-txt/, ryte.com — проверка синтаксиса и тестирование URL.
Регулярная проверка robots.txt — обязательная часть SEO-аудита. Случайные изменения файла часто становятся причиной резкого падения трафика, которое сложно диагностировать без целенаправленной проверки.
Часто задаваемые вопросы
Обязателен ли robots.txt на сайте?
Технически — нет. Если файла нет, поисковики считают, что им разрешено сканировать всё. На простом небольшом сайте без админ-панели и поиска можно обойтись без robots.txt. Но для всех крупных сайтов файл практически обязателен: нужно блокировать административные разделы, технические URL, фильтры каталога, дубли с параметрами. Стандартная рекомендация — создавать robots.txt на любом коммерческом сайте, даже если он минимальный (5–10 строк).
Как полностью скрыть страницу из поиска?
Через meta robots noindex (не через robots.txt). Добавить в head страницы тег <meta name=”robots” content=”noindex”>. После этого поисковик при следующем сканировании увидит инструкцию и удалит страницу из индекса. Важно: страница должна оставаться доступной для роботов (не блокировать в robots.txt), иначе бот не прочитает meta-тег и страница может остаться в индексе через внешние ссылки.
Что такое Clean-param и зачем он нужен?
Clean-param — директива, специфичная для Яндекса. Сообщает поисковику, какие GET-параметры URL не влияют на содержание страницы и должны игнорироваться при индексации. Главный сценарий — UTM-метки и сессионные идентификаторы: cropas.by/?utm_source=google и cropas.by/?utm_source=facebook содержат одинаковый контент, но без Clean-param Яндекс может счесть их разными страницами и создать дубли. Google использует собственный механизм работы с параметрами и не учитывает Clean-param.
Можно ли использовать regex в robots.txt?
Только ограниченный набор wildcards: * (любая последовательность символов) и $ (конец URL). Полноценные регулярные выражения не поддерживаются — это сделано намеренно для надёжности работы парсеров. Например, Disallow: /*?utm_* блокирует все URL с параметром utm_ в любой позиции. Disallow: /*.pdf$ блокирует все URL, заканчивающиеся на .pdf.
Что произойдёт, если случайно заблокировать весь сайт через Disallow: /?
Поисковики постепенно удалят страницы из индекса. Скорость зависит от поисковика и размера сайта: Google обычно начинает удалять через 24–72 часа, полное исчезновение из индекса — через 1–4 недели. Яндекс реагирует медленнее, удаление может занять 2–8 недель. Восстановление после исправления robots.txt также занимает время — переиндексация всего сайта может потребовать 2–12 недель. Это одна из самых критичных ошибок в SEO.
Можно ли блокировать конкретного бота?
Да, через указание имени бота в директиве User-agent. Например, чтобы запретить парсеру AhrefsBot сканировать сайт: User-agent: AhrefsBot / Disallow: /. Это работает только для добропорядочных ботов — мошеннические парсеры и боты-скраперы игнорируют robots.txt. Главные User-agent: Googlebot (Google), YandexBot (Яндекс), Bingbot (Bing), Baiduspider (Baidu), AhrefsBot (Ahrefs), SemrushBot (Semrush), MJ12bot (Majestic).
Где должен лежать файл robots.txt?
Строго в корне домена: имя_домена/robots.txt. Никакие другие пути не работают — robots.txt в подпапке (например, имя_домена/blog/robots.txt) полностью игнорируется поисковиками. На поддоменах нужен отдельный robots.txt: блог.example.by/robots.txt и магазин.example.by/robots.txt — это два разных файла с собственными правилами для каждого поддомена.




