© Discript 2018 - 2021

Инструкция по работе с файлом robots.txt

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

Файл robots.txt – это текстовый файл, который размещается в корневой папке сайта и содержит инструкции по индексации страниц для роботов поисковых систем. В нем есть своя структура, директивы, и в целом он в некотором роде выполняет функцию «фильтра». Говоря проще, именно при помощи robots.txt мы указываем, какие страницы сайта робот должен сканировать, а какие – нет. robots.txt является важным и нужным инструментом взаимодействия с поисковыми роботами и один из важнейших инструментов SEO. Он нужен в случае, когда вы хотите, чтобы индексация сайта проходила максимально качественно, то есть чтобы в поиск попали действительно полезные страницы.

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

При работе с файлом robots.txt важно понимать отличия между терминами «директива» и «директория»:

Директория — это папка, в которой находятся файлы вашей системы управления.

Директива — это список команд, инструкции в robots.txt для одного или нескольких поисковых роботов при помощи которых производится управление индексацией сайта.



Создание robots.txt

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

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

Файл нужно разместить в корневой папке, то есть в той, которая называется так же, как и ваш движок и содержит в себе индексный файл index.html и файлы системы управления, на базе которой и сделан сайт.

Чтобы загрузить в эту папку файл robots.txt можно использовать панель управления сервером, админку в CMS, Total Commander или другие способы.

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

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

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



Общие правила составления robots.txt

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

Внимание следует уделить следующим моментам:

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

Файл robots.txt должен располагаться исключительно в корневой папке сайта, т.е. он должен быть доступен по адресу site.ru/robots.txt.

Не допускается наличие вложений, например, site.ru/page/robots.txt. Если файл robots.txt располагается не в корне сайта (и у него другой URL), то роботы поисковых систем его не увидят и будут индексировать все страницы сайта.

При этом важно помнить, что файл robots.txt привязан к адресу домена вплоть до протокола. То есть для http и https требуется 2 разных robots.txt, даже если затем адреса совпадают. Также один и тот же файл нельзя использовать для субдоменов (хостов) и других портов. Получается, что один robots.txt действителен для всех файлов во всех подкаталогах, которые относятся к одному хосту, протоколу и номеру порта.

Насколько грамотно составлен ваш robots.txt можно оценить, проанализировав его по следующим пунктам:

  1. Файл должен быть один для каждого сайта и называться он должен robots.txt. Заглавные буквы в названии не используются.
  2. Запрещено использовать кириллицу в директориях robots.txt. Чтобы указывать названия кириллических доменов, нужно использовать Punycode для их преображения. Адреса сайтов также указывают в кодировке UTF-8, включающей коды символов ASCII. Например:

    Неверно:

    User-agent: Yandex
    Disallow: /корзина /
    Sitemap: сайт123.рф/sitemap.xml

    Верно:

    User-agent: Yandex
    Disallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0
    Sitemap: http://xn--80aswg.xn--p1ai/sitemap.xml

  3. Инструкции пишутся отдельно для каждого робота, т.е. в директиве User Agent не допускается никаких перечислений. Если хотите назначить правила для всех роботов, то необходимо использовать User-agent: *. В файле robots.txt знак «*» — это любое число любых символов.
  4. Каждая директива должна начинаться с новой строки.
  5. 1 директива = 1 параметр, т.е. например, Disallow: /admin, и никаких Disallow: /admin /manage и т.д. в одной строчке.
  6. В начало строки не ставится пробел.
  7. Параметр директивы должен быть прописан в одну строку.
  8. Для указания директории применяется слэш.
  9. Параметры директивы не нужно добавлять в кавычки, также они не требуют закрывающих точки с запятой.
  10. Комментарии допускаются после знака #.
  11. Директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от большего к меньшему) и применяются последовательно. Если для данной страницы сайта подходит несколько директив, то робот выбирает более длинный URL и далее идет к более коротким. Таким образом, порядок следования директив в файле robots.txt не влияет на использование их роботом.
  12. Слишком большой (более 32Кб), недоступный по каким-либо причинам или пустой robots.txt будет трактоваться как полностью разрешающий.
  13. В robots.txt не допускается использование любых символов кроме спецсимволов.

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

Например, конструкция:

User-agent:*
Disallow: /

закрывает весь сайт от индексации.

Конструкция:

User-agent:*
Disallow: /calendar/
Disallow: /junk/

запрещает сканирование разделов calendar и junk.

В то время, как конструкция:

User-agent:*
Disallow:

открывает весь сайт для индексации.



Основные директивы в robots.txt

Директивы, используемые в robots.txt:



1. Правильный robots.txt начинается с директивы User-agent, которая указывает, к какому роботу обращены конкретные директивы.

Примеры User-agent в robots.txt:

# Указывает директивы для всех роботов одновременно
User-agent: *

# Указывает директивы для всех роботов Яндекса
User-agent: Yandex

# Указывает директивы для всех роботов Google
User-agent: Googlebot

Через robots.txt можно обратиться не только к главному роботу поисковой системы, но и к вспомогательным роботам, например, в Яндексе есть робот, который индексирует изображения: YandexImages или робот, который индексирует видео: YandexVideo.

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

Кроме того, в robots.txt не имеет значения регистр символов. То есть одинаково правильно будет записать: User-agent: Googlebot или User-agent: googlebot.

Таким образом, директива User-agent указывает только на робота (или на всех сразу), а уже после нее должна идти команда или команды с непосредственным указанием команд для выбранного робота.



2. Disallow — запрещающая директива. Она запрещает индексацию каталогов, адресов или файлов сайта. Путь к тем файлам, каталогам или адресам, которые не нужно индексировать, прописываются после специального символа “/”:

Пример как в robots.txt запретить индексацию сайта:

User-agent: *
Disallow: /

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

Пример, как robots.txt запретить индексацию папки wp-includes для всех роботов:

User-agent: *
Disallow: /wp-includes

Данный пример закрывает для индексации все файлы, которые находятся в этом каталоге.

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

User-agent: Yandex
Disallow: /search/

Запрет на индексацию в этом случае распространяется именно на страницы, у которых в URL есть «/search/» (именно с двумя знаками “/”).



3. Allow — разрешающая директива, логически противоположная директиве Disallow. То есть она принудительно открывает для индексирования указанные каталоги, файлы, адреса. Директива имеет синтаксис, сходный с Disallow.

Пример, как в robots.txt запретить индексацию сайта кроме некоторых страниц:

User-agent: Yandex
Disallow: /
Allow: /blog

Запрещается индексировать весь сайт, кроме страниц, начинающихся с /blog.

Если же необходимо разрешить индексировать все страницы, в адресе которых присутствует вхождение /blog, то следует использовать конструкцию:

User-agent: Yandex
Disallow: /
Allow: */blog

Иногда директивы Allow и Disallow используются в паре. Это может понадобиться для того, чтобы открыть роботу доступ к подкаталогу, который расположен в каталоге с запрещенным доступом.



4. В директиве Sitemap указывают ссылку на карту сайта: sitemap.xml. Она нужна для ускорения индексации.

Пример robots.txt с указанием адреса карты сайта:

User-agent: Yandex
Disallow: /page
Sitemap: http://www.site.ru/sitemap.xml



5. Директиву Crawl-delay с 22 февраля 2018 года Яндекс перестал учитывать.



6. Директива Clean-param позволяет исключить из индексации страницы с динамическими get-параметрами. Такие страницы могут отдавать одинаковое содержимое, имея различные URL (например, UTM). Данная директива позволяет сэкономит крауленговый бюджет за счёт исключения из индексирования страниц дублей.

Примечания:

  • Иногда для закрытия таких страниц используется директива Disallow. Рекомендуем использовать Clean-param, так как эта директива позволяет передавать основному URL или сайту некоторые накопленные показатели, например ссылочные.
  • Директива Clean-Param может быть указана в любом месте файла robots.txt. В случае, если директив указано несколько, все они будут учтены роботом.

Синтаксис директивы Clean-param:

Clean-param: parm1&parm2&parm3 [Путь]

#Через & указаны параметры, которые необходимо не учитывать,
#[Путь] - адрес, для которого применяется адрес.

Рассмотрим на примере страницы со следующим URL: www.site.ru/page.html?&parm1=1&parm2=2&parm3=3

Пример robots.txt с использованием Clean-param:

Clean-param: parm1&parm2&parm3 /page.html # только для page.html

#или

Clean-param: parm1&parm2&parm3 / # для всех

Директива Clean-param применима только для Яндекса (Google выдаст ошибку), поэтому без особой надобности её использовать не рекомендуется.



Маски в robots.txt: для чего нужны и как правильно использовать

Маска в robots.txt — это условная запись, в которую входят названия целой группы папок или файлов. Маски используются для того, чтобы одновременно совершать операции над несколькими файлами (или папками) и обозначаются спецсимволом-звездочкой — “*”.

На самом деле, использование масок не только упрощает работу, оно зачастую просто необходимо. Предположим, у вас на сайте есть список файлов в папке /documents/. Среди этих файлов есть презентации в формате .pdf, и вы не хотите, чтобы их сканировал робот. Значит эти файлы нужно исключить из поиска.

Как это сделать? Можно перечислить все файлы формата .pdf вручную:

Disallow: /documents/admin.pdf
Disallow: /documents/town.pdf
Disallow: /documents/leto.pdf
Disallow: /documents/sity.pdf
Disallow: /documents/europe.pdf
Disallow: /documents/s-112.pdf

Но если таких файлов сотни, то указывать их придется очень долго, поэтому куда быстрее просто указать маску *.pdf, которая скроет все файлы в формате pdf в рамках одной директивы:

Disallow: /documents/*.pdf

Специальный символ “*”, который используется при создании масок, обозначает любую последовательность символов, в том числе и пробел.



Ошибки в файле robots.txt

В процессе проверки правильности составления файла robots.txt чаще всего встречаются следующие ошибки:

  1. robots.txt отсутствует или он закрыт от индексирования (Disallow: /).
  2. Несколько файлов robots.txt. Для одного сайта должен быть создан только один файл.
  3. Неверное расположение. Файл robots.txt должен располагаться в корневой папке сайта. Если он расположен в другом месте, то роботы его не увидят и будут индексировать весь сайт (включая файлы, которые индексировать не нужно).
  4. Правило начинается с неверных символов. В robots.txt правила должны начинаться только с * или /
  5. Есть несколько правил для одного агента, например, несколько правил “User-agent: Yandex”. В правильно составленном файле такое правило может быть только одно.
  6. Превышен допустимый размер. Максимальное количество правил — 2048. Максимальная длина одного правила — 1024 символа. Но такая ошибка встречается довольно редко.
  7. Перед правилом отсутствует директива User-agent. Любое правило в robots.txt всегда начинается с User-agent.
  8. Некорректные адреса. Например, путь к файлу Sitemap должен указываться полностью, включая протокол.
  9. Пустые строки между директивами. Правильная настройка robots.txt запрещает наличие пустых строк между директивами «User-agent», «Disallow» и директивами, следующими за «Disallow» в рамках текущего «User-agent».

    Пример правильного перевода строки в robots.txt:

    User-agent: Yandex
    Disallow: /*utm_
    Allow: /*id=

    User-agent: *
    Disallow: /*utm_
    Allow: /*id=

    Пример неправильного перевода строки в robots.txt:

    User-agent: Yandex

    Disallow: /*utm_

    Allow: /*id=



    User-agent: *

    Disallow: /*utm_

    Allow: /*id=

  10. Некорректный тип контента. Должен быть: text/plain.

    Ошибка, когда на уровне хостинга robots.txt имеет кодировку HTML:

    Проверить тип контента можно в инструменте Анализ документа https://tools.discript.ru/get-page/ или на сайте https://bertal.ru/.



Другие особенности работы с robots.txt

1. Страницы, закрытые с помощью файла robots.txt, могут быть проиндексированы в Google. Например, когда на них ведет много внутренних и внешних ссылок.

В таком случае в панели Google Search Console можно видеть такой отчет:

По этому вопросу в Google справочнике указано:

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

Источник: https://support.google.com/webmasters/answer/6062608

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

Если нужно закрыть внутри зоны <head> </head> документ, то устанавливается следующий код:

<meta name=”robots” content=”noindex, nofollow”/> — запрещено индексировать содержимое и переходить по ссылкам на странице;

Или (полная альтернатива)

<meta name="robots" content="none"/>

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

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



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

Многие вебмастера добавляют в комментариях к robots.txt рекламные тексты.

По сути в robots.txt можно прописать все, что угодно, однако идеальный robots.txt — это тот, в котором мало строк, но много смысла.



3. Для изображений настройка robots.txt выглядит следующим образом:

Чтобы скрыть определенное изображение от робота Google Картинок User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
Чтобы скрыть все изображения с вашего сайта от робота Картинок User-agent: Googlebot-Image
Disallow: /
Чтобы запретить сканирование всех файлов определенного типа (в данном случае GIF) User-agent: Googlebot
Disallow: /*.gif$

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



4. Рекомендуется закрывать от индексации следующие страницы:

  • Страницы входа в CMS-систему вида «/bitrix», «/login», «/admin», «/administrator», «/wp-admin».
  • Служебные папки вида «cgi-bin», «wp-icnludes», «cache», «backup».
  • Страницы авторизации, смены пароля, оформления заказа: «basket&step=», «register=», «change_password=», «logout=».
  • Результаты поиска «search», «poisk».
  • Версию для печати вида: «_print», «version=print» и аналогичные.
  • Страницы совершения действия вида «?action=ADD2BASKET», «?action=BUY».
  • Разделы с дублированным и неуникальным контентом, скажем, RSS-фиды: «feed», «rss», «wp-feed».

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

Наиболее часто дублями страниц, попавшими в индекс, являются документы с неопределенными в БД GET-параметрами. Примерами таких параметров являются UTM-метки (и прочие метки рекламных кампаний). Если на сайте не настроен rel="canonical", то потенциальные данные дубли лучше закрывать от индексации.

Список наиболее частых параметров:

  • openstat
  • from
  • gclid
  • utm_source
  • utm_medium
  • utm_campaign
  • utm_прочие
  • yclid

Следует помнить, что GET параметры могут идти после знака «?», либо после знака «&» (если их более одного). Поэтому для закрытия GET параметров необходимо для каждого знака указывать отдельное правило:

Disallow: *?register=*
Disallow: *®ister=*

Либо не указывать ни один из данных знаков (не самый лучший вариант для коротких GET параметров т.к. они могут быть частью более длинных вариантов. Например, GET параметр id входит в GET параметр page_id):

Disallow: *register=*

Пример закрытия таких страниц:

Disallow: *openstat=*
Disallow: *from=*
Disallow: *gclid=*
Disallow: *?utm_*
Disallow: *&utm_*
Disallow: *yclid=*

Пример закрытия всех GET параметров главной страницы:

Disallow: /?*

Также для закрытия страниц с неопределенными GET параметрами можно сделать следующее: закрыть на сайте все GET параметры, принудительно открыв при этом нужные GET параметры.

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

Пример использования:

Disallow: /*?* # закрываем все страницы с GET параметрами
Allow: /*?page=* # открываем для сканирования страницы пагинации
# дополнительно можно закрыть страницы пагинации, которые содержат два GET параметра
Disallow: /*?*&page=*
Disallow: /*?page=*&*

Используя сервис Screaming Frog Seo Spider можно также определить, какие еще страницы необходимо закрыть от индексации. Часто такие страницы можно найти с помощью дублей тегов и мета-тегов. Найти их помогут фильтры по дублям title/h1/description.

Также можно выгрузить проиндексированные страницы в Яндекс.Вебмастер и проверить, какие еще из них стоит исключить из индекса:



5. Одним из требований поисковиков Google и Yandex является открытие для индексации файлов JavaScript и CSS, так как они используются ими для анализа удобства сайта и его ранжирования.

Определить весь список ресурсов, которые нужно открыть для индексации, можно при помощи Google Search Console.

Для этого указываем URL для сканирования:

Далее нажимаем на ссылку «Изучить просканированную страницу»

Переходим на вкладку «Скриншот» и нажимаем на «Проверить страницу на сайте»:

Получаем результаты:

  1. Как видит страницу Google.
  2. Какие элементы JS/CSS и др. не подгрузились.

И ресурсы, требующие внимания



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

Проверить, насколько правильно составлен robots.txt, можно при помощи:



1. Нашего инструмента https://tools.discript.ru/robots-check/.

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

Инструмент позволяет скачать итоговый файл и сразу разместить его на сайте:



2. Проверкой файла robots.txt в Яндекс.Вебмастер: http://webmaster.yandex.ru/robots.xml

После начала проверки будет проанализирована каждая строка содержимого поля «текст robots.txt» и директивы, которые он содержит. Здесь же можно увидеть, какие страницы открыты для индексации, а какие — закрыты.



3. Проверкой файла robots.txt в Google: https://www.google.com/webmasters/tools/siteoverview?hl=ru

Здесь можно проверить, содержится ли в файле запрет на сканирование роботом Googlebot определенных адресов на ресурсе.



В заключение

Таким образом при работе с robots.txt необходимо помнить:

  1. Правила составления и расположения файла.
  2. Функции отдельных директив и способы их применения.
  3. Рекомендации по закрытию определенных страниц.
  4. Инструменты для проверки robots.txt: tools.discript.ru/robots-check/, а также инструменты Яндекс и Google.

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

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

Другие статьи

Отправьте заявку и уже завтра мы начнем работы.

Обязательное поле для заполнения

Обязательное поле для заполнения

Обязательное поле для заполнения

Обязательное поле

Обязательное поле для заполнения

Обязательное поле для заполнения

Обязательное поле

Спасибо за обращение!
В ближайшее время мы с вами свяжемся.