Открыть сервис

Файл robots.txt

robots.txt — это текстовый файл, размещаемый на веб-сервере, который содержит инструкции для программ автоматического обхода сайтов (веб-роботов, поисковых краулеров) относительно того, какие разделы или страницы сайта не следует сканировать и индексировать. Файл является частью протокола исключения роботов (Robots Exclusion Protocol, REP) — неформального стандарта, не входящего в спецификации W3C, но поддерживаемого большинством современных поисковых систем.

История и происхождение

Протокол исключения роботов был впервые предложен в 1994 году голландским разработчиком Мартом Кейстером (Martijn Koster) в ответ на растущую проблему чрезмерной нагрузки на серверы со стороны автоматических программ. Первоначально спецификация была опубликована в виде неформального документа, который впоследствии стал де-факто стандартом. В 1996 году Кейстер опубликовал расширенную версию, а в 2019 году консорциум Google, Microsoft, Yandex и других компаний предложил проект стандарта RFC 9309, который был принят в 2022 году, формализовав REP.

Назначение и принцип работы

Основная цель файла robots.txt — управление нагрузкой на сервер и предотвращение индексации нежелательного или дублирующегося контента. Файл не является средством безопасности и не скрывает страницы от пользователей: злоумышленник может легко проигнорировать его директивы. Он лишь даёт рекомендации добросовестным роботам.

Принцип работы:

  1. Веб-робот (например, Googlebot, Яндекс.Бот) при обращении к сайту сначала запрашивает файл robots.txt, расположенный в корневом каталоге домена (например, https://example.com/robots.txt`).
  2. Если файл найден, робот анализирует его содержимое и выполняет указанные директивы.
  3. Если файл отсутствует, робот считает, что сканирование всего сайта разрешено.
  4. Если сервер возвращает ошибку (например, 404), большинство роботов также считают, что сканирование разрешено.

Структура и синтаксис

Файл robots.txt представляет собой обычный текстовый файл в кодировке UTF-8 (рекомендуется). Каждая строка содержит директиву. Пустые строки и строки, начинающиеся с символа # (комментарии), игнорируются.

Основные директивы

  • User-agent: Указывает, к какому роботу применяются последующие правила. Значение * означает «все роботы». Каждый блок правил начинается с этой директивы.
  • Disallow: Запрещает сканирование указанного пути. Путь может быть абсолютным (/admin/) или пустым (Disallow: — разрешает всё).
  • Allow: Разрешает сканирование указанного пути (используется для переопределения более общего запрета). Поддерживается не всеми роботами, но стандартна для Googlebot и Яндекс.Бота.
  • Sitemap: Указывает путь к карте сайта (XML-файлу со списком страниц). Может быть указана несколько раз.
  • Crawl-delay: Задаёт минимальную задержку (в секундах) между запросами робота. Поддерживается не всеми поисковыми системами.

Пример файла

```

Комментарий: запрещаем всем роботам сканировать админку

User-agent: * Disallow: /admin/

Разрешаем Googlebot сканировать всё, кроме PDF-файлов

User-agent: Googlebot Allow: / Disallow: /*.pdf$

Указываем карту сайта

Sitemap: https://example.com/sitemap.xml ```

Классификация и особенности работы с разными роботами

Разные поисковые системы используют собственные идентификаторы (User-agent). Наиболее распространённые:

РоботUser-agentОсобенности
GooglebotGooglebotПоддерживает Allow и регулярные выражения (через $ и *)
Яндекс.БотYandexBotПоддерживает Allow, Crawl-delay, не поддерживает регулярные выражения
BingbotbingbotПоддерживает Allow, Crawl-delay
BaiduspiderBaiduspiderКитайский робот, часто игнорирует директивы
Mail.RuMail.RuПоддерживает Crawl-delay

Важно: если для одного робота указано несколько правил, используется наиболее специфичное совпадение. Если ни одно правило не подходит, робот следует директиве User-agent: *.

Применение и практические рекомендации

Когда использовать robots.txt

  • Для запрета индексации служебных разделов (административные панели, страницы входа, корзины).
  • Для предотвращения индексации дублирующегося контента (например, версии страниц для печати).
  • Для снижения нагрузки на сервер со стороны агрессивных роботов.
  • Для указания карты сайта.

Чего не следует делать

  • Пытаться скрыть конфиденциальные данные — файл общедоступен, и злоумышленник может его прочитать.
  • Использовать Disallow: / для всего сайта — это полностью блокирует индексацию, что может быть нежелательно.
  • Размещать файл в подкаталоге — он должен находиться только в корне домена.
  • Игнорировать кэширование — некоторые роботы могут кэшировать старую версию файла.

Ограничения

  • Файл не гарантирует, что робот выполнит директивы — некоторые недобросовестные программы (например, парсеры контента, сборщики email-адресов) игнорируют его.
  • Не все роботы поддерживают Allow и Crawl-delay.
  • Файл не работает для страниц, доступных по HTTPS, если он размещён на HTTP (и наоборот).
  • Максимальный размер файла, обрабатываемого большинством роботов, составляет 500 КБ (Google) или 32 КБ (Yandex). Большие файлы могут быть проигнорированы частично.

Критика и альтернативы

Основная критика robots.txt связана с его добровольным характером и отсутствием механизмов принуждения. Многие вредоносные программы и боты для парсинга данных игнорируют файл. Кроме того, стандарт не предусматривает гибкого управления доступом на уровне отдельных пользователей или IP-адресов.

В качестве альтернатив или дополнений используются:

  • Мета-теги robots (<meta name="robots" content="noindex, nofollow">) — позволяют запретить индексацию конкретной страницы.
  • HTTP-заголовки X-Robots-Tag — дают возможность управлять индексацией для не-HTML-файлов (PDF, изображения).
  • Файлы .htaccess (для Apache) или конфигурация Nginx — позволяют блокировать доступ по IP или User-agent на уровне сервера.
  • Механизмы аутентификации — защита разделов паролем.

Интересные факты

  • Крупнейшие поисковые системы, такие как Google и Яндекс, публикуют собственные расширения протокола, которые не всегда совместимы друг с другом.
  • Некоторые сайты используют robots.txt для указания не только запретов, но и разрешений, что может приводить к путанице.
  • В 2017 году исследователи обнаружили, что около 30% сайтов в интернете имеют ошибки в файле robots.txt, что может приводить к нежелательной индексации.
  • Файл robots.txt не является обязательным — его отсутствие не нарушает никаких стандартов, но может снизить эффективность SEO.

Источники

  1. Koster, M. (1994). A Standard for Robot Exclusion.
  2. RFC 9309 (2022). Robots Exclusion Protocol.
  3. Google Developers. Introduction to robots.txt.
  4. Яндекс.Помощь. Настройка robots.txt.
  5. W3C. Robots Exclusion Protocol (архив).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →