Google впервые раскрыл подробности алгоритмов своего поискового робота, анализирующего файл robots.txt. Компания планирует сделать свой протокол исключений для ботов стандартом в отрасли.
Файл robots.txt – текстовый файл в формате .txt, ограничивающий поисковым роботам доступ к содержимому на http-сервере. В результате анализа файла robots.txt, поисковые роботы получают инструкции:
- частичный доступ: доступно сканирование отдельных элементов сайта;
- полный доступ: сканировать можно все;
- полный запрет: робот ничего не может сканировать.
Библиотека из 90-х
Google опубликовал на GitHub репозиторий своего парсера – программы для анализа и обработки данных – для robots.txt. В файле, расположенном в корневом каталоге сайта, можно прописать директивы для поисковых роботов различных систем. Выложенный код показывает, как анализирует данные программа от Google.
Репозиторий содержит библиотеку C++, Google использует ее для парсинга 20 лет. Некоторые части библиотеки написаны еще в 90-х годах, хотя большая часть кода постоянно обновляется. Google дорабатывает библиотеку в соответствии с накопленными знаниями о том, как веб-мастера заполняют robots.txt, с какими проблемами сталкиваются.
Кроме самого парсера, ИТ-гигант также представил инструменты для его тестирования, которые позволяют быстро проверить несколько директив для поискового робота.
На пути к стандарту
Открытие исходного кода библиотеки, используемой поисковым ботом – лишь часть масштабного проекта Google по стандартизации своего протокола Robots Exclusion Protocol (REP). Команда, принимавшая участие в его разработке, задокументировала принципы использования REP в современных веб-технологиях. Представленные сведения уже поданы на рассмотрение Инженерным советом интернета (IETF), который примет окончательное решение.
Идею использовать файл robots.txt в качестве протокола исключений для роботов придумал и реализовал в 1994 году Мартейн Костер. За 25 лет существования REP стал неофициальным стандартом для веб-мастеров. Из-за неопределенного статуса возникали проблемы при заполнении инструкций для ботов: разработчики могут интерпретировать протокол по-разному, а выработка четко описанных принципов работы REP сильно затруднена.
За все время своего существования протокол исключений ни разу не обновлялся и во многом перестал соответствовать современным трендам веб-разработки. В качестве примера представитель Google назвал ситуацию, в которой файл robots.txt весит более сотни мегабайт. Разработчику может быть не ясно, что с ним делать и как заставить робота обработать его.
Изменения грядут
Для стандартизации REP Google обновил документацию, касающуюся работы с robots.txt. Из нее удалены неподдерживаемые правила. Парсер перестанет работать с ними с 1 сентября 2019 года. Среди наиболее значимых изменений:
- больше не поддерживается директива noindex, используемая для запрета индексации определенных ссылок. Вместо нее рекомендуется применять аналогичный метатег, disallow в robots.txt или возвращать код ответа HTTP 404 и 410.
- поисковый бот пробует пять раз найти в корне сайта файл с инструкциями. Если robots.txt за это время не будет найден, то цикл прерывается и возвращается ошибка 404;
- если файл был найден ранее, но позднее перестал быть доступен в течение 30 дней, то робот будет использовать последнюю версию документа, сохраненную в кэше. Если к ней тоже нельзя получить доступ, поисковый бот будет считать весь сайт открытым для индексирования;
- неудачные запросы или неполные данные обрабатываются как ошибка сервера;
- максимально допустимый объем для файла robots.txt – 500 КБ. Робот игнорирует файлы, превышающие это значение.