Директивы robots txt – правила обработки директив, какие директивы не используются в Google и зачем нужны Disallow и Crawl-delay — Пиксель Тулс

правила составления и основные директивы

Эффективная оптимизация сайта неизбежно включает в себя создание и правильную настройку файла robots.txt. Создать этот файл можно в обычном «блокноте», а для того, чтобы он начал использоваться, его нужно поместить в корневую папку сайта (туда же, где расположен файл index.php). Этот файл содержит в себе перечень инструкций, или директив, которыми будут пользоваться поисковые роботы. Это не значит, что в случае отсутствия файла роботс они не станут индексировать ваш сайт – это значит, что при наличии такого файла они будут делать это гораздо более эффективно и быстро.

Это важно по многим причинам. Во-первых, задав роботам определенные правила взаимодействия с вашим порталом, вы уменьшите нагрузку на свой сервер, создаваемую из-за их работы. Во-вторых, вы сможете задать перечень файлов, страниц и разделов, к которым роботы не будут обращаться в принципе. И, наконец, в-третьих, вы сможете оптимизировать индексацию страниц вашего сайта.

Основные директивы файла robots.txt

Существует несколько основных директив, которые должен содержать файл роботс, и от которых непосредственно зависит, каким образом поисковые системы и роботы будут взаимодействовать с вашим сайтом:

  • User-agent. Эта директива говорит о том, инструкции для каких роботов будут следовать за ней. Это может быть робот Mail.Ru, StackRambler, Bingbot, любой из многочисленных роботов Яндекса(YandexBot, YandexDirect, YandexMetrika, YandexImages, YandexNews и так далее), любой из многочисленных роботов Google (Googlebot, Mediapartners, AdsBot-Google, Googlebot-Image, GoogleBot-Video и так далее). Юзер агент – ключевая директива, без которой все, что следует дальше, не будет иметь какого-либо смысла.

  • Disallow. Главное назначение этой директивы заключается в том, чтобы закрыть определенные файлы, страницы или даже разделы сайта от индексирования поисковыми роботами. Это самая востребованная директива, только из-за возможности пользоваться которой многие вебмастера в принципе заводят файл robots.txt. При указании адресов файлов, страниц, групп страниц и разделов, которые не должны индексироваться, можно использовать дополнительные символы. Так, «*» предполагает любое количество символов (включая нулевое) и по умолчанию подразумевается в конце каждой строки. А знак «$» говорит о том, что предшествующий символ был последним.

  • Allow. Это гораздо менее популярная директива, которая формально разрешает роботу заниматься индексацией того или иного раздела. Не востребована она потому, что поисковики в принципе имеют свойство индексировать все данные интернет-ресурса, которые теоретически могут быть полезны пользователям (за исключением тех, что прописаны под директивой Disallow).

  • Host. Такая директива позволяет задать адрес главного зеркала сайта. Отличие, как правило, заключается в наличии или отсутствии трех букв «w». Если ваш портал еще не индексировался поисковыми системами, то вы можете сами задать его зеркало. В противном случае введите адрес своего сайта, например, в Яндексе. И если в первом результате выдачи не будет «www», то это будет означать, что в главном зеркале эти три буквы есть, и наоборот. Обратите внимание на то, что эту директиву поддерживают только роботы Mail.Ru и Яндекса, а вводить ее необходимо исключительно однократно.

  • Sitemap. Эта директива должна подсказывать роботам путь к одноименному XML-файлу, в котором содержится карта индексируемых страниц, информация о датах их изменения и приоритете при просмотре и индексации.

  • Crawl-delay. С помощью такой директивы можно назначить временной интервал между теми моментами, когда поисковый робот заканчивает скачивание предыдущей страницы сайта и начинает загрузку следующей. Измеряется этот временной интервал в секундах. Директива Crawl delay применяется для того, чтобы сократить нагрузку на сайт со стороны поисковых роботов и избежать неполадок в работе сервера. Не рекомендуется сразу начинать с больших значений (например, с Crawl-delay 2), лучше вводить задержки продолжительностью в десятые доли секунды и, при необходимости, постепенно их удлинять. При этом более продолжительные временные интервалы можно использовать для менее важных роботов (Yahoo, Bing, Mail.Ru), а для Яндекса лучше делать их минимальными. Роботы Google игнорируют эту директиву.

  • Clean param. Это директива, способная существенно рационализировать прохождение поискового робота по сайту. С помощью Clean param вы можете описать динамические составляющие URL, не оказывающие никакого влияния на содержимое страницы. Это идентификаторы пользователей, сессий, индивидуальные префиксы и другие части подобного плана. Указание их в Clean param даст поисковому роботу понять, что он уже загружал этот материал (только с другими динамическими элементами, не меняющими содержание), и скачивать его повторно он не будет. Это очень полезная директива, которая, тем не менее, используется владельцами сайтов не так часто, как стоило бы. Поэтому если вы хотите сделать взаимодействие своего портала с роботами как можно более эффективным – не забудьте указать в файле роботс Clean param.

Какие бы директивы вы ни прописывали, будь то Crawl-Delay, Clean param, Disallow или что-либо еще, крайне желательно снабжать их комментариями (под символом «#», текст после которого робот не читает). В противном случае даже вы сами через полгода можете не вспомнить, почему, например, закрыли от индексации ту или иную страницу, а уж если за дело возьмется другой человек – то ему и подавно будет сложно в этом разобраться. Тем временем, спустя какое-то время в файле, вполне возможно, понадобится что-то изменить, поэтому лучше бы сохранить возможность беспроблемно в нем ориентироваться.

Ключевые правила настройки файла robots.txt

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

  • Все страницы, связанные с администрированием сайта, личными кабинетами, процедурами регистрации-авторизации, оформлением заказов, а также технические дубли страниц и служебные разделы должны быть закрыты от индексирования. Это касается всех поисковых систем, будь то User-agent Yandex bot, или, например, User-agent Mail.Ru.

  • Имеет смысл также закрыть от индексации json- и ajax-скрипты, папку cgi, страницы с параметрами сессий и UTM-меток, сортировки, фильтров, сравнения.

  • Чтобы убедиться, что вы сделали подходящие настройки robots.txt, можно воспользоваться соответствующими инструментами систем Яндекс и Google.

  • Спустя полмесяца после добавления новых страниц на сайт и включения их в директиву Disallow имеет смысл проверить через поисковые системы, не были ли они проиндексированы. Если да – то потребуется пересмотреть и откорректировать настройки.

Файл robots.txt дает возможность оптимизировать работу сайта с поисковыми роботами, которая доступна даже при отсутствии глубоких узкоспециализированных знаний. Главное – правильно настроить этот файл и периодически проверять, корректно ли он считывается роботами Google, Яндекса и других поисковых систем. 

Материал подготовила Светлана Сирвида-Льорентэ.

правила обработки директив, какие директивы не используются в Google и зачем нужны Disallow и Crawl-delay — Пиксель Тулс

1 сентября 2019 года Google прекратит поддержку нескольких директив в robots.txt. В список попали: noindex, crawl-delay и nofollow. Вместо них рекомендуется использовать:

  • Мета-тег noindex, как наиболее эффективный способ удалить страницу из индекса.

  • 404 и 410 коды ответа сервера. В ряде случаев, 410 отрабатывает значительно быстрей для удаления URL из индекса.

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

  • Временное удаление страницы из индекса с помощью инструмента в Search Console.

  • Disallow в robots.txt.

Тем не менее, robots.txt по-прежнему остаётся одним из главных файлов для SEO-специалиста. Давайте вспомним самые полезные директивы от простых, до менее очевидных.

robots.txt

Это простой текстовый файл, который содержит инструкции для поисковых краулеров — какие страницы сайта не следует посещать, где лежит наш Sitemap.xml и для каких поисковых роботов распространяются правила.

Файл размещается в корневой директории сайта. Например:

Прежде чем начать сканирование сайта, краулеры проверяют наличие robots.txt и находят правила специфичные для их User-Agent, например Googlebot. Если таких нет — следуют общим инструкциям.

Действующие правила robots.txt

User-Agent

У каждой поисковой системы есть свои «агенты пользователя». По сути, это имя краулера, которое помогает дать определённые указания конкретному ему.

Если брать шире, то User-Agent — клиентское приложение на стороне поисковой системы, в некотором смысле имитирующее браузер или, например, мобильное устройство.

Примеры:

  • User-agent: * — символ астериск используются для обозначения сразу же всех краулеров.

  • User-agent: Yandex — основной краулер Яндекс-поиска.

  • User-agent: Google-Image — робот поиска Google по картинкам.

  • User-agent: AhrefsBot — краулер сервиса Ahrefs.

Важно: если в файле указаны правила для конкретных User-Agent, то роботы будут следовать только своим инструкциям, игнорируя общие правила.

В примере ниже краулер DuckDukcGo сможет сканировать папки сайта /api/ и /tmp/, несмотря на астериск («звёздочку»), отвечающий за инструкции всем роботам.


    User-agent: *
    Disallow: /tmp/
    Disallow: /api/

    User-agent: DuckDuckBot
    Disallow: /duckhunt/

Disallow

Директива, которая позволяет блокировать от индексации полностью весь сайт или определённые разделы.

Может быть полезно для закрытия от сканирования служебных, динамических или временных страниц (символ # отвечает за комментарии в коде и игнорируется краулерами).


    User-agent: *

    # Закрываем раздел /cms и все файлы внутри

    Disallow: /cms

    # Закрываем папку /images/resized/ (сами изображения разрешены к сканированию)

    Disallow: /api/resized/

Упростить инструкции помогают операторы:

  • * — любая последовательность символов в URL. По умолчанию к концу каждого правила, описанного в файле robots.txt, приписывается спецсимвол *.

  • $ — символ в конце URL-адреса, он используется чтобы отменить использование * на конце правила.


    User-agent: *

    # Закрываем URL, начинающиеся с /photo после домена. Например:
    #     /photos
    #     /photo/overview

    Disallow: /photo

    # Закрываем все URL, начинающиеся с /blog/ после домена и заканчивающиеся /stats/

    Disallow: /blog/*/stats$

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

Allow

С помощью этой директивы можно, напротив, разрешить каталог или конкретный адрес к индексации. В некоторых случаях проще запретить к сканированию весь сайт и с помощью Allow открыть нужные разделы.


    User-agent: *

    # Блокируем весь раздел /admin

    Disallow: /admin

    # Кроме файла /admin/css/style.css

    Allow: /admin/css/style.css

    # Открываем все файлы в папке /admin/js. Например:
    #     /admin/js/global.js
    #     /admin/js/ajax/update.js

    Allow: /admin/js/

Также Allow можно использовать для отдельных User-Agent.


    # Запрещаем доступ к сайту всем роботам

    User-agent: *
    Disallow: /

    # Кроме краулера Яндекса

    User-agent: Yandex
    Allow: /

Crawl-delay

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

Позволяет замедлить сканирование, если сервер бывает перегружен. Устанавливает интервал времени для обхода страниц в секундах (для Яндекса). Чем выше значение, тем медленнее краулер ходит по сайту.


    User-agent: *
    Crawl-delay: 5

Несмотря на то, что Googlebot игнорирует подобные правила, настроить скорость сканирования можно в Google Search Console проекта.

Интересно, что китайский Baidu также не обращает внимание на Crawl-delay в robots.txt, а Bing воспринимает команду как «временное окно», в рамках которого BingBot будет сканировать сайт только один раз.

Важно: если установлено высокое значение Crawl-delay, убедитесь, что ваш сайт своевременно индексируется. В сутках 86 400 секунд, при Crawl-delay: 30 будет просканировано не более 2880 страниц в день, что мало для крупных сайтов.

Sitemap

Одно из ключевых применений robots.txt в SEO — указание на расположение карты сайты. Обратите внимание, используется полный URL-адрес (их может быть несколько).


    Sitemap: https://www.example.com/sitemap.xml
    Sitemap: https://www.example.com/blog-sitemap.xml

Нужно иметь в виду:

  • Директива Sitemap указывается с заглавной S.

  • Sitemap не зависит от инструкций User-Agent.

  • Нельзя использовать относительный адрес карты сайта, только полный URL.

  • Файл XML-карты сайта должен располагаться на том же домене.

Также убедитесь, что ссылка возвращает статус 200 OK без редиректов. Проверить можно с помощью инструмента, определяющего ответ сервера или анализа XML-карты сайта.

Типичный robots.txt

Ниже представлены простые и распространенные шаблоны команд для поисковых роботов.

Разрешить полный доступ

Обратите внимание, правило для Disallow в этом случае не заполняется.

Полная блокировка доступа к хосту


    User-agent: *
    Disallow: /

Запрет конкретного раздела сайта


    User-agent: *
    Disallow: /admin/

Запрет сканирования определенного файла


    User-agent: *
    Disallow: /admin/my-embarrassing-photo.png

Распространенная ошибка

Установка индивидуальных правил для User-Agent без дублирования инструкций Disallow.

Как мы уже выяснили, при указании директивы User-Agent, соответствующий краулер будет следовать только тем правилам, что установлены именно для него. Не забывайте дублировать общие директивы для всех User-Agent.

В примере ниже — слегка измененный robots.txt сайта IMDB. Общие правила Disallow не будут распространяться на бот ScoutJet. А вот Crawl-delay, напротив, установлена только для него.


    # отредактированная версия robots.txt сайта IMDB

    #
    # Задержка интервала сканирования для ScouJet
    #
    
    User-agent:ScouJet
    Crawl-delay: 3
    #
    #

    #
    # Все остальные
    #

    User-agent: *
    Disallow: /tvschedule
    Disallow: /ActorSearch
    Disallow: /ActressSearch
    Disallow: /AddRecommendation
    Disallow: /ads/
    Disallow: /AlternateVersions
    Disallow: /AName
    Disallow: /Awards
    Disallow: /BAgent
    Disallow: /Ballot/

    #
    #
    Sitemap: https://www.imdb.com/sitemap_US_index.xml.gz

Противоречия директив

Общее правило — если две директивы противоречат друг другу, приоритетом пользуется та, в которой большее количество символов.


    User-agent: *

    # /admin/js/global.js разрешён к сканированию
    # /admin/js/update.js по-прежнему запрещён

    Disallow: /admin
    Allow: /admin/js/global.js

Может показаться, что файл /admin/js/global.js попадает под правило блокировки содержащего его раздела Disallow: /admin/. Тем не менее, он будет доступен для сканирования, в отличие от всех остальных файлов в каталоге.

Список распространенных User-Agent

User-Agent #
Google  
Googlebot Основной краулер Google
Googlebot-Image Робот поиска по картинкам
Bing  
Bingbot Основной краулер Bing
MSNBot Старый, но всё ещё использующийся краулер Bing
MSNBot-Media Краулер Bing для изображений
BingPreview Отдельный краулер Bing для Snapshot-изображений
Яндекс  
YandexBot Основной индексирующий бот Яндекса
YandexImages Бот Яндеса для поиска по изображениям
Baidu  
Baiduspider Главный поисковый робот Baidu
Baiduspider-image Бот Baidu для картинок
Applebot Краулер для Apple. Используется для Siri поиска и Spotlight
SEO-инструменты  
AhrefsBot Краулер сервиса Ahrefs
MJ12Bot Краулер сервиса Majestic
rogerbot Краулер сервиса MOZ
PixelTools Краулер «Пиксель Тулс»
Другое  
DuckDuckBot Бот поисковой системы DuckDuckGo

Советы по использованию операторов

Как упоминалось выше, широко применяются два оператора: * и $. С их помощью можно:

1. Заблокировать определённые типы файлов.


    User-agent: *

    # Блокируем любые файлы с расширением .json

    Disallow: /*.json$

В примере выше астериск * указывает на любые символы в названии файла, а оператор $ гарантирует, что расширение .json находится точно в конце адреса, и правило не затрагивает страницы вроде /locations.json.html (вдруг есть и такие).

2. Заблокировать URL с параметром ?, после которого следуют GET-запросы (метод передачи данных от клиента серверу).

Этот приём активно используется, если у проекта настроено ЧПУ для всех страниц и документы с GET-параметрами точно являются дублями.


    User-agent: *

    # Блокируем любые URL, содержащие символ ?

    Disallow: /*?

Заблокировать результаты поиска, но не саму страницу поиска.


    User-agent: *

    # Блокируем страницу результатов поиска

    Disallow: /search.php?query=*

Имеет ли значение регистр?

Определённо да. При указании правил Disallow / Allow, URL адреса могут быть относительными, но обязаны сохранять регистр.


    User-agent: *

    # /users разрешены для сканирования, поскольку регистр разный

    Disallow: /Users

Но сами директивы могут объявляться как с заглавной, так и с прописной: Disallow: или disallow: — без разницы. Исключение — Sitemap: всегда указывается с заглавной.

Как проверить robots.txt?

Есть множество сервисов проверки корректности файлов robots.txt, но, пожалуй, самые надёжные: Google Search Console и Яндекс.Вебмастер.

Для мониторинга изменений, как всегда, незаменим «Модуль ведения проектов»:

  • Контроль индексации на вкладке «Аудит» — динамика сканирования страниц сайта в Яндексе и Google.

  • Контроль изменений в файле robots.txt. Теперь точно не упустите, если кто-то из коллег закрыл сайт от индексации (или наоборот).

Держите свои robots.txt в порядке, и пусть в индекс попадает только необходимое!

Стандарт исключений для роботов — Википедия

Стандарт исключений для роботов — стандарт ограничения доступа роботам к содержимому на http-сервере при помощи текстового файла robots.txt, находящегося в корне сайта (то есть имеющего путь относительно имени сайта /robots.txt). Действие файла не распространяется на сайты, расположенные на поддоменах.

Следование стандарту добровольно. Стандарт был принят консорциумом W3C 30 января 1994 года в списке рассылки [email protected] и с тех пор используется большинством известных поисковых машин.

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

Файл состоит из записей. Записи разделяются одной или более пустых строк (признак конца строки: символы CR, CR+LF, LF). Каждая запись содержит непустые строки следующего вида:

<поле>:<необязательный пробел><значение><необязательный пробел>

где поле — это либо User-agent, либо Disallow.

В директиве User-agent указываются роботы, которые должны следовать указанным инструкциям (например, User-agent: Yandex, User-agent: YandexBot, User-agent: *).

Сравнение производится методом простого поиска подстроки. Например, запись

Disallow: /about

запретит доступ как к разделу http://example.com/about/ (недоступная ссылка), так и к файлу http://example.com/about.php (недоступная ссылка), а запись

Disallow: /about/

— только к разделу http://example.com/about/ (недоступная ссылка).

Файл может содержать комментарии. Комментарием является часть строки, начинающаяся с символа #.

Неправильно составленный robots.txt может привести к отрицательным последствиям. Например, весь сайт может «выпасть» из поискового индекса. Для проверки синтаксиса и структуры файла robots.txt существует ряд специализированных онлайн-служб:

Запрет доступа всех роботов ко всему сайту:

User-agent: *
Disallow: /

Запрет доступа определённого робота к каталогу /private/:

User-agent: googlebot
Disallow: /private/

Allow: имеет действие, обратное директиве Disallow — разрешает доступ к определенной части ресурса. Поддерживается всеми основными поисковиками. В следующем примере разрешается доступ к файлу photo.html, а доступ поисковиков ко всей остальной информации в каталоге /album1/ запрещается.

Allow: /album1/photo.html
Disallow: /album1/

Crawl-delay: устанавливает время, которое робот должен выдерживать между загрузкой страниц. Если робот будет загружать страницы слишком часто, это может создать излишнюю нагрузку на сервер. Впрочем, современные поисковые машины по умолчанию задают достаточную задержку в 1-2 секунды. На данный момент эта директива не учитывается Googlebot.

User-agent: *
Crawl-delay: 10

Sitemap: расположение файлов Sitemaps, которые могут показать, что именно нужно проиндексировать поисковому роботу.

Sitemap: http://example.com/sitemap.xml

В 1996 году был предложен расширенный стандарт robots.txt, включающий такие директивы как Request-rate и Visit-time. Например:

User-agent: *
Disallow: /downloads/
Request-rate: 1/5         # загружать не более одной страницы за пять секунд
Visit-time: 0600-0845     # загружать страницы только в промежуток с 6 утра до 8:45 по Гринвичу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *