Содержание
- Как индексация сайта зависит от файла robots.txt
- Директивы robots.txt
- Закрывающий robots.txt
- Как правильно настраивать robots.txt
- Пример robots.txt
- Как добавить robots.txt и где он находится
- Как проводится проверка robots.txt
- Типичные ошибки в robots.txt
В процессе оптимизации любого сайта один из самых важных аспектов - настройка и создание файла robots.txt. Если его не будет - нагрузка на ресурс со стороны краулеров многократно возрастет, индексация и переиндексация будут происходить медленно. Если же этот файл будет неправильно настроен - сайт будет проиндексирован полностью. Со всеми страницами печати, лид-формами, пользовательскими элементами и другими данными, которые не желательно добавлять в индекс.
Давайте разберемся во всех нюансах правильной настройки robots.txt.
Как индексация сайта зависит от файла robots.txt
Первое, что вам следует знать - индексация вашего сайта поисковыми роботами будет происходить вне зависимости от того, есть ли у вас файл robots.txt. Однако, если он есть - боты будут принимать во внимание те правила, которые прописаны в этом файле. При этом вести себя они будут по-разному. Ряд краулеров может не обращать внимания на определенные правила, либо же часть правил может быть специфичной только для конкретных роботов. Например, GoogleBot не задействует правило Host и Crawl-Delay, последнюю с недавних пор игнорирует и YandexNews, а YandexVideoParser и YandexDirect не принимают во внимание общие правила в robots (однако оба учитывают те, которые обозначены именно для них).
Максимальную нагрузку на сайт создают роботы, которые скачивают контент с вашего сайта. Следовательно, указывая, что именно индексировать, а что игнорировать, а также с какими временны́ми промежутками производить скачивание, вы можете, с одной стороны, значительно снизить нагрузку на сайт со стороны роботов, а с другой стороны, ускорить процесс скачивания, запретив обход ненужных страниц.
В числе таких страниц находятся скрипты json, ajax, которые отвечают за баннеры, появление капчи, разные всплывающие формы, корзина с разными этапами оформления покупки, админка и личный кабинет, поисковые функции.
Для большинства роботов также желательно отключить индексацию всех CSS и JS. Но есть два исключения - GoogleBot и Yandex. Им эти файлы необходимо оставить т.к они используют их при анализе удобства сайта и его ранжировании.
Директивы robots.txt
Директивы - это свод правил для роботов. Однако надо учитывать тот факт, что не каждая поисковая система или робот поддерживает определенные директивы. По этой причине для нас будет более полезнее будет знать не стандарт, а то, как главные роботы реагируют на те или иные директивы.
Будем рассматривать их по порядку.
User-agent
Это основная директива, которая определяет, для каких роботов следуют дальнейшие правила.
Для всех роботов:
User-agent: *
Для определенного бота:
User-agent: Yandex
Имейте в виду, что регистр символов в этом файле не имеет значения. То есть юзер-агент для Яндекса можно точно так же записать и следующим образом:
user-agent: yandex.
Ниже вы можете ознакомиться с таблицей разных юзер-агентов поисковых систем.
Бот | Функция |
Googlebot | основной индексирующий робот Google |
Googlebot-News | Google Новости |
Googlebot-Image | Google Картинки |
Googlebot-Video | видео |
Mediapartners-Google | Google AdSense, Google Mobile AdSense |
Mediapartners | Google AdSense, Google Mobile AdSense |
AdsBot-Google | проверка качества целевой страницы |
AdsBot-Google-Mobile-Apps | Робот Google для приложений |
Яндекс | |
YandexBot | основной индексирующий робот Яндекса |
YandexImages | Яндекс.Картинки |
YandexVideo | Яндекс.Видео |
YandexMedia | мультимедийные данные |
YandexBlogs | робот поиска по блогам |
YandexAddurl | робот, обращающийся к странице при добавлении ее через форму «Добавить URL» |
YandexFavicons | робот, индексирующий пиктограммы сайтов (favicons) |
YandexDirect | Яндекс.Директ |
YandexMetrika | Яндекс.Метрика |
YandexCatalog | Яндекс.Каталог |
YandexNews | Яндекс.Новости |
YandexImageResizer | робот мобильных сервисов |
Bing | |
Bingbot | основной индексирующий робот Bing |
Yahoo! | |
Slurp | основной индексирующий робот Yahoo! |
Mail.Ru | |
Mail.Ru | основной индексирующий робот Mail.Ru |
Rambler | |
StackRambler | Ранее основной индексирующий робот Rambler. Однако с 23.06.11 Rambler перестает поддерживать собственную поисковую систему и теперь использует на своих сервисах технологию Яндекса. Более не актуально. |
Allow и Disallow
С помощью директивы Disallow можно закрыть от индексирования страницы веб-ресурса. Allow, в свою очередь, позволяет в принудительном режиме открыть для индексации страницы и разделы сайта. На первый взгляд, все просто. Однако необходимо знание дополнительных операторов и понимание правил их использования - это *, # и $.
* - это любое количество символов, в том числе и их отсутствие. При этом в конце строки звездочку можно не ставить, подразумевается, что она там находится по умолчанию.
$ - показывает, что символ перед ним должен быть последним.
# - комментарий, все что после этого символа в строке роботом не учитывается.
Примеры использования:
Disallow: *?s=
Disallow: /category/$
От индексации будут закрыты следующие ссылки:
http://sait.ru/?s=
http://sait.ru/?s=keyword
http://sait.ru/page/?s=keyword
http://sait.ru/category/
Для индексации будут открыты следующие ссылки:
http://sait.ru/category/cat1
http://sait.ru/category-folder/
И это еще не все. Надо учитывать, каким именно образом происходит выполнение вложенных правил. Учитывайте тот факт, что порядок записи директив не имеет значения. Наследование правил, что должно быть открыто или закрыто от индексации, определяется по тому, какие именно директории указаны. Разберем на простом примере.
Allow: *.css
Disallow: /template/
http://sait.ru/template - закрыто от индексирования
http://sait.ru/template/style.css - закрыто от индексирования
http://sait.ru/theme/style.css - открыто для индексирования
http://sait.ru/ style.css - открыто для индексирования
Если необходимо, чтобы все файлы .css оставались открытыми для индексирования, потребуется этот параметр дополнительно прописывать для каждой закрытой папки.
Отметим еще раз, что порядок директив значения не имеет.
Sitemap
Директива, указывающая путь к XML-файлу Sitemap. URL прописывается в точности так же, как и в адресной строке.
Например,
Sitemap: http://sait.ru/sitemap.xml
Директиву Sitemap можно указать в любом месте файла robots.txt, привязки к определенному user-agent не требуется. При необходимости можно указать несколько директив.
Host
Эта директива указывает на главное зеркало сайта (в большинстве случаев: с www или без www). Обратите внимание, что главное зеркало указывается без http://, но с https://. Если есть необходимость, также указывается порт.
Директиву поддерживают только боты Mail.ru и Яндекса. Прочие роботы, в том числе бот Google, эту команду учитывать не будут. Host прописывается только один раз.
Пример 1:
Host: sait.ru
Пример 2:
Host: https://sait.ru
Crawl-delay
Эта директива позволяет установить интервал времени между скачиванием роботом страниц веб-ресурса. Поддерживается роботами Яндекса, Mail.Ru, Bing, Yahoo. Значение можно установить в целых или дробных единицах (с разделителем в виде точки), время в секундах
Пример:
Crawl-delay: 4
Пример:
Crawl-delay: 0.6
Если у сайта небольшая нагрузка, серьезной необходимости в такой директиве нет. Но если индексирование страниц роботами приводит к превышению лимитов сайта или значительным нагрузкам вплоть до проблем в работе сервера, сервера, то эта директива поможет снизить нагрузку.
Многое в этом вопросе зависит от значения. Чем оно больше, тем меньшее число страниц будет загружено роботом за одну сессию. Оптимальное значение определяется индивидуально для каждого сайта. Желательно начинать с небольших значений - например, 0.1, 0.2, 0.5, а затем их понемногу увеличивать. Если речь идет о роботах поисковых систем, у которых значение для результатов продвижения несколько меньше, таких как Yahoo или Bing, можно для них сразу поставить большее значение, чем для робота Яндекса.
Clean-param
Эта директива дает понять поисковому роботу, что URL-адреса с указанными параметрами в индексировании не нуждаются. Для правила указывается два аргумента: параметр и URL раздела. Директива поддерживается Яндексом.
Пример 1:
Clean-param: author_id http://site.ru/articles/
http://site.ru/articles/?author_id=267539 - индексироваться не будет
Пример 2:
Clean-param: author_id&sid http://site.ru/articles/
http://site.ru/articles/?author_id=267539&sid=0995823627 - индексироваться не будет
Яндекс также рекомендует использовать эту директиву для того, чтобы не учитывались UTM-метки и идентификаторы сессий. Пример:
Clean-Param: utm_source&utm_medium&utm_campaign
Прочие параметры
Указанными выше параметрами перечень не ограничивается. В расширенной спецификации можно найти и другие директивы, в частности, Request-rate и Visit-time. Но они в данный момент не имеют особого смысла для поисковых роботов, так как не поддерживаются ведущими поисковиками.
Смысл этих правил следующий:
Request-rate: 1/4 - загружать не больше страницы в четыре секунды.
Visit-time: 0500-0745 - в случае с такой директивой страницы загружаются исключительно во временной промежуток с 5 утра до 7:45 по Гринвичу.
Закрывающий robots.txt
Бывают такие ситуации, когда необходимо закрыть сайта от индексирования для всех поисковиков. Для этого пропишите следующие директивы:
User-agent: *
Disallow: /
Как правильно настраивать robots.txt
Для России и стран СНГ, где доля Яндекса ощутима, следует прописывать директивы для всех роботов и отдельно для Яндекса и Google.
Для корректной настройки файла придется многое закрыть от индексирования. Если вы собрались настраивать robots.txt, используйте следующую инструкцию:
- Сначала закрываем админку ресурса от индексации.
- Второй шаг - закрываем регистрацию, авторизацию и личный кабинет.
- Также должны быть закрыты от индексации корзина, форма заказа, информация о доставке.
- Закрываем скрипты json и ajax.
- Закрываем от индексации папку cgi.
- Закрываем темы оформления, плагины, js и css для всех краулеров кроме Google и Яндекса.
- Поисковый функционал тоже закрывается от индексации.
- Закрываются все служебные разделы, не несущие какую-либо ценность для ресурса в поиске (перечень авторов, ошибка 404).
- Закрываем технические дубли страниц страницы, на которых каким-либо образом дублируется контент с прочих страниц (архивы и календари).
- Закрываем от индексации страницы с параметрами UTM-меток и сессий.
- Закрываем страницы с параметрами сортировки, сравнения, фильтров.
- Следующий этап - проверка того, что уже проиндексировали Яндекс и Google. Для этого используется параметр site:. Владельцу ресурса необходимо набрать в поисковой строке site:sait.ru. Если в поиске будут обнаружены страницы, которые требуют закрытия от индексации, следует добавить их в файл robots.txt.
- Следующий шаг настройки файла - необходимо указать host и sitemap.
- Далее, если есть такая необходимость, прописываем директивы Crawl-Delay и Clean-Param.
- Следующий этап - проверка корректности файла robots.txt с помощью инструментов Яндекса или Google.
- Через пару недель надо провести перепроверку на предмет появления в поисковой выдаче страниц, которые не должны проходить индексирование. В случае необходимости повторите выше перечисленные шаги.
Пример robots.txt
# Пример файла robots.txt для настройки гипотетического сайта https://site.ru
User-agent: *
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Disallow: *utm=
Crawl-Delay: 5
User-agent: GoogleBot
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Disallow: *utm=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif
User-agent: Yandex
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif
Clean-Param: utm_source&utm_medium&utm_campaign
Crawl-Delay: 0.5
Sitemap: https://site.ru/sitemap.xml
Host: https://site.ru
Как добавить robots.txt и где он находится
После того, как вы создадите и настроите файл robots.txt, остается разместить его у вас на сайте в корневом каталоге по адресу sait.ru/robots.txt. Поисковики всегда обращаются к этому файлу по URL /robots.txt.
В некоторых CMS, например, в «Битриксе» есть стартовый набор для создания robots.txt. Это означает, что вам не придется создавать его с нуля.
Как проводится проверка robots.txt
Проверка корректности файла robots.txt с помощью инструментов Яндекса и Google выполняется по следующим ссылкам:
- В Google Search Console пользователю необходимо перейти на вкладку «Сканирование», а там нажать на инструмент проверки файла robots.txt.
- В Яндекс.Вебмастере перейти на вкладку «Инструменты», а там выбрать раздел «Анализ robots.txt».
Типичные ошибки в robots.txt
В финальной части статьи приведем несколько распространенных ошибок, которые владельцы сайтов допускают при работе с файлом robots.txt:
- файл отсутствует;
- сайт в нем закрыт от индексации (директива Disallow: /);
- файл не проработан детально, в нем есть только самые основные директивы, что негативно влияет на индексирование;
- в файле не закрыты от индексирования страницы с UTM-метками и идентификаторами сессий;
- директива host прописана несколько раз;
- в host не указан н протокол htpps;
- путь к Sitemap указали неправильно, либо указали неверный протокол или зеркало ресурса.
В файле могут быть указаны только директивы:
Allow: *.css;
Allow: *.js;
Allow: *.png;
Allow: *.jpg;
Allow: *.gif.
При этом файлы css, js, jpg и остальные закрыты в ряде директорий другими правилами.
Вот и все, что вам нужно знать о корректной настройке robots.txt.