Блог → Почему робот Google игнорирует robots.txt

Зачастую на форумах и в блогах можно увидеть вопрос, который повторяется снова и снова - "почему Google игнорирует содержимое моего robots.txt"? И в самом деле, при разборе ситуации первое, что приходит в голову - да, действительно игнорирует! Вот совершенно корректно составленная конструкция в файле robots, и вот - эти же самые страницы (особенно часто это касается тегов и категорий в блогах) в индексе поисковика. Так в чём же тут дело?

На самом деле, ответ прост, и найти его можно на тех же самых форумах (правда закопан он порой, глубоко, и не всякий его отыщет). Суть же в том, что налицо некое непонимание алгоритма работы робота Google, впрочем, точно так же можно посетовать и на нелогичность его работы, причём в обоих случаях есть доля истины. Но нас сейчас не интересует история или какие-то глубинные мотивы, приведшие Гугл к такому алгоритму, нам нужно лишь, чтобы всё работало правильно!

Итак, возьмём типичную ситуацию. У нас есть блог, в котором помимо полезной информации, постов и списка постов (блоголенты), которые собственно и являются контентом блога, есть и вспомогательные страницы - теги и категории. Эти страницы, с точки зрения поисковой системы, несут избыточную информацию (так называемые "дубли") и вполне логично, что мы хотим их исключить из "области видимости" поисковика - в выдаче они нам не нужны, так как будут лишь замусоривать её, а кроме того - конкурировать с полноценными постами. Первое что приходит в голову - исключить эти страницы через файл с инструкциями для поисковых роботов robots.txt. Например:

User-agent: *
Disallow: /tags/
Disallow: /categories/


Инструкция выше предписывает всем поисковым роботам (маска *) запретить к индексации урлы, которые содержат пути tags и categories, всё просто. И в случае с роботом Яндекса, всё будет отлично - он понимает эту инструкцию точно так же, как и мы. С Гуглом же немного другая история. Для удобства восприятия, я даже вынесу её в отдельный абзац, ведь в нём - суть заметки (всё остальное, как уже поняли - исключительно вода).

Что же делает робот Гугла с файлом robots.txt? Он точно так же, как и Яндекс, воспринимает его как список ограничений (и наоборот, разрешений) и использует в работе. Страницы вида /tags/google и /categories/seo не будут проиндексированы, и в этом вы сможете убедиться непосредственно в поисковой выдаче - у них не будет ни тайтла (title), ни сниппета, ни кэша. Иными словами - Гугл сделал всё согласно инструкции в robots.txt, ведь согласитесь - там ничего не говорилось о появлении страницы в выдаче, это уже додумали мы сами! Он не индексировал запрещённые страницы, но при этом включил их в выдачу.

В принципе - задача выполнена, т.к. дублирующегося контента Google не видит, и на этом можно остановиться. Но при проверке количества страниц в индексе Гугл всё равно будет учитывать эти страницы, что скажем прямо, не есть правильно. Как сделать, чтобы они там не появлялись? Ответ прост - воспользоваться мета-тегом ROBOTS, некогда популярном, но ныне незаслуженно забытом многими вебмастерами (странно, почему, ведь поисковики никогда не заявляли о прекращении его поддежки). В темплейты для страниц тегов и категорий необходимо включить констукцию такого вида:
<meta name="robots" content="noindex,follow">


Она указывает поисковому роботу, что нужно пройти по ссылкам со страницы (follow), при этом не индексируя её (noindex). Фактически - это то, что нам нужно. Единственное, что нужно не забыть, так это разрешить роботу Гугла доступ к этим страницам в файле robots.txt (многие забывают, а без этого он просто не сможет прочитать мета-тег на странице, а ответственно, и выполнить его). Например, файл robots.txt может выглядеть вот так (инструкции для Googlebot задаются отдельно):

User-agent: Googlebot
Disallow:

User-agent: *
Disallow: /tags/
Disallow: /categories/