Robots.txt

Robots.txt

Файл robots.txt используется для управления поведением поисковых роботов (краулеров) при обходе веб-сайта. Когда поисковый робот впервые обращается к какому-либо ресурсу, первое, что он делает, — запрашивает этот файл по стандартному адресу: http://www.example.com/robots.txt. Именно этот запрос является отправной точкой для всего последующего взаимодействия между роботом и сайтом.

После получения файла робот анализирует его содержимое и определяет, какие страницы и разделы он имеет право посещать, а какие должен игнорировать. Важно понимать, что этот механизм основан на принципе добровольного соблюдения: технически никто не может заставить робота подчиняться инструкциям из данного файла. Однако все крупные поисковые системы — Google, Yandex, Bing и другие — добросовестно следуют этим указаниям, поскольку это соответствует их собственным интересам и общепринятым стандартам профессионального поведения в сети.

Принципиально важно понимать различие между запретом на сканирование и запретом на индексирование. Файл robots.txt контролирует именно доступ для сканирования — то есть он определяет, может ли робот посетить ту или иную страницу. Если страница заблокирована в этом файле, робот не будет её посещать, однако это не означает автоматически, что она не попадёт в индекс поисковой системы. 

Структура и cинтаксис файла

  • Базовые директивы

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

  • User-agent — это первая и обязательная директива в каждом блоке инструкций. Она указывает, для какого именно робота предназначены следующие далее инструкции. Символ звёздочки (*) используется как универсальный маркер, обозначающий все роботы без исключения. Если же необходимо задать специфические инструкции для конкретного поискового робота, указывается его точное имя: Googlebot для робота Google, Yandex для робота Яндекса и так далее.
  • Disallow — директива, запрещающая роботу посещать указанный путь или набор путей. Если после двоеточия ничего не указано, это означает, что для данного робота нет никаких ограничений — он может свободно сканировать весь сайт. Если же указан путь, начинающийся с символа «/», робот не должен посещать страницы, соответствующие этому пути.
  • Allow — директива, разрешающая доступ к конкретным путям, которые в противном случае были бы заблокированы более общими правилами Disallow. Эта директива используется для создания исключений из общих запретов и позволяет выстраивать достаточно сложные иерархические системы правил доступа.
  • Sitemap — директива, указывающая на расположение карты сайта в формате XML. Несмотря на то что технически она не является обязательной частью стандарта robots exclusion, её включение в файл является хорошей практикой, поскольку помогает поисковым роботам быстрее обнаруживать и индексировать все страницы ресурса.
  • Crawl-delay — директива, позволяющая указать задержку в секундах между последовательными запросами робота к серверу. Эта директива поддерживается не всеми поисковыми системами, однако для ресурсов с ограниченными серверными ресурсами она может оказаться весьма полезной.

Синтаксические правила и особенности

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

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

Каждая директива должна располагаться на отдельной строке. Несколько директив не могут быть записаны через запятую или разделены каким-либо иным образом на одной строке — такая запись будет расценена роботом как ошибка.

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

Комментарии в файле обозначаются символом «#» в начале строки или в конце строки после значения директивы. Комментарии игнорируются роботами и служат исключительно для удобства чтения файла людьми.

Порядок блоков User-agent в файле не имеет значения — каждый робот читает весь файл и выбирает правила, предназначенные именно для него. Однако общепринятой практикой является размещение наиболее специфичных правил перед общими.

Создание и настройка файла для различных типов сайтов

  • Общие принципы создания

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

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

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

Третий шаг — составление списка директорий и URL, которые необходимо заблокировать или, явно разрешить. Этот список должен быть максимально полным и детальным — именно он станет основой для написания правил.

Четвёртый шаг — непосредственное написание файла с соблюдением всех синтаксических требований.

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

Шестой шаг — размещение файла в корневой директории сайта и мониторинг его работы.

  • Настройка для корпоративного сайта

Рассмотрим, как сделать robots.txt для сайта корпоративного типа — одного из наиболее распространённых видов веб-ресурсов. Корпоративные сайты имеют сравнительно простую структуру, однако и здесь существует ряд типичных разделов, которые необходимо закрывать от индексирования.

К таким разделам обычно относятся: административная панель управления сайтом (чаще всего расположенная по адресу /admin/ или /wp-admin/ для сайтов на WordPress), личный кабинет пользователей (/cabinet/, /user/, /account/), страницы авторизации и регистрации, служебные скрипты и технические файлы, а также временные и тестовые разделы.

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

  • Настройка для интернет-магазина

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

Для типичного интернет-магазина необходимо закрывать от сканирования следующие типы страниц и разделов:

— Страницы корзины, оформления заказа и оплаты (/cart/, /checkout/, /order/). Эти страницы не несут никакой ценности с точки зрения поисковой оптимизации, однако активно сканируются роботами, расходуя краулинговый бюджет.

— URL-адреса с параметрами сортировки и фильтрации (/?sort=price, /?filter=color и т. д.). Эти страницы содержат тот же набор товаров, что и основная страница категории, но в другом порядке или с другими фильтрами — то есть представляют собой классический дублированный контент.

— Служебные технические разделы: /search/ (результаты внутреннего поиска), /compare/ (страницы сравнения товаров), /wishlist/ (списки желаний).

— Административная часть сайта и личные кабинеты пользователей.

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

  • Настройка для новостного портала или блога

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

Для новостного портала типичными кандидатами для включения в список запрещённых разделов являются: страницы пагинации (при условии использования канонических URL), архивы тегов и авторов (если они содержат дублированный контент), страницы поиска по сайту, административные разделы, а также служебные технические директории.

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

Файл Robots.txt и поисковые системы

  • Взаимодействие с Google

Google является крупнейшей поисковой системой мира, и понимание того, как именно Googlebot взаимодействует с файлом robots.txt, имеет критическое значение для поисковой оптимизации. Googlebot проверяет наличие и содержание этого файла каждый раз перед сканированием нового URL-адреса на сайте.

Важной особенностью Google является то, что компания в 2019 году официально отказалась от поддержки директивы Crawl-delay, а также ряда нестандартных расширений протокола, таких как Noindex в robots.txt. Это означает, что использование директивы Noindex непосредственно в данном файле не будет иметь никакого эффекта применительно к роботам Google — для запрета индексирования конкретных страниц необходимо использовать мета-тег robots в HTML-коде страницы или HTTP-заголовок X-Robots-Tag.

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

  • Взаимодействие с Яндексом

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

В отличие от Google, Яндекс поддерживает директиву Crawl-delay, что делает её использование оправданным для ресурсов, ориентированных прежде всего на русскоязычную аудиторию. Яндекс поддерживает директиву Clean-param, которая позволяет указывать параметры URL, не влияющие на содержание страниц. Это мощный инструмент для борьбы с дублированным контентом, генерируемым динамическими параметрами в адресной строке.

Яндекс также поддерживает директиву Host, которая позволяет указать главное зеркало сайта — предпочтительную версию домена, которую должен индексировать поисковый робот. Хотя сегодня существуют альтернативные способы решения этой задачи, директива Host по-прежнему остаётся актуальным инструментом для многих веб-мастеров, работающих с Яндексом.

  • Взаимодействие с другими поисковыми системами

Помимо Google и Яндекса, существует целый ряд других поисковых систем и сканирующих программ, которые также взаимодействуют с файлом robots.txt. Среди них — Bing, Yahoo (использующий роботы Bing), DuckDuckGo, а также многочисленные специализированные краулеры — агрегаторы цен, архивы веб-страниц и другие автоматизированные системы.

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

Краулинговый бюджет и его оптимизация

  • Что такое краулинговый бюджет

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

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

  • Роль Robots.txt в оптимизации краулингового бюджета

Именно здесь в полной мере раскрывается потенциал http robots.txt как инструмента оптимизации. Грамотно настроенный файл позволяет направить краулинговый бюджет туда, где он действительно необходим, — на страницы с уникальным и ценным контентом, требующим своевременной индексации.

Закрывая от сканирования страницы с дублированным контентом (результаты поиска, страницы с параметрами сортировки и фильтрации, версии страниц с UTM-метками), служебные разделы (корзина, оформление заказа, личный кабинет) и технические файлы, вы фактически «освобождаете» краулинговый бюджет для тех страниц, которые действительно должны быть проиндексированы.

Особенно актуальна эта задача для крупных интернет-магазинов, где количество уникальных URL, сгенерированных различными комбинациями фильтров, может исчисляться миллионами. Без надлежащей регулировки robots.txt поисковый робот может потратить весь отведённый ему бюджет на сканирование этих технических страниц, так и не добравшись до реально важных страниц с описаниями товаров.

Типичные шибки и способы их устранения

  • Критические ошибки

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

Блокировка всего сайта — пожалуй, самая распространённая и одновременно самая катастрофическая ошибка. Она возникает, когда в файле присутствует запись вида «Disallow: /» применительно ко всем роботам. Такая запись означает полный запрет на сканирование всех страниц сайта. Нередко эта ошибка допускается случайно — при тестировании сайта на стадии разработки, когда разработчики блокируют весь ресурс, а затем забывают снять это ограничение перед запуском.

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

Блокировка CSS и JavaScript файлов — ещё одна распространённая ошибка, которая имела особое значение на ранних этапах развития поисковых технологий. Сегодня современные поисковые системы, и прежде всего Google, используют JavaScript-рендеринг для отображения страниц — то есть они обрабатывают страницы так же, как это делает браузер пользователя. Если CSS и JavaScript файлы заблокированы в robots.txt, поисковый робот не может корректно «увидеть» страницу и оценить её содержимое, что негативно сказывается на ранжировании.

Конфликтующие правила — ситуация, когда в файле для сайта robots.txt  одновременно присутствуют директивы Allow и Disallow, применимые к одному и тому же URL. Разные поисковые системы по-разному разрешают такие конфликты: Google отдаёт предпочтение наиболее специфичному правилу, тогда как другие системы могут использовать иные алгоритмы. Во избежание неопределённости рекомендуется тщательно планировать структуру правил и проверять её корректность с помощью тестирующих инструментов.

  • Распространённые технические ошибки для robots.txt 

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

Неправильная кодировка файла — использование кодировки, отличной от UTF-8, особенно при наличии в путях символов национальных алфавитов, может привести к тому, что роботы неправильно интерпретируют пути и правила.

Размер файла — Google устанавливает ограничение на размер файла robots.txt в 500 килобайт. Если файл превышает этот лимит, поисковый робот будет обрабатывать только его первые 500 килобайт, игнорируя остальное содержимое. Для стандартных сайтов достичь этого лимита практически невозможно, однако для очень крупных ресурсов с тысячами правил этот вопрос может стать актуальным.

Чувствительность к регистру — пути в директивах Disallow и Allow чувствительны к регистру символов. Это означает, что правило «Disallow: /Admin/» не будет блокировать доступ к «/admin/» (со строчной буквой). Если ваш сайт использует URL-адреса в различных регистровых вариантах, необходимо прописывать правила для каждого варианта отдельно.

Отсутствие завершающего слэша — в ряде случаев наличие или отсутствие завершающего слэша в пути может иметь значение. «Disallow: /catalog» заблокирует страницу с адресом /catalog, но не обязательно заблокирует все страницы внутри директории /catalog/. Для блокировки всей директории необходимо использовать запись «Disallow: /catalog/».

  • Ошибки стратегического характера

Наряду с техническими ошибками существуют и стратегические просчёты, которые не нарушают синтаксис файла, но приводят к нежелательным последствиям для продвижения сайта.

Избыточная блокировка — ситуация, когда в погоне за оптимизацией краулингового бюджета владелец сайта закрывает от индексирования страницы, которые в действительности имеют поисковую ценность. Некоторые веб-мастера закрывают все страницы с URL-параметрами, не задумываясь о том, что среди них могут быть страницы с уникальным и ценным контентом.

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

Несоответствие robots.txt и sitemap.xml — ситуация, когда файл карты сайта содержит URL-адреса, заблокированные в robots.txt. Такое противоречие вносит путаницу и снижает эффективность обоих инструментов.

Инструменты для работы с файлом

  • Google Search Console

Google Search Console предоставляет один из наиболее мощных и удобных инструментов для работы с robots.txt. Встроенный тестировщик этого файла позволяет проверить, как Googlebot интерпретирует те или иные правила применительно к конкретным URL-адресам. 

  • Яндекс.Вебмастер

Аналогичный инструментарий предоставляет и сервис Яндекс.Вебмастер. В разделе «Инструменты» доступен анализатор файла robots.txt, который позволяет проверить его корректность и посмотреть, как Яндекс-бот интерпретирует правила применительно к конкретным страницам. 

  • Специализированные SEO-инструменты

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

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