Robots.txt
Robots.txt — это текстовый файл в формате plain text, размещаемый в корневой директории веб-сайта, который содержит инструкции для автоматизированных программ (веб-роботов, поисковых краулеров) о том, какие разделы или страницы сайта разрешено или запрещено сканировать и индексировать. Файл является частью протокола исключений для роботов (Robots Exclusion Protocol, REP) и не является обязательным стандартом, а представляет собой добровольное соглашение между владельцами сайтов и разработчиками поисковых систем.
История
Протокол исключений для роботов был впервые предложен в 1994 году Мартином Костером (Martin Koster), сотрудником компании Nexor, в ответ на растущую нагрузку на веб-серверы из-за активности первых поисковых роботов. Костер опубликовал черновик стандарта в списке рассылки «www-talk», который был принят сообществом без формальной ратификации. Первоначально файл назывался robots.txt и размещался в корне сайта по адресу http://example.com/robots.txt`.
В 1996 году Костер опубликовал расширенную версию протокола, включающую директиву Crawl-delay для управления частотой запросов. В 2019 году протокол был формализован как интернет-стандарт RFC 9309 (документ «Robots Exclusion Protocol»), опубликованный IETF. Однако большинство поисковых систем продолжают использовать неофициальные расширения, такие как Allow и Sitemap.
Структура и синтаксис
Файл robots.txt состоит из набора записей, каждая из которых начинается с директивы. Основные директивы:
- User-agent: указывает, к какому роботу применяются последующие правила. Знак
*означает всех роботов. - Disallow: запрещает доступ к указанному пути. Путь может быть абсолютным (например,
/private/) или корневым (/— запрет на весь сайт). - Allow: разрешает доступ к указанному пути, даже если он подпадает под запрет. Не является частью оригинального стандарта, но поддерживается большинством современных роботов.
- Sitemap: указывает расположение карты сайта (XML-файла). Не является частью REP, но широко используется.
- Crawl-delay: задаёт минимальный интервал в секундах между запросами робота (поддерживается не всеми поисковыми системами).
Пример базового файла: ``` User-agent: * Disallow: /admin/ Disallow: /tmp/ Allow: /public/
Sitemap: https://example.com/sitemap.xml ```
Правила обрабатываются сверху вниз: для каждого робота применяется первое совпадающее правило. Пустые строки и строки, начинающиеся с #, считаются комментариями.
Классификация роботов
Разные поисковые системы и сервисы используют различные идентификаторы (User-agent). Наиболее распространённые:
| User-agent | Поисковая система / сервис |
|---|---|
| Googlebot | |
| YandexBot | Яндекс |
| Bingbot | Microsoft Bing |
| Baiduspider | Baidu |
| DuckDuckBot | DuckDuckGo |
| Twitterbot | Twitter (X) |
| Slurp | Yahoo! |
Некоторые роботы могут игнорировать файл robots.txt (например, вредоносные программы или архиваторы, такие как HTTrack). Для них протокол не является обязательным.
Применение
Основные цели использования robots.txt:
- Ограничение индексации: запрет на сканирование служебных разделов (админ-панели, временных файлов, страниц с дублирующимся контентом) для экономии краулингового бюджета и предотвращения попадания нежелательных страниц в поисковую выдачу.
- Управление нагрузкой: снижение частоты запросов роботов к серверу с помощью
Crawl-delay. - Указание карты сайта: помощь поисковым системам в обнаружении всех важных страниц.
- Блокировка нежелательных роботов: например, запрет на сканирование для роботов, не относящихся к поисковым системам.
Однако robots.txt не является средством безопасности: файл доступен для чтения всем, и злоумышленник может узнать о существовании скрытых разделов. Для защиты конфиденциальных данных следует использовать аутентификацию (пароль, IP-фильтрацию) или другие методы.
Ограничения и критика
Несмотря на широкое распространение, протокол имеет ряд недостатков:
- Добровольность: роботы могут игнорировать файл. Например, некоторые вредоносные боты специально обходят запреты.
- Отсутствие обратной связи: файл не уведомляет владельца сайта о том, что робот его прочитал.
- Сложность синтаксиса: неправильно составленные правила могут привести к нежелательной индексации или, наоборот, к полной блокировке сайта.
- Ограниченность: протокол не позволяет задавать правила для отдельных файлов по типу контента (например, только изображения) или по параметрам URL (например, только страницы с определённым GET-параметром).
Критики отмечают, что robots.txt устарел для современных веб-приложений, использующих JavaScript и динамические URL. В таких случаях более эффективными являются мета-теги noindex в HTML или заголовки X-Robots-Tag в HTTP-ответах.
Альтернативы и дополнения
Для более точного управления индексацией применяются:
- Мета-теги robots:
<meta (организация признана экстремистской, деятельность запрещена в РФ) name="robots" content="noindex, nofollow">— запрет на индексацию и переход по ссылкам на конкретной странице. - HTTP-заголовок X-Robots-Tag: аналогичен мета-тегу, но может применяться к не-HTML файлам (PDF, изображения).
- Карта сайта (sitemap.xml): XML-файл со списком страниц для индексации, часто используется вместе с
robots.txt. - Файл
.htaccess(для Apache): может блокировать доступ к определённым директориям для всех посетителей, включая роботов.
В России и странах СНГ robots.txt активно используется владельцами сайтов для оптимизации взаимодействия с поисковыми системами, особенно с Яндексом и Google. Однако из-за технических ограничений протокола многие веб-мастера предпочитают комбинировать его с другими методами.
Примеры использования
- Запрет на весь сайт:
User-agent: * Disallow: /— используется временно, например, при разработке сайта. - Разрешение только одному роботу:
User-agent: Googlebot Allow: / Disallow: /tmp/— другие роботы не получат доступа. - Указание нескольких карт сайта:
Sitemap: https://example.com/sitemap1.xml Sitemap: https://example.com/sitemap2.xml`
Источники
- RFC 9309 — Robots Exclusion Protocol (IETF, 2022)
- Martin Koster, «A Standard for Robot Exclusion» (1994)
- Документация Google: «Управление сканированием и индексированием» (Google Search Central)
- Документация Яндекса: «Как настроить robots.txt» (Яндекс.Вебмастер)
- Статья «Robots.txt: история, синтаксис, ограничения» (Habr, 2019)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →