Файл robots.txt используется, чтобы сообщить поисковым роботам и сканерам страниц, что они должны и не должны делать на странице. Директивы рассылаются с использованием стандарта Robots Exclusion Protocol, хотя следует отметить, что некоторые поисковые системы декларируют нестандартные записи с учетом. Основные записи включают сообщения, которые не должны читаться роботами, хотя есть и другие варианты использования файла robots.txt.
Немного истории
Протокол исключения роботов был создан буквально четверть века назад, в феврале 1994 года – и с тех пор в нем мало что изменилось, кроме вышеупомянутых нестандартных положений. Поскольку в его «юности» на рынке было много поисковых систем (достаточно упомянуть AltaVista, HotBot, Lycos или InfoSeek – а список был намного длиннее), он быстро стал неофициальным стандартом. Здесь, однако, следует упомянуть, что стандарт необычен, потому что это положение было и остается предположением, что боты часто не уважают или уважают только частично.
Интересно, что в июле 2019 года Google, чьи боты также не всегда полностью соответствуют директивам, хранящимся в файлах robots.txt, предложил признать протокол исключения роботов официальным стандартом. Может ли это что-нибудь изменить в том, как сейчас используется robots.txt? Теоретически нет. Однако это может привести к дискуссиям о введении новых положений, которые могут помочь в более эффективном «управлении» роботами поисковых систем.
Какие роботы читают файл robots.txt?
Файл robots.txt предназначен для всех машин, заходящих на сайт. Это касается не только самых очевидных роботов поисковых систем с точки зрения SEO. Боты, которым адресованы директивы этого файла, также являются машинами для архивирования в Интернете (такими как веб-архив), программами, загружающими сайт на локальный диск (например, HTTrack Website Copier), инструментами анализа веб-сайтов (включая инструменты SEO, такие как Xenu, а также ботов Mejestic SEO и Ahrefs) и т. д.
Конечно, нетрудно догадаться, что во многих случаях создателям не стоит беспокоиться о директивах. С другой стороны, некоторые роботы позволяют своим пользователям выбирать, следует ли им следовать обнаруженным директивам.
Зачем использовать файл robots.txt?
Это основной вопрос, который следует задать – особенно в контексте вышеупомянутой информации, которая может отличаться от записей в файле robots.txt. Ответ прост: небольшое управление роботом всегда лучше, чем отсутствие управления роботом. И что вы от этого получите? Прежде всего, запретить машинам просматривать те разделы веб-сайта, которые они не должны посещать по разным причинам, и указать им места, которые рекомендуется посетить.
Блокировка определенных областей сайта может быть важна по разным причинам:
- Проблемы с безопасностью – возможно, вы просто не хотите, чтобы роботы (или случайные пользователи, использующие в дальнейшем ресурсы, проиндексированные роботами) слишком легко попадали в разделы, к которым у них не должно быть доступа.
- Защита от дублированного контента. Если на вашей странице содержится большое количество внутреннего дублированного контента, и в то же время схема URL позволяет его четко идентифицировать, вы можете использовать файл robots.txt, чтобы сигнализировать поисковым системам, что они не должны отслеживать эту часть сайта.
- Сохранение передачи – используя записи robots.txt, вы можете попытаться удалить целые подкаталоги или определенные типы файлов из путей, используемых роботами – например, папку, содержащую изображения или их широкоформатные версии. Для некоторых услуг экономия на переводе может быть значительной.
- Защита содержимого от «утечки» – обратите внимание, что предложенная выше защита папки с широкоформатной графикой также может использоваться для представления только меньших версий в системе поиска изображений. Это может иметь большое значение, например, в случае фотобанков (но не только).
- Оптимизация краулингового бюджета – хотя я перечисляю это в конце списка, это определенно нетривиальная вещь. Чем больше размер веб-сайта, тем больше внимания следует уделять оптимизации путей, по которым индексируют роботы поисковой системы. Блокируя области сайта, не имеющие отношения к SEO, в файле robots.txt, вы просто увеличиваете вероятность того, что роботы отправятся туда, куда им нужно.
Основные директивы robots.txt: пользовательский агент, разрешить и запретить
Давайте рассмотрим, как должен выглядеть файл robots.txt. По определению, это должен быть текстовый файл, расположенный в основном каталоге сайта, к которому он относится. Его основные, наиболее распространенные директивы – это user-agent, allow и disallow. Используя первый, мы можем определить, каким ботам мы адресуем данное правило. Два других, в свою очередь, указывают, к каким областям робот должен иметь доступ, а где это не приветствуется.
Стоит помнить, что файл robots.txt поддерживает переменную в виде звездочки (*), а пути к файлам, на которые влияет данная команда, всегда должны быть заполнены чем угодно, по крайней мере, с начальной косой чертой (/). Любое отсутствие заполнения приведет к игнорированию поля.
Примером хорошей начинки может служить обозначение:
Пользовательский агент: *
Разрешить: /
– то есть заявить, что все роботы могут сканировать весь сайт. Аналогично запись:
Пользовательский агент: *
Disallow: / img /
– означает запретить доступ к каталогу / img /.
В свою очередь, запись:
Пользовательский агент: *
Disallow:
– ничего не значит из-за отсутствия пути, объявленного после директивы disallow.
Конечно, в одном файле robots.txt может быть несколько разрешающих и запрещающих полей. Пример? Вот, пожалуйста:
Пользовательский агент: *
Разрешить: /
Disallow: / img /
Disallow: / panel /
– то есть согласие роботов на посещение всего веб-сайта, за исключением папок / img / и / panel /.
Следует добавить, что сами директивы могут применяться не только ко всем каталогам, но и к отдельным файлам.
Порядок разрешающих и запрещающих директив в robots.txt
Если может возникнуть проблема с интерпретацией директив allow и disallow, например, когда вы хотите запретить роботам входить в каталог, но сделать исключение для определенного подкаталога, помните, что директивы allow должны быть выше запретов – например, вот так:
Пользовательский агент: *
Разрешить: /
Разрешить: / img / эскизы /
Запретить: / img /
Пользовательский агент: Ahrefsbot
Disallow: /
Пользовательский агент: MJ12bot
Disallow: /
В приведенном выше примере я сразу показал случай, когда для некоторых ботов применялись отдельные правила – таким образом мы «просим» роботов Ahrefs и Majestic SEO не бродить по сайту.
Директива карты сайта
Помимо «приглашений» и рекомендаций избегать каталогов, файл robots.txt также может использоваться для указания роботам, где должна быть расположена карта сайта. Для этого используется директива карты сайта, за которой следует полный путь к карте. Примерная форма записи выглядит так:
Карта сайта: http://www.domen.com/mapastrony.xml
Конечно, можно указать больше карт, что может быть полезно для очень сложных участков.
Директива задержки сканирования
В случае с очень большими сайтами часто возникает дилемма – с одной стороны, их владельцы могут заботиться об индексации целого, с другой – чрезмерная активность поисковых роботов может потреблять довольно много передач и обременять сервер постоянно новыми запросами. Идея решения этой проблемы состояла в том, чтобы ввести настраиваемую директиву задержки сканирования.
Эта запись используется для информирования роботов о том, что они не должны загружать новые файлы чаще, чем каждые x секунд, что приводит к увеличению времени работы робота. Пример записи:
Пользовательский агент: *
Задержка сканирования: 2
– то есть загрузка последующих документов каждые две секунды.
Следует иметь в виду, что большинство поисковых систем довольно свободно относятся к этой записи, часто просто игнорируя ее. Google некоторое время сообщал о несоответствии этой директивы и, наконец, в июле 2019 года официально объявил, что не поддерживает ее. Bing заявляет, что запись считывается BingBot, и ее значение должно быть от 1 до 30. Теоретически директива поддерживается также Яндексом, хотя на практике она не всегда соблюдается.
Интересно, что чешская поисковая система Seznam предлагает использовать другую директиву, а именно скорость запросов и присваивать ей значение на основе количества документов, косой черты и времени в виде числа и единиц (s как секунды, m как минуты, h как часы и d как дни, каждый раз без пробелов после номера). Примером такого типа записи может быть:
Пользовательский агент: SeznamBot Скорость
запросов: 500 / 1ч
быть:
Пользовательский агент: SeznamBot Частота
запросов : 100/20 мин.
Сам Сезнам заявляет, что директива не должна требовать индексации медленнее, чем 1 документ каждые 10 секунд.
Директива clean-param
Очень интересная директива, к сожалению, являющаяся общим стандартом, – это clean-param. Эта директива читается поисковыми роботами Яндекса и позволяет игнорировать определенные параметры, назначенные адресам в указанных путях.
Как это выглядит на практике? Допустим, на вашем сайте есть адреса:
Domena.com/katalog/strona?tlo=1&id=3
Domena.com/katalog/strona?tlo=2&id=3
Domena.com/katalog/prona?tlo=3&id=3
Что, если переменная “background” изменяет только внешний вид страницы, на которой все время есть одно и то же содержимое? В таких случаях Яндекс предлагает использовать параметр clean-param. Соответствующие обозначения могут выглядеть так:
User-agent: Yandex
Clean-param: background / directory /
– это означает, что все три адреса, приведенные в предыдущем примере, будут читаться как:
Domena.com/katalog/strona?id=3
Как видите, эта директива настолько удобна, что ее можно ограничить определенными каталогами.
Директива хоста
Команда host также упоминается среди нестандартных директив robots.txt. Игнорируемый большинством поисковых систем, он какое-то время упоминался на справочных страницах Яндекса, хотя теперь его описание оттуда исчезло.
Команда host используется (или скорее?) Для указания предпочтительного домена в случае, если у вас есть несколько зеркал, расположенных по разным адресам. Важно отметить, что один файл robots.txt должен содержать максимум одну директиву хоста (если их больше, следующие игнорируются), а домен после команды хоста не может содержать ошибок или номеров портов.
Пример:
Хост: domain.com
К сожалению, я не знаю, продолжает ли команда работать, но я могу предположить, зная изобретательность позиционеров, что она только соблазнила на различные эксперименты с размещением ее не обязательно в тех областях, где она должна располагаться. В утешение «рядовым веб-мастерам» следует отметить, что сам Яндекс, когда упомянул эту директиву на своих страницах, представил ее как «предложение» для роботов – поэтому он не отнесся к ней обязательно.
Ошибки robots.txt и их последствия
Хотя содержимое файла robots.txt можно использовать для «взаимодействия» с роботами поисковых систем, это также может вызвать у вас проблемы с вашим сайтом. Как? Ну, исключив из поиска контент, который должен появиться в индексе. Это может привести к значительной потере заметности в результатах поиска. Особенно с большими файлами robots.txt с большим количеством записей в разных подкаталогах, где-то по пути легко допустить ошибку и исключить слишком много разделов страницы.
Вторая серьезная ошибка – запретить все изображения, стили CSS и файлы Java Script. На первый взгляд это может показаться хорошим ходом, но на самом деле ситуация немного отличается по двум причинам. Прежде всего, во многих случаях стоит включить его в результаты поиска изображений (хотя, конечно, вы можете запретить доступ, например, к версии в большем формате, как я уже упоминал ранее).
Вторая причина, однако, более важна, и это отрисовка страницы роботом Google Bot. Если вы не позволите боту получить окончательный вид страницы, он будет отображать ее без них, что в некоторых случаях может сделать ее неполной с его точки зрения – и это может повлиять на рейтинг.
Должен ли я быть осторожным с размером файла robots.txt?
Один гуглер Джон Мюллер однажды заявил в своем профиле Google+, что максимальный размер файла robots.txt составляет 500 КБ. Таким образом, можно сделать вывод, что проблема абстрактная, потому что такое расширение списка директив было бы абсурдным. Однако стоит постараться сделать так, чтобы даже короткий файл robots.txt не увеличивался чрезмерно и просто оставался читаемым для … человека, которому придется его просмотреть и, возможно, дополнить или изменить.
Кроме того, вы также должны помнить, что мы говорим только о значении, принимаемом Google Bot – в случае других поисковых систем ограничение размера файла robots.txt может быть другим.
Достаточно ли блокировки страниц в robots.txt?
К сожалению, нет. Во-первых, основные роботы поисковых систем не всегда соблюдают запреты (не говоря уже о том, как некоторые инструменты подходят к ним). Во-вторых, даже после прочтения запрета Google может войти на страницу и добавить ее в индекс, учитывая только ее заголовок (TITLE) и URL-адрес, а иногда и дополняя целое утверждением «Информация для этой страницы недоступна».
Так что найти эту страницу в поисковой системе все еще возможно, хотя это маловероятно. Более того, боты по-прежнему просматривают такие страницы по последующим ссылкам, даже если они больше не предоставляют ссылочный вес, а их рейтинг не учитывает данные, полученные на основе их контента.
Что кроме robots.txt?
Если вы хотите исключить определенные части страницы из индексов поисковой системы, вы всегда можете использовать метатег robots, расположенный в разделе <HEAD> отдельных подстраниц:
<meta name = “robots” content = “noindex, nofollow” />
– что все же не является методом, обеспечивающим стопроцентный успех (и менее удобным), но является дополнительным сигналом для ботов.
Но что, если вы хотите полностью заблокировать доступ ботам и случайным людям? В такой ситуации вместо пассивных методов, рассчитанных на то, что никто не имеет доступа к данному месту, гораздо лучше просто защитить данный раздел веб-сайта паролем (например, введенным с помощью htaccess).
Теоретически вы также можете пойти на половинчатые меры, например, в виде блокировки доступа к вызовам с определенных адресов и IP-классов (тех, которые используются ботами поисковых систем), но на практике было бы достаточно пропустить некоторые адреса, и проблема все равно существовала бы – и это снова приводит нас к выводу что полная безопасность будет просто принудительной авторизацией.
Резюме
Наконец, остается только вернуться к вопросу о последствиях возможных ошибок при заполнении файла robots.txt. Что бы там ни было, стоит помнить, какие могут быть эффекты и… для чего это нужно. Когда мы хотим что-то проиндексировать, мы должны обратить внимание, не будет ли это иметь побочных эффектов (см. Пример со сложностью отрисовки страницы с помощью Google Bot). С другой стороны, если мы заботимся о проблемах безопасности, помните, что исключение из индексации Google по-прежнему не блокирует доступ к парсерам.
Add a Comment