Популярное: файл robotstxt для яндекса и всех, всех всех
Disallow: /base/*/service-by-type.asp?
User-Agent:*
Также Яндекс в последнее время озаботился правильным прочтением robots.txt своими «паучками» (видимо, по следам конфликта с Мегафоном) и буквально в ближайшем будущем станет обрабатывать правила по длине префикса URL’а (от большего к меньшему), что позволит привести обработку robots.txt к международному стандарту. Правда, зная Яндекс, чует мое сердце, что глюков не оберешься, так что ставьте в закладки http://webmaster.yandex.ua/delurl.xml. Возможно, оно вам пригодится. Ну и проверяйте в инструментах для веб-мастеров корректность написания вашего robots.txt :)
В итоге, хомячки, желавшие сэкономить пару копеек, узрели свои откровения в выдаче этого вашего Яндекса. Особо усердные товарищи с серча тут же бросились рыскать по всему интернету и нарыли немало интересного, что по идее должно было быть закрыто от индексации. Часто даже в существующих robots.txt правила просто некорректно прописаны, что приводит к попаданию нежелательных страниц в индекс. В сети хватает материалов по синтаксису robotx.txt (в частности есть подробное руководство на эту тему от Яндекса). Они очень полезны в случаях, когда вам надо банально закрыть одну или несколько директорий. Бывают случаи и посложнее, но начнем, пожалуй, с типичных ошибок, которые допускают веб-мастера в файле robotx.txt.
robots.txt для Яндекса
А какие у вас проблемы возникали с формированием правил для robots.txt? Делитесь ими в комментариях, а самыми интересными будет пополняться эта статья.
Робот Яндекса обрабатывает директивы также как и роботы остальных поисковиков. Но естьнесколько тонкостей, на которые стоит обратить внимание. Яндекс не был бы Яндексом,если бы не придумал чего-нибудь своего. В данном случае Яндекс сподобился придуматьдирективу, которую никто кроме его роботов не обрабатывает:
Если же вы все же настроены использовать эту директиву, то для большей надежностилучше всего, несмотря на все заявления Яндекса о том, что директиву Host их робот распознает в любом месте файла, прописать для роботов Яндекса отдельный блок правил. Например, таким образом:
Как уже говорилось выше, правила robots.txt очень просты. Но как быть, если вам надо закрыть какую-либо отдельную директорию, но при этом открыть для индексации вложенный в нее каталог? Или, вот, например, как это модно сейчас говорить, кейс из реальной жизни: сайт доступен на трех языках, каждый язык расположен в директории с соответствующим индексом (/ru/, /ua/, /en/), но при этом в корне / присутствует копия сайта на русском языке. То есть, в индексе присутствуют дублированные страницы вида:
Host: www.site.ru
Типичные ошибки в robots.txt
User-Agent: *Disallow: /admin
- Пустые строки в блоках правил. Согласно спецификации, пустая строка означает окончание секции правил. И хотя роботы поисковых систем научились идти дальше, от ошибок в таком случае не застрахован никто. Так что избегайте в своем robots.txt конструкций типа:
Это совсем не одно и то же. Так что, помни о регистре, веб-мастер!
Чтобы избежать таких сюрпризов, используйте 301-редирект. О том, как сделать 301 редирект даже в прыжке через голову с переподвыподвертом есть очень годная статья у Деваки.
Подчеркну, что директива Allow всегда должна стоять перед запрещающими правилами, иначе робот обработает запрет и дальнейшее разрешение уже не сработает.
site.rusite.ru/ru/bla-bla.htmlоткрыты для индексации, а вот нежелательные дубли:site.ru/bla-bla.html — закрыты.В то же время главная страница сайта без всяких индексов — site.ru/ – доступна для индексации.
Disallow: /administrator
И, кстати, если Яндекс уже определил зеркала, это все равно не гарантирует корректной обработки этой директивы. Известны случаи, когда уже склеенные таким образом зеркала внезапно расклеивались и в индексе оказывались обе версии сайта — без и с www. Ну, что тут скажешь? Какой Рунет, такое и зеркало.
- Отсутствие пустой строки между блоками правил. Перед каждым User-Agent, за исключением того, что в самом начале, должна быть пустая строка. Опять таки, криворукие веб-мастера заставили поисковики перестраховаться и научиться распознавать такие штуки, но вероятность ошибки при разборе файла роботами возрастает. Оно вам надо?
Учтите, что робот, найдя первый подходящий ему блок правил, обработает его и не обратит внимания на все остальные. Таким образом, если вы прописываете блок правил для отдельного робота, ставьте его всегда выше блока правил для всех роботов.
- Расположение директивы Host вверху блока правил. Как и все директивы, которые не имеют однозначного толкования во всех поисковых системах, а директива Host относится именно к таким, она должна быть расположена ниже остальных правил, иначе предсказать поведение роботов, не обрабатывающих ее, становится сложно. Более того, по утверждению Яндекса эта директива является межсекционной и может быть использована, будучи указанной в любом месте файла.
Несмотря на то, что правила robots.txt очень просты, многие веб-мастера все же умудряются делать ошибки в этом файле, и вот самые типичные из них:
Disallow: /componentDisallow: /images
Задача: закрыть от индексирования все страницы в корневом каталоге, кроме главной, открыть для индексации все страницы в директориях /ru, /ua/, en.Решение:
Allow: /ru/Allow: /ua/Allow: /en/Disallow: /*.html$
Disallow: /AdminDisallow: /admin
site.ru/bla-bla-bla.htmlsite.ru/ru/bla-bla-bla.html
К слову, если не используется знак окончания строки «$», считается, что в конце правила стоит звездочка, так что в этом случае закрыты все динамические страницы, содержащие «service-by-type.asp?» в каталоге /base.
Интересные случаи
Еще в одном случае необходимо было закрыть один тип адресов в одной категории, при этом такие же адреса в другой категории должны были быть открыты для роботов. Выкрутились таким образом:
- Несоблюдение регистра. Все правила, содержащиеся в robotx.txt регистрозависимы, то есть строки:
User-Agent: YandexDisallow: /adminHost: www.site.ru
Таким образом, страницы вида
Источник: http://megakoshka.ru