Robots txt disallow all


О чем этот документ

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

Язык требований

Ключевые слова НЕОБХОДИМО, НЕДОПУСТИМО, ТРЕБУЕТСЯ, НУЖНО, НЕ НУЖНО, СЛЕДУЕТ, НЕ СЛЕДУЕТ, РЕКОМЕНДУЕТСЯ, НЕ РЕКОМЕНДУЕТСЯ, ВОЗМОЖНО, НЕОБЯЗАТЕЛЬНО следует понимать так, как описано в документе RFC 2119.

Основные определения

Определения
Поисковый робот Поисковый робот – это служба или агент, которые сканируют веб-сайты. Поисковый робот автоматически просматривает известные URL хостов, доступные в обычном браузере. При обнаружении новых URL (например, с помощью ссылок на просканированных страницах или файлов Sitemap) их сканирование выполняется таким же образом.
Агент пользователя Средство идентификации одного или нескольких поисковых роботов.
Директивы Список действующих инструкций в файле robots.txt для одного или нескольких поисковых роботов.
URL Унифицированные адреса ресурсов по стандарту RFC 1738.
Только для Google Указанная информация касается особенностей обработки файла robots.txt поисковыми роботами Google. Она может быть неактуальна в других случаях.

Область применения

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

Местоположение файла и диапазон действия

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

Только для Google. Google также принимает файлы robots.txt для FTP-серверов и выполняет указанные в них инструкции. Доступ к таким файлам robots.txt осуществляется через FTP-протокол с использованием анонимного способа входа.

Директивы, перечисленные в файле robots.txt, действительны только в отношении того хоста, протокола и номера порта, где расположен файл.

Примеры действительных URL файла robots.txt:

Примеры URL файла robots.txt URL
http://example.com/robots.txt Действителен для:


  • http://example.com/
  • http://example.com/folder/file

Недействителен для:

  • http://other.example.com/
  • https://example.com/
  • http://example.com:8181/
http://www.example.com/robots.txt

Действителен для: http://www.example.com/

Недействителен для:

  • http://example.com/
  • http://shop.www.example.com/
  • http://www.shop.example.com/
http://example.com/folder/robots.txt Недействительный файл robots.txt. Поисковые роботы не осуществляют поиск файлов robots.txt в подкаталогах.
http://www.müller.eu/robots.txt Действителен для:

  • http://www.müller.eu/
  • http://www.xn--mller-kva.eu/

Недействителен для: http://www.muller.eu/

ftp://example.com/robots.txt

Действителен для: ftp://example.com/

Недействителен для: http://example.com/

Только для Google. Google использует файлы robots.txt для FTP-ресурсов.

http://212.96.82.21/robots.txt

Действителен для: http://212.96.82.21/

Недействителен для: http://example.com/ (даже при расположении на 212.96.82.21)

http://example.com:80/robots.txt

Действителен для:

  • http://example.com:80/
  • http://example.com/

Недействителен для: http://example.com:81/

http://example.com:8181/robots.txt

Действителен для: http://example.com:8181/

Недействителен для: http://example.com/

Обработка кодов ответа HTTP

После чтения файла robots.txt поисковый робот получает одну из этих общих инструкций:

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


Обработка кодов ответа HTTP
2xx (успешно) Коды ответов HTTP, свидетельствующие об успешном результате при сканировании с частичным доступом.
3xx (переадресация) Обычно поисковый робот следует переадресации до тех пор, пока не будет получен действительный результат (или обнаружен цикл). Выполняется определенное количество повторений (RFC 1945 для HTTP/1.0 допускает до 5 повторений), затем цикл прекращается и регистрируется ошибка 404. Переадресации к заблокированным URL в robots.txt не выполняются. Обработка логических переадресаций к файлу robots.txt на основе HTML-содержания, возвращающего коды 2xx (переадресации на основе фреймов, JavaScript или метатегов обновления), не предусмотрена и не выполняется.
4xx (ошибки клиента) Google расценивает все ошибки 4xx одинаково, предполагая, что действительный файл robots.txt отсутствует. При этом также предполагается, что ограничений в отношении содержания сайта нет, то есть разрешен полный доступ для сканирования.

5xx (ошибка сервера)

Ошибки сервера расцениваются как временные ошибки и полный запрет сканирования. Запрос будет отправляться повторно до тех пор, пока не будет получен код ответа, отличный от кода ошибки сервера. При появлении ошибки 503 (недоступно) попытки будут повторяться достаточно часто. Для временной приостановки сканирования рекомендуется предоставлять код ответа HTTP 503. Обработка постоянной ошибки сервера не определена.

Только для Google. Если Google удается определить, что сайт настроен неправильно и отображает для отсутствующих страниц ошибку 5xx вместо 404, для этого сайта она будет обрабатываться как ошибка 404.

Неудачные запросы и неполные данные Обработка файла robots.txt, который недоступен из-за проблем с DNS или сетью (тайм-аутов, неверных запросов, обрыва соединения, ошибок HTTP), не определена.
Кеширование Ответ, полученный в результате запроса файла robots.txt, обычно хранится в кеше не более суток, но может быть доступен и дольше в тех случаях, когда обновить имеющуюся в кеше версию невозможно (например из-за истечения времени ожидания или ошибок 5xx). Сохраненный в кеше ответ может передаваться другим поисковым роботам. Google может увеличить или уменьшить срок действия кеша с учетом соответствующих HTTP-заголовков.

Формат файла

Файл должен содержать обычный текст в кодировке UTF-8, состоящий из записей (строк), разделенных символами возврата каретки, возврата каретки/перевода строки или перевода строки.

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

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

Отметка последовательности байтов (BOM) в начале файла robots.txt игнорируется. Добавлять ее не обязательно.

Каждая запись состоит из поля, двоеточия и значения. Использование пробелов не обязательно, но рекомендуется для удобства чтения. Комментарии могут размещаться в любом месте файла и должны обозначаться символом #. Все содержимое, расположенное после этого знака до конца записи, расценивается как комментарий и игнорируется. Стандартный формат записи: <field>:<value><#optional-comment>


. Пробелы в начале и конце записи игнорируются.

Для элемента <field> регистр не учитывается. Элемент <value> может быть чувствительным к регистру (в зависимости от элемента <field>).

Обработка элементов <field> с простыми ошибками или опечатками (useragent вместо user-agent и т. п.) не описана. Некоторые агенты пользователя обрабатывают такие ошибки правильно.

Иногда поисковый робот не рассматривает файлы больше определенного размера. Не исключено, что контент, превышающий заданное значение, при сканировании будет пропущен. В настоящее время максимальный размер файла, установленный Google, составляет 500 КБ.

Формальный синтаксис и определение

Это описание в форме Бэкуса-Наура (BNF). В нем используются правила RFC 822. Единственное исключение: символ | применяется для обозначения альтернатив. Литералы заключаются в кавычки; круглые скобки ( и ) используются для группировки элементов, а [квадратные скобки] – для дополнительных элементов. Перед элементами может находиться <n>* для обозначения n или более повторов следующего элемента; значение n по умолчанию – 0.


 robotstxt = *entries entries = *( ( <1>*startgroupline  *(groupmemberline | nongroupline | comment)  | nongroupline  | comment) ) startgroupline = [LWS] "user-agent" [LWS] ":" [LWS] agentvalue [comment] EOL groupmemberline = [LWS] (  pathmemberfield [LWS] ":" [LWS] pathvalue  | othermemberfield [LWS] ":" [LWS] textvalue) [comment] EOL nongroupline = [LWS] (  urlnongroupfield [LWS] ":" [LWS] urlvalue  | othernongroupfield [LWS] ":" [LWS] textvalue) [comment] EOL comment = [LWS] "#" *anychar agentvalue = textvalue  pathmemberfield = "disallow" | "allow" othermemberfield = () urlnongroupfield = "sitemap" othernongroupfield = ()  pathvalue = "/" path urlvalue = absoluteURI textvalue = *(valuechar | SP) valuechar = <any UTF-8 character except ("#" CTL)> anychar = <any UTF-8 character except CTL> EOL = CR | LF | (CR LF) 

Синтаксис для absoluteURI, CTL, CR, LF и LWS определен в RFC 1945. Синтаксис для path – в RFC 1808.

Группировка записей

Существуют различные типы записей в зависимости от элемента <field>:

  • «начало группы»;
  • «член группы»;
  • «вне группы».

Все записи «член группы», расположенные между двумя записями «начало группы», обрабатываются совместно. Единственный элемент «начало группы» – user-agent. После записей «член группы» следует несколько строк «начало группы» подряд. Записи «член группы», перед которыми отсутствует «начало группы», игнорируются. Все записи «вне группы» действительны и независимы.

Допустимые элементы <field>, которые будут рассмотрены далее в этом документе:


  • user-agent («начало группы»);
  • disallow (действительно только как «член группы»);
  • allow (действительно только как «член группы»);
  • sitemap («вне группы»).

Все остальные элементы <field> могут быть проигнорированы.

В элементе user-agent (начало группы) указывается, для какого поискового робота действительна эта группа. Для отдельного поискового робота действительна только одна группа записей. Их приоритет будет рассмотрен ниже в данном документе.

Примеры групп:

 user-agent: a disallow: /c  user-agent: b disallow: /d  user-agent: e user-agent: f disallow: /g 

Определены три отдельные группы: первая для a, вторая для b, а третья для e и f. В каждой из них имеется запись «член группы». Обратите внимание, как использование дополнительных пробелов (пустых строк) упрощает чтение.

Приоритет для агентов пользователей

Для отдельного поискового робота действительна только одна группа записей «член группы». Чтобы определить ее, он должен найти группу, для которой указан наиболее строгий, но подходящий агент пользователя. Все остальные группы записей игнорируются. В обозначении агента пользователя не учитывается регистр. Весь неподходящий текст игнорируется. Например, googlebot/1.2


и googlebot* аналогичны googlebot. Порядок групп в файле robots.txt не учитывается.

Пример

Предположим, что есть следующий файл robots.txt:

 user-agent: googlebot-news (group 1)  user-agent: * (group 2)  user-agent: googlebot (group 3) 

Поисковый робот выберет нужную группу следующим образом:

Группы записей, проверяемые поисковыми роботами
Googlebot News Проверяет группу записей 1. Выполняется только строго определенная группа записей, все остальные игнорируются.
Робот Googlebot (веб-поиск) Проверяет группу записей 3.
Googlebot Images Проверяет группу записей 3. Отдельной группы googlebot-images нет, будет выбран более общий вариант.
Робот Googlebot News (при сканировании изображений) Проверяет группу записей 1. Будет учитываться только соответствующая группа.
Otherbot (веб-поиск) Проверяет группу записей 2.
Otherbot (для новостей) Проверяет группу записей 2. Даже если имеется запись для этого робота, она действительна только при точном соответствии.

Также см. эту статью.

Записи «член группы»

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

Значение [path], если оно указано, рассматривается в соответствии с веб-сайтом, для которого был получен файл robots.txt (используется тот же протокол, номер порта, хост и имена доменов). Значение пути должно начинаться с символа «/» для обозначения корневого каталога. Путь чувствителен к регистру. Подробнее написано в разделе «Подбор URL с учетом значений пути» ниже.

disallow

Директива disallow определяет конкретные пути, которые должны быть недоступны указанным поисковым роботам. Если путь не указан, она игнорируется.

Использование:

 disallow: [path] 

allow

Директива allow определяет пути, которые должны быть доступны указанным поисковым роботам. Если путь не указан, она игнорируется.

Использование:

 allow: [path] 

Подбор URL с учетом значений пути

Значение пути используется для определения того, должно ли правило применяться к конкретному URL на сайте. За исключением подстановочных знаков путь должен совпадать с началом любого действующего и подходящего URL. Не 7-битные символы ASCII в пути могут быть добавлены как символы UTF-8 или как экранированные значения в кодировке UTF-8 (см. RFC 3986).

Google, Bing, Yahoo и Ask поддерживают определенные подстановочные знаки для значений путей. Вот их полный список:

  •  * обозначает 0 или более экземпляров любого действительного символа.
  •  $ обозначает конец URL.
Примеры
/ Соответствует корневому каталогу и всем URL более низкого уровня.
/* Эквивалент /. Подстановочный знак игнорируется.
/fish

Соответствует:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

Не соответствует:

  • /Fish.asp
  • /catfish
  • /?id=fish
/fish*

Эквивалент /fish. Подстановочный знак игнорируется.

Соответствует:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

Не соответствует:

  • /Fish.asp
  • /catfish
  • /?id=fish
/fish/

Косая черта означает, что соответствуют все элементы в этой папке.

Соответствует:

  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm

Не соответствует:

  • /fish
  • /fish.html
  • /Fish/Salmon.asp
/*.php

Соответствует:

  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/

Не соответствует:

  • / (даже если это /index.php)
  • /windows.PHP
/*.php$

Соответствует:

  • /filename.php
  • /folder/filename.php

Не соответствует:

  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php

Соответствует:

  • /fish.php
  • /fishheads/catfish.php?parameters

Не соответствует: /Fish.PHP

Записи вне групп, поддерживаемые Google

sitemap

Поддерживается Google, Ask, Bing и Yahoo. Описание см. на сайте sitemaps.org.

Использование:

 sitemap: [absoluteURL] 

[absoluteURL] указывает на карту сайта, ее указатель или другой соответствующий URL, хост которого не обязательно должен быть тем же, что и у файла robots.txt. Записей sitemap может быть несколько. Поскольку записи не входят в группы, они не связаны с определенными агентами пользователя и доступны для всех поисковых роботов, которые не заблокированы.

developers.google.com

Для чего нужен robots.txt

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

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

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

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

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

Вернемся к robots. Правилами в этой файле можно закрыть или разрешить доступ к следующим типам файлов:

  • Неграфические файлы. В основном это html файлы, на которых содержится какая-либо информация. Вы можете закрыть дубликаты страниц, или страницы, которые не несут никакой полезной информации (страницы пагинации, страницы календаря, страницы с архивами, страницы с профилями и т.д.).
  • Графические файлы. Если вы хотите, чтобы картинки сайта не отображались в поиске, вы можете это прописать в файле robots.
  • Файлы ресурсов. Также с помощью robots вы можете заблокировать индексацию различных скриптов, файлы стилей CSS и другие маловажные ресурсы. Но не стоит блокировать ресурсы, которые отвечают за визуальную часть сайта для посетителей (например, если вы закроете css и js сайта, которые выводят красивые блоки или таблицы, этого не увидит поисковой робот, и будет ругаться на это).

Чтобы наглядно показать, как работает robots, посмотрите на картинку ниже:

Как работает robots.txt
Поисковой робот, следуя на сайт, смотрит на правила индексации, затем начинает индексацию по рекомендациям файла.
Как работает роботс 2
В зависимости от настроек правил, поисковик знает, что можно индексировать, а что нет.

Синтаксис файла robots.txt

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

Директива User-agent

User-agent — Этой директивой вы задает название роботу, которому следует использовать рекомендации в файле. Этих роботов официально в мире интернета — 302 штуки. Вы конечно можете прописать правила для всех по отдельности, но если у вас нет времени на это, просто пропишите:

User-agent: *

*-в данном примере означает «Все». Т.е. ваш файл robots.txt, должен начинаться с того, «для кого именно» предназначен файл. Чтобы не заморачиваться над всеми названиями роботов, просто пропишите «звездочку» в директиве user-agent.

Приведу вам подробные списки роботов популярных поисковых систем:

Google — Googlebot — основной робот

Остальные роботы Google

Яндекс — YandexBot — основной индексирующий робот;

Остальные роботы Яндекса

Директивы Disallow и Allow

Disallow — самое основное правило в robots, именно с помощью этой директивы вы запрещаете индексировать определенные места вашего сайта. Пишется директива так:

Disallow:

Очень часто можно наблюдать директиву Disallow: пустую, т.е. якобы говоря роботу, что ничего не запрещено на сайте, индексируй что хочешь. Будьте внимательны! Если вы поставите / в disallow, то вы полностью закроете сайт для индексации. 

Поэтому самый стандартный вариант robots.txt, который «разрешает индексацию всего сайта для всех поисковых систем» выглядит так:

User-Agent: * Disallow:

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

По правилам robots, директива disallow должна быть обязательна.

Этой директивой можно запретить как папку, так и отдельный файл.

Если вы хотите запретить папку вам следует написать:

Disallow: /papka/

Если вы хотите запретить определенный файл:

Disallow: /images/img.jpg

Если вы хотите запретить определенные типы файлов:

Disallow: /*.png$

!Регулярные выражения не поддерживаются многими поисковыми системами. Google поддерживает.

Allow — разрешающая директива в Robots.txt. Она разрешает роботу индексировать определенный путь или файл в запрещающей директории. До недавнего времени использовалась только Яндексом. Google догнал это, и тоже начал ее использовать. Например:

Allow: /content Disallow: /

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

Allow: /themplate/*.js Allow: /themplate/*.css Disallow: /themplate

эти значения разрешают индексировать все файлы CSS и JS на сайте, но запрещают индексировать все в папке с вашим шаблоном. За последний год Google очень много отправил писем вебмастерам такого содержания:

Googlebot не может получить доступ к файлам CSS и JS на сайте

И соответствующий комментарий: Мы обнаружили на Вашем сайте проблему, которая может помешать его сканированию. Робот Googlebot не может обработать код JavaScript и/или файлы CSS из-за ограничений в файле robots.txt. Эти данные нужны, чтобы оценить работу сайта. Поэтому если доступ к ресурсам будет заблокирован, то это может ухудшить позиции Вашего сайта в Поиске.

Если вы добавите две директивы allow, которые написаны в последнем коде в ваш Robots.txt, то вы не увидите подобных сообщений от Google.

Использование спецсимволов в robots.txt

Теперь про знаки в директивах. Основные знаки (спецсимволы) в запрещающих или разрешающих это /,*,$

Про слеши (forward slash) «/»

Слеш очень обманчив в robots.txt. Я несколько десятков раз наблюдал интересную ситуацию, когда по незнанию в robots.txt добавляли:

User-Agent: * Disallow: /

Потому, что они где-то прочитали о структуре сайта и скопировали ее себе на сайте. Но, в данном случае вы запрещаете индексацию всего сайта. Чтобы запрещать индексацию именно каталога, со всеми внутренностями вам обязательно нужно ставить / в конце. Если вы например пропишите Disallow: /seo, то абсолютно все ссылки на вашем сайте, в котором есть слово seo — не будут индексироваться. Хоть это будет папка /seo/, хоть это будет категория /seo-tool/, хоть это будет статья /seo-best-of-the-best-soft.html, все это не будет индексироваться.

Внимательно смотрите на все / в вашем robots.txt

Всегда в конце директорий ставьте /. Если вы поставите / в Disallow, вы запретите индексацию всего сайта, но если вы не поставите / в Allow, вы также запретите индексацию всего сайта. / — в некотором понимании означает «Все что следует после директивы /».

Про звездочки * в robots.txt

Спецсимвол * означает любую (в том числе пустую) последовательность символов. Вы можете ее использовать в любом месте robots по примеру:

User-agent: * Disallow: /papka/*.aspx  Disallow: /*old

Запрещает все файлы с расширением aspx в директории papka, также запрещает не только папку /old, но и директиву /papka/old. Замудрено? Вот и я вам не рекомендую баловаться символом * в вашем robots.

По умолчанию в файле правил индексации и запрета robots.txt стоит * на всех директивах! 

Про спецсимвол $

Спецсимвол $ в robots заканчивает действие спецсимвола *. Например:

Disallow: /menu$

Это правило запрещает ‘/menu’, но не запрещает ‘/menu.html’, т.е. файл запрещает поисковым системам только директиву /menu, и не может запретить все файлы со словом menu в URL`е.

Директива host

Правило host работает только в Яндекс, поэтому является не обязательным, оно определяет основной домен из ваших зеркал сайта, если таковы есть. Например у вас есть домен dom.com, но и так же прикуплены и настроены следующие домены: dom2.com, dom3,com, dom4.com и с них идет редирект на основной домен dom.com

Чтобы Яндексу быстрее определить, где из них главных сайт (хост), пропишите директорию host в ваш robots.txt:

Host: staurus.net

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

Запись host должны быть одна, и если нужно, с прописанным портом. (Host: staurus.net:8080)

Директива Crawl-delay

Эта директива была создана для того, чтобы убрать возможность нагрузки на ваш сервер. Поисковые роботы могут одновременно делать сотни запросов на ваш сайт и если ваш сервер слабый, это может вызвать незначительные сбои. Чтобы такого не произошло, придумали правило для роботов Crawl-delay — это минимальный период между загрузками страницы вашего сайта. Стандартное значение для этой директивы рекомендуют ставить 2 секунды. В Robots это выглядит так:

Crawl-delay: 2

Эта директива работает для Яндекса. В Google вы можете выставить частоту сканирования в панеле вебмастера, в разделе Настройки сайта, в правом верхнем углу с «шестеренкой».

Директива Clean-param

Этот параметр тоже только для Яндекса. Если адреса страниц сайта содержат динамические параметры, которые не влияют на их содержимое (например: идентификаторы сессий, пользователей, рефереров и т. п.), вы можете описать их с помощью директивы Clean-param.

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

www.site.com/some_dir/get_book.pl?ref=site_1&book_id=123
www.site.com/some_dir/get_book.pl?ref=site_2&book_id=123
www.site.com/some_dir/get_book.pl?ref=site_3&book_id=123

Параметр ref используется только для того, чтобы отследить с какого ресурса был сделан запрос и не меняет содержимое, по всем трем адресам будет показана одна и та же страница с книгой book_id=123. Тогда, если указать директиву следующим образом:

User-agent: Yandex Disallow: Clean-param: ref /some_dir/get_book.pl

робот Яндекса сведет все адреса страницы к одному:
www.site.com/some_dir/get_book.pl?ref=site_1&book_id=123,
Если на сайте доступна страница без параметров:
www.site.com/some_dir/get_book.pl?book_id=123
то все сведется именно к ней, когда она будет проиндексирована роботом. Другие страницы вашего сайта будут обходиться чаще, так как нет необходимости обновлять страницы:
www.site.com/some_dir/get_book.pl?ref=site_2&book_id=123
www.site.com/some_dir/get_book.pl?ref=site_3&book_id=123

#для адресов вида: www.site1.com/forum/showthread.php?s=681498b9648949605&t=8243 www.site1.com/forum/showthread.php?s=1e71c4427317a117a&t=8243  #robots.txt будет содержать: User-agent: Yandex Disallow: Clean-param: s /forum/showthread.php

Директива Sitemap

Этой директивой вы просто указываете месторасположение вашего sitemap.xml. Робот запоминает это, «говорит вам спасибо», и постоянно анализирует его по заданному пути. Выглядит это так:

Sitemap: http://staurus.net/sitemap.xml

Общие вопросы и рекомендации по robots

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

Правильный robots.txt

Очень много но в этом слове «правильный», ведь для одного сайта на одной CMS он будет правильный, а на другой CMS — будет выдавать ошибки. «Правильно настроенный» для каждого сайта индивидуальный. В Robots.txt нужно закрывать от индексации те разделы и те файлы, которые не нужны пользователям и не несут никакой ценности для поисковиков. Самый простой и самый правильный вариант robots.txt

User-Agent: * Disallow:  Sitemap: http://staurus.net/sitemap.xml  User-agent: Yandex Disallow:  Host: site.com

В этом файле стоят такие правила: настройки правил запрета для всех поисковых систем (User-Agent: *), полностью разрешена индексация всего сайта («Disallow:» или можете указать «Allow: /»), указан хост основного зеркала для Яндекса (Host: site.ncom) и месторасположение вашего Sitemap.xml (Sitemap: .

Robots.txt для WordPress

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

User-Agent: * Allow: /wp-content/uploads/ Allow: /wp-content/*.js$ Allow: /wp-content/*.css$ Allow: /wp-includes/*.js$ Allow: /wp-includes/*.css$ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: /xmlrpc.php Disallow: /template.html Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content Disallow: /category Disallow: /archive Disallow: */trackback/ Disallow: */feed/ Disallow: /?feed= Disallow: /job Disallow: /?s= Host: staurus.net Sitemap: http://staurus.net/sitemap.xml

Тут очень много настроек, давайте их разберем вместе.

Allow в WordPress. Первые разрешающие правила для контента, который нужен пользователям (это картинки в папке uploads), и роботам (это CSS и JS для отображения страниц). Именно по css и js часто ругается Google, поэтому мы оставили их открытыми. Можно было использовать метод всех файлов просто вставив «/*.css$», но запрещающая строка именно этих папок, где лежат файлы — не разрешала использовать их для индексации, поэтому пришлось прописать путь к запрещающей папке полностью.

Allow всегда указывает на путь запрещенного в Disallow контента. Если у вас что-то не запрещено, не стоит ему прописывать allow, якобы думая, что вы даете толчок поисковикам, типа «Ну на же, вот тебе URL, индексируй быстрее». Так не получится.

Disallow в WordPress.  Запрещать в CMS WP нужно очень многое. Множество различных плагинов, множество различных настроек и тем, куча скриптов и различных страниц, которые не несут в себе никакой полезной информации. Но я пошел дальше и совсем запретил индексировать все на своем блоге, кроме самих статей (записи) и страниц (об Авторе, Услуги). Я закрыл даже категории в блоге, открою, когда они будут оптимизированы под запросы и когда там появится текстовое описание для каждой из них, но сейчас это просто дубли превьюшек записей, которые не нужны поисковикам.

Ну Host и Sitemap стандартные директивы. Только нужно было вынести host отдельно для Яндекса, но я не стал заморачиваться по этому поводу. Вот пожалуй и закончим с Robots.txt для WP.

Как создать robots.txt

Это не так сложно как кажется на первый взгляд. Вам достаточно взять обычный блокнот (Notepad) и скопировать туда данные для вашего сайта по настройкам из этой статьи. Но если и это для вас сложно, в интернете есть ресурсы, которые позволяют генерировать роботс для ваших сайтов:

Генератор Robots от pr-cy — Один из самых простых генераторов Robots в Рунете. Просто укажите в инструменте ссылки, которым не стоит попадать в индекс и все.

Создание Robots от htmlweb — хороший генератор robots с возможность добавления host и Sitemap.

Где проверить свой robots.txt

Это один из самых важный и обязательных пунктов перед отправкой файла роботс на свой сервер — проверка. Если вы, что-то сделали не правильно, вы можете «похоронить» свой сайт в просторах поисковиков. Обычным ляпом, как это случается, запретить индексацию всего сайта.

Чтобы этого не произошло, вам стоит проверить свой файл запретов в одном из удобных проверочных сервисов:

Google Webmaster tool

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

Никто не расскажет больше про ваш Robots.txt, как эти товарищи. Ведь именно для них вы и создаете свой «запретный файлик».

Теперь поговорим о некоторых мелких ошибках, которые могут быть в robots.

  • «Пустая строка» — недопустимо делать пустую строку в директиве user-agent.
  • При конфликте между двумя директивами с префиксами одинаковой длины приоритет отдается директиве Allow.
  • Для каждого файла robots.txt обрабатывается только одна директива Host. Если в файле указано несколько директив, робот использует первую.
  • Директива Clean-Param является межсекционной, поэтому может быть указана в любом месте файла robots.txt. В случае, если директив указано несколько, все они будут учтены роботом.
  • Шесть роботов Яндекса не следуют правилам Robots.txt (YaDirectFetcher, YandexCalendar, YandexDirect, YandexDirectDyn, YandexMobileBot, YandexAccessibilityBot). Чтобы запретить им индексацию на сайте, следует сделать отдельные параметры user-agent для каждого из них.
  • Директива User-agent, всегда должна писаться выше запрещающей директивы.
  • Одна строка, для одной директории. Нельзя писать множество директорий на одной строке.
  • Имя файл должно быть только таким: robots.txt. Никаких Robots.txt, ROBOTS.txt, и так далее. Только маленькие буквы в названии.
  • В директиве host следует писать путь к домену без http и без слешей. Неправильно: Host: http://www.site.ru/, Правильно: Host: www.site.ru
  • При использовании сайтом защищенного протокола https в директиве host (для робота Яндекса) нужно обязательно указывать именно с протоколом, так Host: https://www.site.ru

Эта статья будет обновляться по мере поступления интересных вопросов и нюансов.

С вами был, ленивый Staurus.

staurus.net

Общие правила robots.txt

Во-первых, сам файл robots.txt должен иметь кодировку ANSI.

Во-вторых, нельзя использовать для написания правил никаких национальных алфавитов, возможна только латиница.

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

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

Директивы и блоки правил разделяются переносом строки. Единственное допущение, это комментарии.

Комментирование в robots.txt

Для комментирования используется символ ‘#’. Если вы поставите в начале строки символ «решётки», то до конца строки всё содержимое игнорируется поисковыми роботами.

User-agent: *
Disallow: /css #пишем комментарий
#Пишем ещё один комментарий
Disallow: /img

Секции в файле robots.txt

При прочтении файла роботом, используется только секция адресованная роботу этой поисковой системы, то есть, если в секции, user-agent указано имя поисковой системы Яндекс, то его робот прочитает только адресованную ему секцию, игнорируя другие, в частности и секцию с директивой для всех роботов – User-agent:*.

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

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

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

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

Директивы, что это?

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

Секция файла robots.txt состоит из отдельных команд,
директив. Общий синтаксис директив таков:

[Имя_директивы]:[необязательный пробел][значение][необязательный пробел]

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

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

Директива Disallow

Наиболее используемая директива в файле robots.txt, это «Disallow» — запрещающая. Директива «Disallow» запрещает индексацию указанного в ней пути. Это может быть отдельная страница, страницы, содержащие указанную «маску» в своём URL`е (пути), часть сайта, отдельная директория (папка) или сайт целиком.

User-agent: Yandex
Disallow: /

Специальные символы

Указанный выше пример запрещает индексацию всего сайта для роботов поисковой системы Яндекс.

Теперь, для лучшего понимания остальных примеров, рассмотрим и поясним, что такое специальные символы в файле robots.txt. К специальным символам относятся знаки (*)-звёздочка,  ($)-доллар и (#)-решётка.

«*» — звёздочка означает – «любое количество символов». То есть, путь /folder* одинаков по своему значению с «/folders», «/folder1», «/folder111», «/foldersssss» или «/folder». Роботы, при чтении правил, автоматически дописывают знак «*». В примере, приведённом ниже, обе директивы абсолютно равнозначны:

Disallow: /news
Disallow: /news*

«$» — знак доллара запрещает роботам при чтении директив автоматически дописывать символ «*» (звёздочка) в конце директивы. Другими словами, символ «$» означает конец строки сравнения. То есть, в нашем примере мы запрещаем индексацию папки «/folder», но не запрещаем в папках «/folder1», «/folder111» или «/foldersssss»:

User-agent: *
Disallow: /folder$

«#» — (шарп) знак комментария. Всё, что написано после этого значка, в одной с ним строке, игнорируется поисковыми системами.

Директива Allow

Директива ALLOW файла robots.txt противоположна по своему значению директиве DISSALOW, директива ALLOW разрешающая. В примере ниже показано, что мы запрещаем индексировать весь сайт кроме папки /folder:

User-agent: *
Allow: /folder
Disallow: /

Пример одновременного использования «Allow», «Disallow» и приоритетность

Не забывайте, о понимании приоритетности при запретах и разрешениях, при указании директив. Раньше приоритет указывался порядком объявления запретов и разрешений. Сейчас приоритет определяется указанием максимально существующего пути в пределах одного блока для робота поисковой системы (User-agent), в порядке увеличения длинны пути и месту указания директивы, чем длиннее путь, тем приоритетнее:

User-agent: *
Allow: /folders
Disallow: /folder

В приведённом примере выше разрешена индексация URL`ов начинающихся с «/folders», но запрещена в путях, которые имеют в своих URL`ах начало «/folder», «/folderssss» или «/folder2». В случае попадания одинакового пути под обе директивы «Allow» и «Disallow», предпочтение отдаётся директиве «Allow».

Пустое значение параметра в директивах «Allow» и «Disallow»

Встречаются ошибки WEB-мастеров, когда в файле robots.txt в директиве «Disallow»
забывают указать символ «/». Это является неправильным, ошибочным трактованием значений директив и их синтаксиса. В результате, запрещающая директива становится разрешающей: «Disallow:» абсолютно идентична «Allow: /». Правильный запрет на индексацию всего сайта выглядит так:

Disallow: /

То же самое можно сказать и об «Allow:». Директива «Allow:» без символа «/» запрещает индексацию всего сайта, так же как и «Disallow: /».

Директива Sitemap

По всем канонам SEO-оптимизации, необходимо использовать карту сайта (SITEMAP) в формате XML и предоставлять её поисковым системам.

Несмотря на функциональность «кабинетов для WEB-мастеров» в поисковых системах, необходимо заявлять о присутствии sitemap.xml и в robots.txt с помощью директивы «SITEMAP». Поисковые роботы при обходе вашего сайта увидят указание на файл sitemap.xml и будут обязательно использовать его при следующих обходах. Пример использования директивы sitemap в файле robots.txt:

User-agent: *
Sitemap: http://www.domainname.zone/sitemap.xml

Директива Host

Ещё одной важной директивой robots.txt является директива HOST.

Считается, что не все поисковые системы её распознают. Но «Яндекс» указывает, что читает эту директиву, а Яндекс в России является основным «поисковым кормильцем», поэтому не будем игнорировать директиву «host».

Эта директива говорит поисковым системам, какой домен является главным зеркалом. Все мы знаем, что сайт может иметь несколько адресов. В URL сайта может использоваться или не использоваться префикс WWW или сайт может иметь несколько доменных имён, например, domain.ru, domain.com, domen.ru, www.domen.ru. Вот именно в таких случаях мы и сообщаем поисковой системе в файле robots.txt с помощью директивы host, какое из этих имён является главным. Значением директивы является само имя главного зеркала. Приведём пример. Мы имеем несколько доменных имён (domain.ru, domain.com, domen.ru, www.domen.ru) и все они перенаправляют посетителей на сайт www.domen.ru, запись в файле robots.txt будет выглядеть так:

User-agent: *
Host: www.domen.ru

Если вы хотите, чтобы ваше главное зеркало было без префикса (WWW), то, соответственно, следует указать в директиве имя сайта без префикса.

Директива HOST решает проблему дублей страниц, с которой очень часто сталкиваются WEB-мастера и SEO-специалисты. Поэтому директиву HOST нужно использовать обязательно, если вы нацелены на русскоязычный сегмент и вам важно ранжирование вашего сайта в поисковой системе «Яндекс». Повторимся, на сегодня о чтении этой директивы заявляет только «Яндекс». Для указания главного зеркала в других поисковых системах необходимо воспользоваться настройками в кабинетах WEB-мастеров. Не забывайте, что имя главного зеркала должно быть указано корректно (правильность написания, соблюдение кодировки и синтаксиса файла robots.txt). В файле эта директива допускается только один раз. Если вы по ошибке укажете её несколько раз, то роботы учтут только первое вхождение.

Директива Crawl-delay

Данная директива является технической, командой поисковым роботам, как часто нужно посещать ваш сайт. Точнее, директива Crawl-delay указывает минимальный перерыв между посещениями вашего сайта роботами (краулерами поисковых систем). Зачем указывать это правило? Если роботы заходят к вам очень часто, а новая информация на сайте появляется намного реже, то со временем поисковые системы привыкнут к редкому изменению информации на вашем сайте и будут посещать вас значительно реже, чем хотелось бы вам. Это поисковый аргумент в пользу использования директивы «Crawl-delay». Теперь технический аргумент. Слишком частое посещение вашего сайта роботами создаёт дополнительную нагрузку на сервер, которая вам совсем не нужна. Значением директивы лучше указывать целое число, но сейчас некоторые роботы научились читать и дробные числа. Указывается время в секундах, например:

Crawl-delay: 9

или

User-agent: Yandex
Crawl-delay: 5.5

Директива Clean-param

Необязательная директива «Clean-param» указывает поисковым роботам параметры адресов сайта, которые не нужно индексировать и следует воспринимать, как одинаковые URL. Например, у вас одни и те же страницы выводятся по разным адресам, отличающимся одним или несколькими параметрами:

www.domain.zone/folder/page/
www.domain.zone/index.php?folder=folder&page=page1/
www.domain.zone/ index.php?folder=1&page=1

Поисковые роботы будут сканировать все подобные страницы и заметят, что страницы одинаковые, содержат один и тот же контент. Во-первых, это создаст путаницу в структуре сайта при индексации. Во-вторых, дополнительная нагрузка на сервер возрастёт. В третьих, скорость сканирования заметно упадёт. Чтобы избежать этих неприятностей и используется директива «Clean-param». Синтаксис следующий:

Clean-param: param1[&param2&param3&param4& ... &param*N] [Путь]

Директиву «Clean-param», как и «Host» читают не все поисковые системы. Но Яндекс её понимает.

Ошибки, которые часто встречаются в robots.txt

  • Файл robots.txt находится не в корне сайта
  • Ошибка в имени файла robots.txt
  • Использование недопустимых символов в robot.txt
  • Ошибки синтаксиса robots.txt
  • Перечисление нескольких роботов одной строкой в директиве User-agent
  • User-agent с пустым значением
  • Нескольких значений в директиве Disallow
  • Несоблюдение приоритетов директив в robots.txt
  • Поисковые системы и robots.txt
  • Ошибочный синтаксис комментариев в robots.txt
  • Чередование строчных и прописных букв в именах директивах

Файл robots.txt находится не в корне сайта

Файл robots.txt должен размещаться в корне сайта, только в корневой директории. Все остальные файлы с таким же именем, но находящиеся в других папках (директориях) игнорируются поисковыми системами.

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

Имя файла пишется маленькими буквами (нижний регистр) и должен называться robots.txt. Все остальные варианты считаются ошибочными и поисковые стсемы будут вам сообщать об отсутствии файла. Частые ошибки выглядят так:

ROBOTS.txt
Robots.txt
robot.txt

Использование недопустимых символов в robot.txt

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

Ошибки синтаксиса robots.txt

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

Перечисление нескольких роботов одной строкой в директиве User-agent

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

User-agent: Yandex, Googlebot, Bing

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

User-agent: *

User-agent с пустым значением

Директива User-agent не может иметь пустое значение. Пустыми могут быть только «Allow» и «Disallow» и то с учётом того, что меняют своё значение. Указание директивы User-agent с пустым значением является грубейшей ошибкой.

Нескольких значений в директиве Disallow

Реже встречающаяся ошибка, но, тем не менее, периодически её можно видеть на сайтах, это указание нескольких значений в директивах Allow и Disallow, например:

Disallow: /folder1  /folder2  /folder3

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

Disallow: /folder1
Disallow: /folder2
Disallow: /folder3

Несоблюдение приоритетов директив в robots.txt

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

Поисковые системы и robots.txt

Директивы в файле robots.txt носят рекомендательный характер для поисковых систем. Это значит, что правила прочтения могут периодически меняться или дополняться. Так же помните, что каждая поисковая система по-своему обрабатывает директивы файла. И не все директивы каждая из поисковых систем читает. Например, директиву «Host» сегодня читает только Яндекс. При этом Яндекс не гарантирует, что имя домена указанное, как главное зеркало в директиве Host обязательно будет назначено главным, но утверждает, что приоритет указанному имени в директиве будет отдаваться.

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

В основном, все ошибки в файле robots.txt возникают из-за неаккуратности, неряшливости пишущего директивы. Чтобы избегать основного количества ошибок, соблюдайте «правила хорошего тона». Ошибками из-за неряшливости считаются следующие ошибки:

Ошибочный синтаксис комментариев в robots.txt

Комментирование служит для напоминания WEB-мастеру, зачем и почему он закрыл или открыл определённый путь для индексации. Принято писать поясняющий комментарий после объявленной директивы с новой строки:

User-agent: *
# для всех роботов (это комментарий)

Ни в коем случае не пишите комментарий в самой директиве:

Disallow: #это комментарий / folder

В этом случае вы комментируете, то есть закрываете от роботов и содержимое директивы. Остаётся Disallow с пустым содержанием. Что означает такая запись и как её интерпретируют поисковые системы, вы уже знаете.

Чередование строчных и прописных букв в именах директивах

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

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

Удачного Вам продвижения своих сайтов!

Знак (#) — решётка, октоторп (от латыни octothorpe — восемь концов), хеш, знак номера, диез (или шарп (английское sharp), из-за внешнего сходства этих двух символов), знак фунта (знак # часто используют, если отсутствует техническая возможность ввода символа фунта).

faqed.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.