- Ошибки самописанных движков
- Пустая строка после User-agent
- Все команды robots.txt в одну строку
- Злоупотребление командами в robots.txt
- Несколько строк User-agent подряд
- Имя файла "роботов": Robots.txt vs robots.txt
- Многократные пустые строки в robots.txt
- "Чересстрочная" конструкция robots.txt
- Повторение одинаковых блоков для разных юзер-агентов
- Отсутствие пустой строки между блоками директив robots.txt
- Роботс.тхт и специальные программы и сервисы для его создания
- Ускорение индексации и robots.txt
- Файл robots.txt в сайтах SEO-компаний Беларуси
- Неправильная последовательность директив в robots.txt
- Пустой блок директив в robots.txt
- Неудачный шаблон
- и др...
Пустая строка между User-agent и директивами robots.txt
http://www.shkaffkupe.ru/robots.txt - 2004 - Google - 183 / Yandex - 6 / Rambler - 2 *
User-agent: Yandex
Disallow: /index.php?menu_id=122
Disallow: /calc/
Disallow: /index.php?menu_id=188
Disallow: /index.1.htm
Disallow: /about.php
Disallow: /contact.php
Disallow: /gallery.php
Disallow: /index.1.php
Disallow: /inside.php
Disallow: /mater.php
Disallow: /price.php
Disallow: /zakaz.php
Disallow: /backlinks.html
Disallow: /linkexch.php
Disallow: /resurs.txt
Disallow: /inc/
Disallow: /gallery/
Disallow: /what_is_it.htm
Disallow: /index.php?menu_id=104
Host: www.shkaffkupe.ru
Sitemap: http://www.shkaffkupe.ru/sitemap.xml
User-agent: *
Disallow: /index.php?menu_id=122
Disallow: /index.php?menu_id=123
Disallow: /calc/
Disallow: /index.php?menu_id=188
Disallow: /index.1.htm
Disallow: /about.php
Disallow: /contact.php
Disallow: /gallery.php
Disallow: /index.1.php
Disallow: /inside.php
Disallow: /mater.php
Disallow: /price.php
Disallow: /zakaz.php
Disallow: /backlinks.html
Disallow: /linkexch.php
Disallow: /resurs.txt
Disallow: /inc/
Disallow: /gallery/
Disallow: /index.php?menu_id=104
Главная ошибка - между строкой User-agent: * и User-agent: * и следующей директивой имеется пустая строка, которая по правилам robots.txt считается "разделительной" (относительно блоков описаний). Это значит, что спрогнозировать применимость следующих за пустой строкой директив - нельзя. Косвенно данную ошибку подтверждает значения индексации в Rambler.
Пустые строки в блоке директив robots.txt (сайт на WordPress)
http://professia.by/robots.txt - 78 / 59 / 68
User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /feed/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /comments
User-agent: Yandex
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /feed/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /comments
Host: professia.by
Sitemap: http://professia.by/sitemap.xml.gz
Пустые строки между директивами также не допустимы, т.к. робот считает, что начинается описание для следующего юзер-агента, а его не находит и в результате спрогнозировать "восприятие" подобных "роботов" - сложно.
Директива Host в начале блока описаний для User-agent: *
http://www.lestshop.ru/robots.txt - 2006 - Google - 272 / Яндекс - 3 / Rambler - 43
User-agent: *
Host: www.lestshop.ru
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /img/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: /old/
Disallow: /?
Disallow: /?2
Disallow: /*?
Disallow: /index.php
Disallow: /?2f4dc3cce5bb551a9523f9ea93d83623=6d17a4fd9dd8f05179f7246a97b6cac6
Disallow: /?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /stepladders.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /ladder.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /bridges.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /scaffolds.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /scaffolding.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /formwork.html?2f4dc3cce5bb551a9523f9ea93d83623=0cbe8ec136812c2d85500fc632aa7247
Disallow: /ladder.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Disallow: /stepladders.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Disallow: /bridges.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Disallow: /scaffolds.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Disallow: /scaffolding.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Disallow: /formwork.html?2f4dc3cce5bb551a9523f9ea93d83623=6a41b1bb6e46fb7581179cff70cbc3e6
Тонкий, но потенциально проблематичный момент - директивы, которые имеют "различное толкование" в разных поисковиках, тем более, если они не всеми поддерживаются - должны располагаться в конце блока. Это снизит вероятность того, что робот, встретив "ненормальную" по его мнению директиву, отбросит другие, следующие за ней директивы.
Соответственно, моя рекомендация - располагать "яндексовскую" директиву Host - максимально ближе к концу (в блоке описаний User-agent: * - "для всех роботов").
Ошибки самописанных движков
http://testo-sale.ru/robots.txt - Google - 13 / Яндекс - 34 / Rambler - 0
User-agent: *
Disallow: /http://testo-sale.ru/index.php
Disallow: /http://testo-sale.ru/catalog/index.php
При использовании "нестандартных" движков (в т.ч. "самописанных") - будьте внимательными, что за "роботов" вы "подсовываете" поисковикам, дабы после не удивляться и не пенять на яндексы-гугляндексы, что они "непонятно как" индексируют да и ранжируют ваш сайт.
Как видно в примере - путь для директив Disallow явно сгенерирован и сгенерирован неправильно - с добавлением "лишнего" префикса http://. Текущие значения индексации сайта в поисковиках косвенно подтверждают данные проблемы.
Продолжение следует (здесь, далее - в комментариях).
- 5950 просмотров

А стоит ли вообще заморачиваться с такими директивами? В чем суть robots.txt как такового для обычного вебмастера?
Всё это из одного разряда. Да - можно без них. Некоторые живут без них и не задумываются. Но правильно - с ними. Потому для тех, кто привык делать правильно - однозначно стоит использовать роботов. При чём - правильных роботов.
Блин, жесть полная на testo-sale. =)
Что и звучит в моей рекомендации - после всех директив, т.е. это и есть "конец файла robots.txt". :)
Однако, повторюсь, это не отменяет ошибки как таковой и другие поисковики (в другой ситуации и с другим сайтом) могут не проявить такого "расположения" и/или "понятливости" к вашим "роботоизлияниям". :)
Пустая строка после User-agent...
http://rspch.by/robots.txt - 2003 - Google - 313 / Яндекс - 31 / Rambler - 175А как сделать так, чтоб Яндекс и Гугл как можно быстрее проиндексировали сайт?
С другой стороны, правильно настроенный robots.txt позволяет не тратить время на индексацию "ненужных" страниц, в результате чего "нужные" индексируются быстрее (чаще). Таким образом можно считать, что правильный robots.txt может ускорить индексацию сайта в Яндексе, Гугле и других поисковиках.
Однако скорей всего подразумевалось "ускорение индексации нового сайта". В данном случае, ежели нет денег - помогут обычные соцзакладки или просто твиттер. Если есть - идём в Сапу и берём на недельку ссылочку с какой-нибудь кошерной морды PR 6 / тИЦ 10000. ;)
Может ускорить, а может и нет.
Роман, спасибо за полезную статью, нужно еще добавить, что не допустимо написание команд в строчку...
robots.txt в одну строку
http://postup.brama.com/robots.txt - 2000 - Google - 16800 / Яндекс - 3312 / Rambler - 62robots.txt в стиле "Да я этих команд знаю - роботову тучу!..."
Роботы одного из комментаторов - люди, не стоит писать в robots.txt "всё что знаете". Наоборот - максимально консервативно относитесь к каждой новой (и старой) записи в данном файле.http://www.izero.ru/robots.txt - Google - 411 / Яндекс - 40 / Rambler - 103
Несколько строк User-agent подряд
Попытка "облегчить себе жизнь" или "усовершенствовать" robots.txt частенько приводит к различным "перлам":http://agropromholod.ru/robots.txt - Google - 181 / Яндекс - 188 / Rambler - 210
Кто не понял: сделать "один" блок для "нескольких" роботов/поисковиков - нельзя. Иначе не учтётся никто (либо, сработает, как в данном случае, скорей всего - лишь для Рамблера, как последнего из "правильных строк" юзер-агентов).
А в общем случае - да, придётся, "как придурок", повторять одни и те же директивы для каждого из них. Либо же (что однозначно лучше) - ограничиться лишь "User-agent: *".
Есть и потому точно не стоит экспериментировать.
Рекорд по "пустым строкам" в robots.txt :)
http://grate.ru/robots.txt - 2005 - Google - 232 / Яндекс - 2000 / Rambler - 3361Update: Новый найденный рекордсмен по "чересстрочной конструкции robots.txt":
http://www.220volter.ru/robots.txt - Google - 161 / Yandex - 266 / Rambler - 226
Повторение одинаковых блоков для разных юзер-агент-ов
http://www.persokovr.ru/robots.txt - Google - 10 / Яндекс - 11 / Рамблер - 9Совершенно незачем повторять "для каждого" из роботов, от этого они не станут "более признательны", увидев "персональные настройки". :) То есть в данном случае однозначно правильней использовать лишь "общий" User-agent (хотя я такое рекомендую для всех случаев):
Отсутствие пустой строки между блоками директив robots.txt
Очередные роботы очередного комментатора (Wordpress).http://www.alchy.ru/robots.txt - Google - 143 / Яндекс - 62 / Рамблер - 65
Перед каждым новым юзер-агент-ом обязательно должна быть пустая строка ТЧК
Правда роботам сугубо пофиг, но поправил. :)
Верно, в таких случаях роботам может быть "пофиг" на всё, что обнаружится после "неожиданной" инструкции User-agent, а результате чего тот же Яндекс может не признать "свою" директиву Host со всеми вытекающими. Т.е. в очередной раз не стоит утверждать "так и так ж работает", ибо, во-первых, вопрос "как и насколько корректно", а, во-вторых, если действительно всё работает и корректно, то это заслуга интеллекта роботов, а никак не Вашего. ;)
...
Сначала я хотел опубликовать всё в подробностях, однако передумал. :) (Кто таки хочет - может и сам пробежаться да посмотреть). В любом случае, могу лишь подтвердить, что данный фактор (грамотно составленный robots.txt) чётко подтвердил "справедливость" рейтинга, т.к. все "проблемные" - в нижней части таблицы. И что значительный отрыв лидирующей тройки - явно "не просто так". Они вполне прилично владеют искусством робототекстники. ;)
Неправильная последовательность директив в robots.txt
Нельзя забывать, что есть правило - первой директивой после User-agent должна идти директива Disallow. И вообще, любой блок (во главе с User-agent) без Disallow считается некорректным. Потому следующие роботы являются наглядным примером подобной ошибки:http://avtoprofit.ru/robots.txt - Google - 26 / Яндекс - 46 / Rambler - 46Внешне "нормальный" пример будет полностью корректным, если строчку с Host сделать последней, а с Disallow - второй.
Пустой блок директив в robots.txt
После строки с директивой User-agent обязательно должна быть минимум одна строка с Disallow, иначе подобная конструкция является некорректной и реакция поисковиков труднопредсказуемо. Вот следующий "печальный" пример:http://rusantro.livejournal.com - Google - 603 / Яндекс - 0 / Rambler - 1Последний "незаконченный" блок для всех поисковиков ("User-agent: *") ими может восприниматься по-разному. И даже просто судя по тому, что в Рамблере лишь одна страница, а в Яндексе вообще ноль - это вполне может быть причиной неправильных роботов. /* Сайту на момент написания коммендария - полтора года (информация от его автора). */
Можно подумать, что я сам этот файл писал. Что ЖЖ дало, с тем и живём.
У того же LJ user ibigdan такой же robots.txt
И, ничего - его замечательно индексирует.
Спасибо за комментарий, буду знать. Только вот с популярными сайтами - отдельное дело, и "качество" роботов к ним применять сложней. А то, что у "монстровидных" бывают проблемы по части их (роботс.тхт) качества - известная пестня, достаточно глянуть даже ту же русскую википедию:
Подскажите, если Host написан после Sitemap - это считается как ошибка?
Пример:
Нет, это не ошибка, наоборот - всё правильно, именно так я и рекомендую оформлять. Т.к. директива Sitemap - поддерживается большинством поисковиков, а Host - лишь Яндексом., потому считается "нестандартной".
А всё "нестандартное" должно быть максимально "ниже" (в конце файла robots.txt), чтобы не сделать поводом для игнорирования роботами поисковиков (не знающих подобных инструкций) части директив после такого "нестандартного" кода.
Подскажите, если Host написан после Sitemap - это считается как ошибка?
А если у меня три блока, то как тогда лучше? Дублировать в каждом блоке директиву Sitemap или написать её один раз в самом низу, пропустив одну строку?
Заранее благодарен за ответ.
Host после Sitemap - это как раз правильно. Т.к. Host - "нестандартная" директива, а потому желательно должна быть "максимально в конце", в отличие от "стандартной" Sitemap.
Далее, дублировать Sitemap не надо - ведь у вас обязательно будет блок для всех ботов "User-agent: *" - в нём и стоит прописать Sitemap.
(без "пустой строки")
С другой стороны, практика показывает, что, похоже, robots.txt парсится поисковиками "в первую очередь" для поиска в нём всех записей о Sitemap, потому как бы вы не писали - вашу карту сайта "найдут и обезвредят".
Хотя, это не отменяет того, что "правильно" - делать "правильно", т.е. прописывать его в "общем" блоке.
Спасибо за статью - глянул на свой файл robots.txt и сразу увидел ошибку, уже с год как висит...
Неудачный шаблон для запрета служебных адресов
Попытка "оптимизировать" robots.txt может быть не совсем удачной, если не до конца понимать тонкости работы директив шаблонов (использование *). Вот подобный пример:
http://home-soft.com.ua/robots.txt - Google - 1260 / Яндекс - 5814 / Rambler - 6000
Жирным выделены "неудачные" директивы, которые преследуют, в принципе, "правильную" вещь - запретить дубликаты служебных страниц. Почему они не шибко удачные можно объяснить на следующих примерах. Если на сайте будут следующие "обычные" материалы с адресами типа:
Как видно, вполне "нормальные" материалы при подобных директивах попадут под запрет индексации. Это и есть "неудачный шаблон".
Чтобы такого не было, достаточно было их оформить, указав "конец строки" (т.е. что они находятся в самом конце урла):
И хотя при таком раскладе тоже остаётся вероятность "неудачных совпадений", но это уже действительно - минимум.
Занимаюсь продвижением сайтов, поэтому приходится хорошо ориентироваться в robots.txt. Хотелось бы услышать Ваше мнение по конкретной ситуации. Мне перепала на продвижение пара сайтов, один из которых был зазеркален и скрыт от индексации. Мои предшественники много чего наворотили, но здесь есть интересный момент. robots.txt такой у сайта (назовем его "www.второстепенное-зеркало.ru"):
Яндекс не индексирует www.второстепенное-зеркало.ru, а Google индексирует все страницы.
Перед директивой User-agent: * мои предшественники не поставили пустую строку... Но Яндекс-то корректно его прочитал.
Это не единственный случай, когда Google индексирует сайты, закрытые от индексации.
Есть ли у Вас подобные интересные примеры? И прокомментируйте этот.
Яндекс не индексирует по причине наличия директивы Host, указывающей, что это не основное зеркало, что более важней, чем Disallow: /.
Почему всё индексирует Google - нужно видеть. Предположу по словам "Перед директивой User-agent: * мои предшественники не поставили пустую строку", что значит в роботах были и другие блоки директив, где индексация могла разрешаться, и которую Google счёл руководством к действию...
Отправить комментарий