Неправильные robots.txt - примеры

Неправильные robots.txt - примеры

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

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

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

Пустая строка между User-agent  и директивами robots.txt

 

http://www.shkaffkupe.ru/robots.txt - 2004 -  Google - 183 / Yandex - 6  / Rambler - 2  *

* - Здесь и далее значения индексации в поисковиках даны на момент "занесения в книжку" (потому, когда вы читаете эту статью - они могут быть другими), если сайт "не самый новый" - указывается "год рождения" по WebArchive).
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://. Текущие значения индексации сайта в поисковиках косвенно подтверждают данные проблемы.



 

Продолжение следует (здесь, далее - в комментариях).

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

Комментарии

А стоит ли вообще заморачиваться с такими директивами? В чем суть robots.txt как такового для обычного вебмастера?

Стоит ли учиться в школе, если "и так можно работать"? Стоит ли учиться SEO, если "и так, вроде, приходят"? Стоит ли "заморачиваться с роботами", если "и без них, вроде, нормально"?

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

А чтобы, повторюсь, знать, как правильных - здесь примеры неправильных.
А вот позвольте не согласиться по поводу установки директивы Host в конец файла. Яндекс в помощи пишет так:
...в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву 'Host' необходимо добавлять в группе, начинающейся с записи 'User-Agent', непосредственно после директив 'Disallow'('Allow')...
Совершенно верно - после, а не "перед". ;)
Что и звучит в моей рекомендации - после всех директив, т.е. это и есть "конец файла robots.txt". :)
В данном случае мы говорим об одном и том же. Просто я всегда рекомендую использовать лишь один (единственный) блок директив "User-agent: *", потому "непоредственно после" - и получится "в конце файла". ;)
На счет пустых строк - тем не менее в Яндекс.Вебмастер все строчки учтены (пример по professia.by).

Совершенно верно - поисковики в курсе про орды "вебмастеров-двоечников", потому давно научились учитывать многие ошибки и несоблюдения общепринятых стандартов.

Однако, повторюсь, это не отменяет ошибки как таковой и другие поисковики (в другой ситуации и с другим сайтом) могут не проявить такого "расположения" и/или "понятливости" к вашим "роботоизлияниям". :)

Пустая строка после User-agent...

http://rspch.by/robots.txt - 2003 - Google - 313 / Яндекс - 31 / Rambler - 175
User-Agent : *

Disallow : /Docs/
Disallow : /Images/

А как сделать так, чтоб Яндекс и Гугл как можно быстрее проиндексировали сайт?

Роботами как правило замедляют скорость индексации - с помощью директивы Crawl-delay (все поисковики, кроме Google - он её не учитывает, т.к. у него в админке можно напрямую задать скорость сканирования сайта).

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

Однако скорей всего подразумевалось "ускорение индексации нового сайта". В данном случае, ежели нет денег - помогут обычные соцзакладки или просто твиттер. Если есть - идём в Сапу и берём на недельку ссылочку с какой-нибудь кошерной морды PR 6 / тИЦ 10000. ;)

Может ускорить, а может и нет.

Роман, спасибо за полезную статью, нужно еще добавить, что не допустимо написание команд в строчку...

robots.txt в одну строку

http://postup.brama.com/robots.txt - 2000 - Google - 16800 / Яндекс - 3312 / Rambler - 62
User-Agent: * Disallow: /admin/ Disallow: /include/ Disallow: /inserts/

robots.txt в стиле "Да я этих команд знаю - роботову тучу!..."

Роботы одного из комментаторов - люди, не стоит писать в robots.txt "всё что знаете". Наоборот - максимально консервативно относитесь к каждой новой (и старой) записи в данном файле.

http://www.izero.ru/robots.txt - Google - 411 / Яндекс - 40 / Rambler - 103

User-agent: *
Disallow: /out/*
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /feed
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Disallow: /*?
Allow: /wp-content/uploads

User-agent: Googlebot-Image
Disallow:
Allow: /*

User-agent: Mediapartners-Google*
Disallow:
Allow: /*

User-agent: ia_archiver
Disallow: /

User-agent: duggmirror
Disallow: /

Sitemap: http://www.izero.ru/sitemap.xml

User-agent: Yandex
Crawl-delay: 5

Disallow: /tag
  1. Незачем использовать директиву Allow, если только нет "особых случаев" (типа Disallow: /) - "по умолчанию" и так Allow для всего сайта (а уже для отдельных страниц - регулируется уже метатегами noindex, nofollow и т.п.) .
  2. Аналогично для директивы "Disallow: " (без пути) - не путайте ни себя ни роботов. :)
  3. Точно также "для звёздочки" - незачем её ставить, по умолчанию все последующие символы могут быть любыми, если же нужно сделать условие, что этими символами должен заканчиваться URL - используем символ "$" (Disallow: /*.htm$, в то время как, например, Disallow: /*.htm - запретит индексацию и страницы "mypage.htm" и страницы "mypage.html" и "mypage.html-editor.html" и т.п.)
  4. Строго соблюдайте "блочность" - сначала User-agent, за ним, без пустых строк - остальные директивы.
  5. Если так уж нужно использовать разные условия для разных роботов/поисковиков (повторюсь, я рекомендую пользоватьс я лишь одним единственным "общим блоком "User-agent: *") - сначала перечисляйте блоки для конкретных роботов/поисковиков, а в конце - "блок для всех" (User-agent: *).

Несколько строк User-agent подряд

Попытка "облегчить себе жизнь" или "усовершенствовать" robots.txt частенько приводит к различным "перлам":

http://agropromholod.ru/robots.txt - Google - 181 / Яндекс - 188 / Rambler - 210

User-agent: Yandex
User-agent: Aport
User-agent: Googlebot
User-agent: StackRambler

Disallow: /fckeditor/
Disallow: /ajax/
Disallow: /dumper/
Disallow: /flash/
Disallow: /include/
Disallow: /js/
Disallow: /modules/
Disallow: /smarty/
Disallow: /upload/
Disallow: /userfiles/
Disallow: /templates/

Кто не понял: сделать "один" блок для "нескольких" роботов/поисковиков - нельзя. Иначе не учтётся никто (либо, сработает, как в данном случае, скорей всего - лишь для Рамблера, как последнего из "правильных строк" юзер-агентов).

А в общем случае - да, придётся, "как придурок", повторять одни и те же директивы для каждого из них. Либо же (что однозначно лучше) - ограничиться лишь "User-agent: *".

Есть ли разница, файл называется robots.txt или Robots.txt?

Есть и потому точно не стоит экспериментировать.

Рекорд по "пустым строкам" в robots.txt :)

http://grate.ru/robots.txt - 2005 - Google - 232 / Яндекс - 2000 / Rambler - 3361
User-agent: *

Disallow: /itemlist.php

Disallow: /send.php

Disallow: /article_full.php

Disallow: /privacy2.php

Host: grate.ru
п.с. Для новичков таки прокомментирую - кажущаяся "красивой" вышеописанная "чересстрочная" конструкция абсолютно некорректна с точки зрения правил построения robots.txt, т.к. пустая строка отделяет друг от друга (лишь) директивы User-agent, после которой (без пустых строк) должны последовательно идти все остальные директивы (Disallow сотоварищи).

Update: Новый найденный рекордсмен по "чересстрочной конструкции robots.txt":
http://www.220volter.ru/robots.txt - Google - 161 / Yandex - 266 / Rambler - 226
User-agent: *

Disallow: /bitrix/
Disallow: /links.php

Disallow: /search/

Allow: /search/map.php

Disallow: /club/search/

Disallow: /club/group/search/

Disallow: /club/forum/search/

Disallow: /communication/forum/search/

Disallow: /communication/blog/search.php

Disallow: /club/gallery/tags/

Disallow: /examples/my-components/

Disallow: /examples/download/download_private/

Disallow: /auth/

Disallow: /auth.php

Disallow: /personal/

Disallow: /communication/forum/user/

Disallow: /e-store/paid/detail.php

Disallow: /e-store/affiliates/

Disallow: /club/$

Disallow: /club/messages/

Disallow: /club/log/

Disallow: /content/board/my/


Disallow: /content/links/my/

Disallow: /*/search/

Disallow: /*PAGE_NAME=search

Disallow: /*PAGE_NAME=user_post

Disallow: /*PAGE_NAME=detail_slide_show

Disallow: /*/slide_show/

Disallow: /*/gallery/*order=*

Disallow: /*?print=

Disallow: /*&print=

Disallow: /*register=yes

Disallow: /*forgot_password=yes

Disallow: /*change_password=yes

Disallow: /*login=yes

Disallow: /*logout=yes

Disallow: /*auth=yes

Disallow: /*action=ADD_TO_COMPARE_LIST

Disallow: /*action=DELETE_FROM_COMPARE_LIST

Disallow: /*action=ADD2BASKET

Disallow: /*action=BUY

Disallow: /*print_course=Y

Disallow: /*bitrix_*=

Disallow: /*backurl=*

Disallow: /*BACKURL=*

Disallow: /*back_url=*

Disallow: /*BACK_URL=*

Disallow: /*back_url_admin=*

Disallow: /*index.php$

Повторение одинаковых блоков для разных юзер-агент-ов

http://www.persokovr.ru/robots.txt - Google - 10 / Яндекс - 11 / Рамблер - 9
User-agent: Yandex
Disallow:
HOST: www.persokovr.ru

User-agent: Googlebot
Disallow:
HOST: www.persokovr.ru

User-agent: *
Disallow:
HOST: www.persokovr.ru

Совершенно незачем повторять "для каждого" из роботов, от этого они не станут "более признательны", увидев "персональные настройки". :) То есть в данном случае однозначно правильней использовать лишь "общий" User-agent (хотя я такое рекомендую для всех случаев):
User-agent: *
Disallow:
Host: www.persokovr.ru

Отсутствие пустой строки между блоками директив robots.txt

Очередные роботы очередного комментатора (Wordpress).
http://www.alchy.ru/robots.txt - Google - 143 / Яндекс - 62 / Рамблер - 65
User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /xmlrpc.php
Allow: /wp-content/uploads
User-agent: Yandex
Crawl-delay: 5
Host: www.alchy.ru
Sitemap: http://www.alchy.ru/sitemap.xml

Перед каждым новым юзер-агент-ом обязательно должна быть пустая строка ТЧК
Та твою ж дивизию. :D
Правда роботам сугубо пофиг, но поправил. :)

Верно, в таких случаях роботам может быть "пофиг" на всё, что обнаружится после "неожиданной" инструкции User-agent, а результате чего тот же Яндекс может не признать "свою" директиву Host со всеми вытекающими. Т.е. в очередной раз не стоит утверждать "так и так ж работает", ибо, во-первых, вопрос "как и насколько корректно", а, во-вторых, если действительно всё работает и корректно, то это заслуга интеллекта роботов, а никак не Вашего. ;)

Да, действительно, Яндекс робот не индексирует, если нет перед user agent разрыва от предыдущего. Убедился лично. Будьте внимательны.

Объясните мне - зачем самому писать роботс.тхт, если есть специальные программы и сервисы?
"Специальные программы и сервисы" лишь вставляют инструкции, которые вы указываете - в нужном количестве и порядке. А потому их можно считать реально полезными лишь только для тех, кто паталогически сыплет ошибками в словах User-agent, Disallow и Host. ;)
Сам на личном опыте убедился что настройка robots важна! К тому же ускоряет индексацию сайта, т.к. вы исключате не нужные и не интересные страницы, спасибо за статью.
Роботсы реально важны! На своём первом сайте на дешёвом хостинге я помню попал из-за них... Пошел как-то робот по сайту, а хостеру сил вовремя всё отдать не хватило и как результат около 80% сайта не вошли в поиск после обхода =(.

По результатам рейтинга SEO-компаний Беларуси 2010 решил провести тест их сайтов на правильность файла robots.txt, качество которого вполне можно считать одним из показателей "SEO-грамотности". Результаты - треть(!) сайтов оптимизаторских контор имеют проблемные (с точки зрения "классической правильности") robots.txt.
...
Сначала я хотел опубликовать всё в подробностях, однако передумал. :) (Кто таки хочет - может и сам пробежаться да посмотреть). В любом случае, могу лишь подтвердить, что данный фактор (грамотно составленный robots.txt) чётко подтвердил "справедливость" рейтинга, т.к. все "проблемные" - в нижней части таблицы. И что значительный отрыв лидирующей тройки - явно "не просто так". Они вполне прилично владеют искусством робототекстники. ;)

Неправильная последовательность директив в robots.txt

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

http://avtoprofit.ru/robots.txt - Google - 26 / Яндекс - 46 / Rambler - 46

User-Agent: *
Host: avtoprofit.ru
Disallow: /index.htm
Sitemap: http://avtoprofit.ru/sitemap.xml

Внешне "нормальный" пример будет полностью корректным, если строчку с Host сделать последней, а с Disallow - второй.

Пустой блок директив в robots.txt

После строки с директивой User-agent обязательно должна быть минимум одна строка с Disallow, иначе подобная конструкция является некорректной и реакция поисковиков труднопредсказуемо. Вот следующий "печальный" пример:

http://rusantro.livejournal.com - Google - 603 / Яндекс - 0 / Rambler - 1

User-Agent: Mediapartners-Google*
Disallow:

User-Agent: *

Последний "незаконченный" блок для всех поисковиков ("User-agent: *") ими может восприниматься по-разному. И даже просто судя по тому, что в Рамблере лишь одна страница, а в Яндексе вообще ноль - это вполне может быть причиной неправильных роботов. /* Сайту на момент написания коммендария - полтора года (информация от его автора). */

Можно подумать, что я сам этот файл писал. Что ЖЖ дало, с тем и живём.
У того же LJ user ibigdan такой же robots.txt

User-Agent: Mediapartners-Google*
Disallow:

User-Agent: *

И, ничего - его замечательно индексирует.

Спасибо за комментарий, буду знать. Только вот с популярными сайтами - отдельное дело, и "качество" роботов к ним применять сложней. А то, что у "монстровидных" бывают проблемы по части их (роботс.тхт) качества - известная пестня, достаточно глянуть даже ту же русскую википедию:

...
# Участник:*/

Disallow: /wiki/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:*/

# Википедия:Проект:Инкубатор/Статьи/


Disallow: /wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:%D0%98%D0%BD%D0%BA%D1%83%D0%B1%D0%B0%D1%82%D0%BE%D1%80/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8/
# Обсуждение Википедии:Проект:Инкубатор/Статьи/
Disallow: /wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D0%B8:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:%D0%98%D0%BD%D0%BA%D1%83%D0%B1%D0%B0%D1%82%D0%BE%D1%80/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8/

# Википедия:Черновики/

Disallow: /wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A7%D0%B5%D1%80%D0%BD%D0%BE%D0%B2%D0%B8%D0%BA%D0%B8/

...

 

Подскажите, если Host написан после Sitemap - это считается как ошибка?

Пример:

User-agent: *
Disallow: /contacts.php
Sitemap: http://site.ru/sitemap.xml
Host: site.ru

Нет, это не ошибка, наоборот - всё правильно, именно так я и рекомендую оформлять. Т.к. директива Sitemap - поддерживается большинством поисковиков, а Host - лишь Яндексом., потому считается "нестандартной".

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

Подскажите, если Host написан после Sitemap - это считается как ошибка?

А если у меня три блока, то как тогда лучше? Дублировать в каждом блоке директиву Sitemap или написать её один раз в самом низу, пропустив одну строку?

User-agent: Yandex
Disallow: /contacts.php
Host: site.ru

User-agent: Googlebot
Disallow: /contacts.php

User-agent: *
Disallow: /contacts.php

Sitemap: http://site.ru/sitemap.xml

Заранее благодарен за ответ.

Host после Sitemap - это как раз правильно. Т.к. Host - "нестандартная" директива, а потому желательно должна быть "максимально в конце", в отличие от "стандартной" Sitemap.

Далее, дублировать Sitemap не надо - ведь у вас обязательно будет блок для всех ботов "User-agent: *" - в нём и стоит прописать Sitemap.

User-agent: *
Disallow: /contacts.php
Sitemap: http://site.ru/sitemap.xml

(без "пустой строки")

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

Хотя, это не отменяет того, что "правильно" - делать "правильно", т.е. прописывать его в "общем" блоке.

Спасибо за статью - глянул на свой файл robots.txt и сразу увидел ошибку, уже с год как висит...

Спасибо! Очень обширная и полезная статья. Robots.txt мало кто составляет правильно, а некоторые вообще обходятся без него.

Неудачный шаблон для запрета служебных адресов

Попытка "оптимизировать" robots.txt может быть не совсем удачной, если не до конца понимать тонкости работы директив шаблонов (использование *). Вот подобный пример:

http://home-soft.com.ua/robots.txt - Google - 1260 / Яндекс - 5814 / Rambler - 6000

User-agent: *
Disallow: /*print
Disallow: /backup/
Disallow: /engine/
Disallow: /language/
Disallow: /templates/
Disallow: /go/
Disallow: /*rss
Disallow: /*rrs
Host: home-soft.com.ua
Sitemap: http://home-soft.com.ua/sitemap.xml

Жирным выделены "неудачные" директивы, которые преследуют, в принципе, "правильную" вещь - запретить дубликаты служебных страниц. Почему они не шибко удачные можно объяснить на следующих примерах.

Если на сайте будут следующие "обычные" материалы с адресами типа:

http://home-soft.com.ua/books/magazine/78-russkij-sprinter-vyigral-zabeg.html
http://home-soft.com.ua/news/news-it/google-zapretil-giperssylki-na-yandex.html
http://home-soft.com.ua/news/review/obzor-rrsat-global-internet-tv.html

Как видно, вполне "нормальные" материалы при подобных директивах попадут под запрет индексации. Это и есть "неудачный шаблон".

Чтобы такого не было, достаточно было их оформить, указав "конец строки" (т.е. что они находятся в самом конце урла):

Disallow: /*print$
Disallow: /*rss$
Disallow: /*rrs$

И хотя при таком раскладе тоже остаётся вероятность "неудачных совпадений", но это уже действительно - минимум.

Занимаюсь продвижением сайтов, поэтому приходится хорошо ориентироваться в robots.txt. Хотелось бы услышать Ваше мнение по конкретной ситуации. Мне перепала на продвижение пара сайтов, один из которых был зазеркален и скрыт от индексации. Мои предшественники много чего наворотили, но здесь есть интересный момент. robots.txt такой у сайта (назовем его "www.второстепенное-зеркало.ru"):

User-agent: *
Disallow: /
Host: www.главное-зеркало.ru
(Второй домен)

Яндекс не индексирует www.второстепенное-зеркало.ru, а Google индексирует все страницы.
Перед директивой User-agent: * мои предшественники не поставили пустую строку... Но Яндекс-то корректно его прочитал.

Это не единственный случай, когда Google индексирует сайты, закрытые от индексации.

Есть ли у Вас подобные интересные примеры? И прокомментируйте этот.

Яндекс не индексирует по причине наличия директивы Host, указывающей, что это не основное зеркало, что более важней, чем Disallow: /.

Почему всё индексирует Google - нужно видеть. Предположу по словам "Перед директивой User-agent: * мои предшественники не поставили пустую строку", что значит в роботах были и другие блоки директив, где индексация могла разрешаться, и которую Google счёл руководством к действию...

Просмотрела свой роботс, и не пойму, почему Яндекс его уже 4 месяца игнорит.

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

У меня вопрос по robots.txt. Дело в том, что как только были указаны ошибки сканирования AdSense и рекомендовано добавить следующие две строки в начало файла:

User-agent: Mediapartners-Google
Disallow:


Я сразу же все так и проделала, но робот по-моему не находит все равно. Я попыталась проанализировать содержание файла robots.txt и убедилась, что роботу AdSense доступ закрыт. Что я не так делаю? Пожалуйста, ответьте новичку.

У вас ошибка "Отсутствие пустой строки между блоками директив robots.txt", вот что сейчас показывает ваш роботс:

User-agent: Mediapartners-Google
Disallow:
User-agent: *
Crawl-delay: 4
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
...

Проверьте и исправьте:

User-agent: Mediapartners-Google
Disallow:


User-agent: *
Crawl-delay: 4
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
...

Подскажите, я на сайте c движком UCOZ разместил следующий robots.txt:

User-agent: *
Disallow: /files
Disallow: /order
Disallow: /skin
Disallow: /system
Disallow: /admin
Disallow: /content
Disallow: /images

...а показывает:

User-agent: *
Disallow: /

Значит ваш сайт на карантине (особенности хостинга Ucoz), вот цитата:

Для нового сайта существует карантин, во время которого никакая регулировка файла robots.txt невозможна. При хорошей посещаемости карантин продлится до двух недель. У малопосещаемых сайтов карантин 30 дней. При оплате какой-либо дополнительной услуги карантин заканчивается немедленно после оплаты.
...
Файл robots.txt сайта на карантине выглядит так:
User-agent: *
Disallow: /

Здравствуйте! Составил robots.txt, на первый взгляд вполне нормальный, но Яндекс ругается - "Найдено несколько директив Host".

Оставляю директиву Host только в разделе Яндекса и мне выдает вот что:    

14-14    
Sitemap: http://xn--e1af1aeqh.xn--p1ai/sitemap.xml
16-37    
User-agent: Yandex
Disallow: /cgi-bin
...
Sitemap: http://xn--e1af1aeqh.xn--p1ai/sitemap.xml

А так выглядит мой robots.txt:

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Host: xn--e1af1aeqh.xn--p1ai
Sitemap: http://xn--e1af1aeqh.xn--p1ai/sitemap.xml

User-agent: Yandex
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /feed
Disallow: */feed
Disallow: /*?*
Disallow: /*?
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /search/*/feed
Disallow: /search/*/*
Disallow: /tag/
Host: xn--e1af1aeqh.xn--p1ai
Sitemap: http://xn--e1af1aeqh.xn--p1ai/sitemap.xml

Заранее спасибо за ответ.

Правильно ругается Яндекс, ведь две директивы Host в приведенных роботах и есть (выделил жирным в вашем посте). Конкретно одна в блоке директив "персонально для Яндекса" (User-agent: Yandex) и ещё одна в блоке "для всех поисковиков" (User-agent: *).

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

Итого, в вашем случае я бы просто свёл бы все ваши роботы в один блок, вот в таком виде:

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /*/trackback
Disallow: /feed
Disallow: /tag/
Disallow: /*/feed
Disallow: /*/comments
Disallow: /*?
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /search/*/
Sitemap: http://xn--e1af1aeqh.xn--p1ai/sitemap.xml
Host: xn--e1af1aeqh.xn--p1ai

Лишнее и дублирующееся выброшено, всё сделано на базе вашего примера (выше), просто "стандартизировано".

Тут Яндекс на пальцах объясняет по роботс:

У меня возникла проблема с сайтом - ни Яндекс, ни Рамблер его не индексируют, хотя Гугл при этом видит всё нормально. Анализ робота на Яндексе показывает следующее:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/

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

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

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

Добавлено:

Определил для себя следующий план действий, просьба поправить, если что делаю неверно.

1) Создал файл .htaccess, прописал в нём. 

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.moivelik\.ru$ [NC]
RewriteRule ^(.*)$ http://moivelik.ru/$1 [R=301,L]

Сделал так, потому что считаю, что это, тоже могло стать причиной, по которой Яндекс считает мой сайт плагиатом, т.к. www и аналог без www, были как совершенно разные сайты. Теперь, всё ссылается на один.

2) Генерирую, на бесплатных роботах, sitemap.xml, кидаю его в корневой каталог сайта.

3) Добавляю роботу строки:

Host: moivelik.ru
Sitemap: http://moivelik.ru/sitemap.xml

4) Сообщу роботам об изменениях, начну с Яндекс sitemap.

Буду надеяться на лучшее.

P.S. Есть сомнение в правильности указания - Sitemap: http://moivelik.ru/sitemap.xml - подскажите, верно ли указан путь? И если нет, то как мне правильно определить путь для моего хмл фала? 

Заранее благодарен.

Только сейчас понял, в чём у меня проблема. Действительно изначально было куплено несколько доменов и видимо веб мастер, тот кто создавал сайт, делал и тестил его на vindrnet.com, скорее всего робот Яндекса, в тот момент, проиндексировал его сам. И теперь, когда он перевёл его на moivelik.ru, яндекс считает его плагиатом. Огромная просьба подсказать, как можно исправить это недоразумение? Очень хотелось бы с наименьшими потерями выйти из этого трабла. Заранее огромное спасибо.

Яндекс точно проиндексировал (ссылка актуальна на момент написания комментария).

Чтобы исправить такую проблемы нужно поставить редирект (на сайте vindrnet.com):

RewriteRule ^(.*)$ http://moivelik.ru/$1 [R=301,L]

Т.е. "включить" vindrnet.com, чтобы он был доступен поисковикам и чтобы они поняли, что "сайт переехал", а не "там плагиат".

Сразу хочу сказать огромное спасибо за помощь. В настоящий момент так и сделал. Всё идёт куда нужно. Но в процессе поиска ответа на основной вопрос, родилась хорошая идея, сделать новый сайт. )) Уже практически всё сделал. Если не ждать, пока робот переиндексирует сайт, а просто поставить новый и в Яндексе переиндексировать его самому, есть ли жизнь у такого варианта? Или всё таки стоит подождать, пока Яндекс проиндексирует его сам?

Сделать новый можно. Однако если речь о том же (moivelik.ru) домене, то я бы дождался, пока Яндекс отработает переадресацию (с vindrnet.com) и он появится в индексе. Т.е. редирект ставить по-любому, а уже видоизменения - по желанию.

Необъяснимые директивы в robots.txt или "Горе от ума"

User-agent: *
Disallow: //*
Disallow: /*//*
...

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

Что и не удивительно, ибо предположить, как подобная конструкция будет восприниматься поисковиками - сложно. Точней, наоборот, просто, это аналог:

User-agent: *
Disallow: /

...т.е. запрет индексации. Без комментариев. Действительно - горе от ума.

В гугл вэбмастер в столбце Доступ к файлу robots.txt стоит восклицательный знак что это означает?

Доступ к файлу robots.txt - ошибка

Вот мой робот:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /users/
Disallow: /component/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /?start=*
Disallow: /vhod.html
Disallow: /php/
Disallow: /rss
Sitemap:http://filter-tver.com/sitemap.xml

Host:filter-tver.com

User-agent: Yandex
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /users/
Disallow: /component/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /?start=*
Disallow: /vhod.html
Disallow: /php/
Disallow: /rss
Disallow: /filtry-dlya-kottedzhej.raw?

User-agent: Mediapartners-Google
Disallow:

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

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

Т.е. лучше использовать только User-agent: * ?

А эта строка - User-agent: Mediapartners-Google - нужна?

Вот мой .htaccess, в нем прописано без www.:

RewriteEngine On

Redirect permanent /home.html http://filter-tver.com/
RewriteCond %{HTTP_HOST} ^www.filter-tver.com$ [NC]
RewriteRule ^(.*)$ http://filter-tver.com/$1 [R=301,L]

Да, лучше использовать один блок директив - User-agent: * - общий для всех поисков.

Если нет особых требований, то и - User-agent: Mediapartners-Google - не нужно использовать.

По www - всё правильно, это перенаправление на вариант написания без www. Только сейчас заметил, что спутал ваш сайт с .ru-вариантом, который как раз с www.

Раз так (я ошибся на счёт www), значит стоит проверить, не забанены ли по какой-то причине айпишники роботов Google (на уровне сайта/хостинга). Ну или другие возможные причины ошибок.

п.с. Как вариант - просто обождать. Кстати - такая ошибка была "всегда" или появилась недавно?

 

Такая ошибка появилась где-то с месяц назад. Оставил общую директиву для всех поисковиков, Mediapartners-Google убрал.

Проблема исчезла:

Googlebot cant access your site

Googlebot errors

Не понятно с чем это связано. Ждем результата.

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

Добрый день, подскажите как запретить правильно подобные числовые каталоги, например, "site/153", ответ "Disallow: /*153". А как "site/(от 1 до 10000)" - одной командой?

Никак - именно если одной. Используйте девять:

Disallow: /site/1
Disallow: /site/2
Disallow: /site/3
Disallow: /site/4
Disallow: /site/5
Disallow: /site/6
Disallow: /site/7
Disallow: /site/8
Disallow: /site/9

...и запретите (либо просто не используйте) названия каталогов, начинающихся с цифр. Я сделал именно так на одном из проектов - Drupal 6, работает много лет.

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

Подписка на Комментарии к "Неправильные robots.txt - примеры" Подписка на NOINDEX.by - Все комментарии