Файл robots txt

06 июня 2021 года, 20:30

Файл robots txt

Файл robots.txt является файлом-стандартом исключений и правил для поисковых роботов. Данный стандарт принят консорциумом всемирной паутины (World Wide Web Consortium — W3C). Следование стандарту является полностью добровольным, однако некоторые поисковые системы указывают на проблему с валидацией при отсутствии файла robots. Таким образом, файл следует размещать в корне сайта, даже при отсутствии правил.

Файл robots.txt — это обычный текстовый файл с инструкциями индексации для роботов (др. названия поисковые пауки/агенты/боты) поисковых систем. Содержимое файла представлено одной и более групп директив, с правилами для поисковых машин. Все правила в роботе считываются сверху вниз по порядку. Обычно файл робота сохраняется в кодировке UTF-8 (которая включает коды символов ASCII). Другие наборы символов использовать нельзя, т.к. при валидации появятся ошибки. Ошибки проверки валидности, в свою очередь, могут привести к игнорированию дальнейших инструкций.

Для чего нужен файл robots.txt

Файл роботс содержит правила-исключения для поисковых роботов. Правила позволяют решать основные задачи для корректной индексации сайта. Конкретные задачи, которые помогает решать файл robots.txt:

  1. Закрытие сайта/страниц/файлов, 
  2. Указание служебной информации, 
  3. Снижение нагрузки на сервер.

Закрытие сайта/страниц/файлов

Для того, чтобы разобраться в процессе закрытия данных, выдвинем ряд реальных ситуаций.

Закрытие проекта на время технических работ, когда существует 2 версии сайта. Первая версия - продуктовая, т.е. основная, которую видят пользователи. Второй сайт - тестовая версия. Тестовый проект, чаще всего содержит так называемые сиды, то есть тестовые данные. При этом обе версии по наполнению контентом могут совпадать. А так как поисковые роботы обновляют выдачу в автоматическом режиме, может возникать ситуация, когда в поиске будет появляться тестовый сайт, с тестовыми данными, склеивать основой и тестовый домен. Что может перемешивать выдачу, позиции и трафик.

Другая ситуация, когда следует закрывать разделы может возникать из-за наличия страниц с utm метками/get-параметрами/amp-страницами/техническими/мусорными/бесполезными страницами. Для примера возьмем проект с 1 млн загруженных страниц, из которых 100 тысяч действительно полезны. Каждые 3-4 дня поисковик индексирует 20-30 тысяч страниц. Соответственно, чем больше бесполезных url-адресов "скармливается" поисковику, тем дольше будет обновлять выдача.

Указание служебной информации

До сих пор, на некоторых веб-проектах можно наблюдать директиву host, которая ранее объясняла поисковому роботу адрес основной версии сайта. Позднее данная директива была убрана и стала неактуальной по сей день. Сегодня к служебной информации можно отнести директиву sitemap, которая позволяет помочь поисковому агенту быстрее определить адрес карты.

Снижение нагрузки на сервер

При частом обновлении контента, поисковые роботы перегружают сервер. Подобная проблема встречается достаточно редко, однако решение заключается в регулировании задержки между запросами от робота к серверу.

Проверка файла роботс

Для проверки файлов робота у поисковых систем яндекс и гугл есть собственные валидаторы:

  1. Проверка robots Яндекс
  2. Проверка robots Google

Синтаксис

Общий синтаксис для записей файла роботс:

#комментарий
[Имя директивы]:<необязательный пробел>[выражение]

Правила для файла и синтаксиса

Правила для файла

  1. На сайте может быть только 1 такой файл
  2. Файл должен располагаться в корне сайта
  3. Название файла работа пишется прописными (маленькими буквами): robots.txt (Robots.txt, ROBOTS.txt неверные названия)
  4. Размер файла robots не должен превышать 500 КБ (500 килобайт)
  5. Кодировка файла должна быть UTF-8 (которая включает коды символов ASCII), другие наборы символов использовать нельзя
  6. Правила указанные в файле robots действительны только для того хоста, на котором расположен данный файл
  7. Файл robots должен быть доступен (код ответа сервера при обращении должен быть 200 ОК)

Правила для синтаксиса

  1. Каждая новая директива должна начинаться с новой строки
  2. Перед директивой не должно быть пробелов/спецсимволов
  3. Для комментариев используется спецсимвол: #
  4. Каждая новая строка с комментарием должна начинаться со специсимвола: #
  5. Файл robots без содержимого разрешает индексацию всего сайта
  6. Все данные для одной директивы должны размещаться на одной строке
  7. Пустая строка завершает блок инструкций для текущего User-Agent
  8. При отсутсвии пустой строки, разделяющей User-Agent'ов, учитываться будет только первый
  9. При указании блоков правил для User-Agent: * и User-Agent: YandexBot, будет использован User-Agent: YandexBot 
  10. Все директивы проверяются сверху вниз по порядку

Приоритеты

  1. Проверка данных файла robots.txt
  2. Проверка метаданных на страницах <meta name="robots" content="">

Данные для роботов могут отменяться последним изменением, а так как robots.txt проверяется первым, то если в файле robots.txt указано:

#для всех роботов закрыть весь сайт
User-Agent: *
Disallow: /

но при этом на всех страницах сайта будет указано:

<meta name="robots" content="index, follow"/>

тогда сайт может быть проиндексирован.

Директивы robots.txt

Директивы определяют задачи, которые требуется решать с помощью файла robots.txt.

Директива Функция
User-Agent Указание имени поискового робота
Allow Открыть для индексации
Disallow Закрыть для индексации
Sitemap Указание адреса для карты сайта (sitemap.xml)
Clean-param Указание роботу, что страницы имеют параметры: GET, utm (ТОЛЬКО ДЛЯ ЯНДЕКС)
Crawl-delay Указание в секундах скорость загрузки одной страницы до начала загрузки следующей
Host Указывает основную версию сайта (может встречаться, однако сегодня неактуально)

Директива User-Agent

Директива User-Agent служит указателем правил для конкретного поискового агента. Примеры использования директивы User-Agent для различных поисковых роботов:

#Для всех поисковых роботов
User-Agent: * 

#Основной робот Яндекса
User-Agent: YandexBot

#Основной робот Google
User-Agent: Googlebot

#Основной робот Google новостей
User-agent: Googlebot-News

Поисковых агентов существует большое множество. Некоторые поисковые роботы могут игнорировать инструкции, которые указаны в файле роботс. Список имен ботов для поисковых систем Yandex и Google, которые не игнорируют правила файла robots.txt позволит производить более тонкую настройку правил индексации.

Директива Allow

Директива Allow задает правила для открытия страниц и(или) их содержимого для индексации. Примеры использования директивы Allow:

#для всех роботов открыть весь сайт
User-Agent: *
Allow: /

#для робота Яндекс открыть страницу catalog
User-Agent: YandexBot
Allow: /catalog

#для всех роботов открыть страницу каталог и все вложенные адреса
User-Agent: YandexBot
Allow: /catalog/

Директива Disallow

Одна из самых частоиспользуемых директив, которая запрещает индексацию поисковыми роботами.

#для всех роботов открыть весь сайт
User-Agent: *
Allow: /
#запретить индексацию для основного бота Яндекс
User-Agent: YandexBot
Disallow: /

Зачем закрывать определенного бота

Закрытие определенного бота может быть использовано в различных ситуациях. Рассмотрим пример на гипотетическом проекте с региональной привязкой к поддоменам.

Дано, основной сайт с доменным адресом:

seobutstore.ru

Который имеет поддомены со соответствующей привязкой городов:

msk.seobutstore.ru
spb.seobutstore.ru
ekb.seobutstore.ru
...

Для Яндекса, в вебмастере можно указать каждому поддомену свой город, и добавить возможность индексации (для каждого поддомена свой файл robots.txt):

User-Agent: YandexBot
Allow: /

Для Google подобное решение может оказаться не всегда понятным, что может приводить к выбрасыванию поддоменов из выдачи. Это связано с городами России, которые Гугл не всегда корректно разбирает. Поэтому для каждого поддомена и Googlebot (основного индексирующего бота Google), можно добавить запись:

User-Agent: Googlebot
Disallow: / 

В результате для каждого поддомена (для каждого свой файл робота) получится подобный robots.txt:

User-Agent: *
Allow: /

User-Agent: YandexBot
Allow: /

User-Agent: Googlebot
Disallow: /

При этом, для основного домена запись robots.txt будет выглядеть так:

User-Agent: *
Allow: /

User-Agent: YandexBot
Disallow: /

User-Agent: Googlebot
Allow: /

Таким образом, поисковик Яндекс будет индексировать только поддомены, а Google только основной домен и не будет создавать проблем.

Директива Sitemap

Директива sitemap необходима для указания карты сайта и используется в таком формате:

#Пример с одной картой
User-Agent: *
Allow: /
Sitemap: https://seobut.com/sitemap.xml

Обычно для современных проектов создаются составные карты, для которых достаточно указать основную. Но для понимания допустим вариант указания нескольких карт, например:

#пример указания нескольких карт
User-Agent: *
Allow: /
Sitemap: https://seobut.com/sitemap.xml
Sitemap: https://seobut.com/stitemap-blog.xml

Для показа контента сайта в ленте Google news генерируется и указывается отдельная карта сайта со своими правилами, тогда файл robots может выглядеть так:

#обычная карта
User-Agent: *
Sitemap: https://seobut.com/sitemap.xml

#карта для google новостей
User-Agent: Googlebot-News
Allow: /
Sitemap: https://seobut.com/sitemap-news.xml

Директива Clean-param

Директива Clean-param необходима для снижения нагрузки на сайт, ускорения индексации полезного контента с помощью исключения страниц-дублей с одинаковым и(или) бесполезным контетом. Чаще всего исключаемые страницы на сайте возникают из-за наличия: страниц результатов поиска,  utm меток, страниц с GET-параметрами. Данная директива работает только ботами Яндекс, для Google используются канонические адреса и(или) директива Disallow.

Синтаксис директивы Clean-param:

Clean-param:<необязательный пробел>[p][&p1&p2&pN]<пробел>[path]

где

[p] - неизменный игнорируемый параметр,
[&p1&p2&pN] - дополнительные игнорируемые параметры,
[path] - адрес раздела, который содержит параметры,


 

Метки публикации

Понравилась публикация?

Подпишитесь и получайте лучшие публикации на темы поискового продвижения и маркетинга