Делаем правильный Robots.txt для Google и Яндекса

Правильный Robots.txt для Google - Яндекс

  Чистим мусор и делаем хороший роботс.тхт

И снова о Гугле. Что-то он удивляет меня в последнее время… В одной из предыдущих статей я рассказал про интересное «отношение» Google к файлу robots.txt. А вчера заметил ещё кое-что.

Проверял данный сайт на индексацию в Гугле через RDS bar (дело обычное) — оказалось, что только 65% страниц участвуют в выдаче. Меня это удивило, т.к. ранее там было 98%. В общем, решил проверить наличие мусора в индексе и, как оказалось, там много чего есть.

Что может быть в индексе Гугла

Перед проверкой индексации robots.txt у меня был такой:

User-agent: *
Disallow: *?            ##запрет страниц с динамическими параметрами
Disallow: *.swf$   ##запрет файлов с расширением .swf (однажды залетал флеш-плеер туда)
Disallow: *.txt$    ##запрет текстовых файлов
Disallow: /feed/   ##запрет фида
Disallow: /page/  ##защита от глюка в WordPress (см. тут)
Disallow: */attachment/ ##см. там же
Host: web-ru.net
Sitemap: http://web-ru.net/sitemap.xml

Нашлось вот что:

Мусор в Гугле

  Мусор в Гугле 1

и

мусор в Гугле 2

  Мусор в Гугле 2

и много чего из папок wp-content и wp-includes, а также залетел туда и флеш-плеер, хотя уже несколько раз я делал запрос на удаление URL.

Меня удивляет, что Гугл держит в индексе файлы JS-скриптов, например, от плагина Qip Smiles (на первой картинке выше). Какой смысл так делать, ведь это просто код..

В Яндексе такого нет. Это тот редкий случай, когда Яндекс делает что-то лучше Гугла. Хотя зря я так про Яндекс, ну да не о том речь :).

Что ещё более удивительно — в индексе снова оказался feed сайта (для WordPress обычно это http://site.ru/feed/), который я также много раз удалял в интерфейсе Google Webmaster.

Ну и также:

мусор в Гугле 3

  Мусор в Гугле 3

— очень необычно. Ссылок на такие страницы нет. Гугл мог узнать о них, когда я сам заходил на эти страницы, когда обнаружил, что они существуют. Это, кстати, говорит о том, что браузер Google Chrome действительно отправляет информацию о посещаемых страницах в Гугл.

А это вообще забавно:

Robots.txt в выдаче Google

  Robots.txt в выдаче Гугла

Выводы

Очевидно, Google пытается залезть всюду, в том числе и в те места, которые запрещены в robots.txt. Например, запрещены к индексации файлы .php и .swf — а он их индексирует.

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

Также есть вероятность, что такие страницы, как feed сайта залетают в индекс из-за того, что в некоторых статьях я прописывал (текстом!) /feed/ — например, в тех же статьях про файл robots.txt. Получается, что Гугл переходит даже на те URL, которые прописаны текстом на сайте — запись /feed/ он воспринимает как http://web-ru.net/feed/. Нередко такое замечал, когда анализировал ошибки в интерфейсе Google Webmaster.

Короче, я пришёл к выводу, что robots.txt должен быть максимально «чистым». Теперь о том, что нужно сделать.

Как сделать правильный robots.txt для Google и Яндекс

Надо удалить все запреты (ну или почти все). Однако сперва нужно кое-что настроить на сайте.

Используем мета-тег robots

Подробно про meta name=’robots’ написано здесь. Суть простая: всё, что было запрещено в robots.txt, запрещаем теперь с помощью этого мета-тега.

Это можно сделать разными способами — зависит от движка сайта и/или языка, на котором он написан. Покажу на примере .php (подойдёт для WordPress, Joomla и много-много чего ещё). В шаблон шапки сайта, после <head> можно вставить такое:

<?php if(count($_GET)>0):?>
<meta name=’robots’ content=’noindex,follow’ />
<?php endif;?>

(при копировании отсюда кавычки пропишите вручную).

Теперь, когда кто-то зайдёт на URL вида http://site.ru/page?n=123, в шапке сайта появится <meta name=’robots’ content=’noindex,follow’ />, что говорит всем роботам о запрете такой страницы к индексации.

Аналогично можно сделать и с другими страницами и файлами с разными расширениями — нужно просто найти закономерность в их URL и задать условие на нужном языке программирования, по которому будет подставляться этот мета-тег.

Однако есть ещё и страницы со скриптами, текстовые документы и прочее (кстати, нередко на многих сайтах в индекс залетают .pdf-документы). Такие файлы не являются стандартными веб-страницами, написанными на HTML, поэтому meta name=’robots’ здесь не пройдёт.

Запрещаем индексацию скриптов и прочих ненужных файлов

Пришлось подумать над этой задачей. Сначала хотел использовать заголовок X-Robots-Tag, но действует он только для Гугла, так что понял, что нужно более универсальное решение.

Предположил, что универсальное решение находится в файле .htaccess. Поискал в Гугле — и кое-что нашлось. Причём на разных сайтах описаны разные методы.

Никогда раньше не использовал такого. В общем, вот, что я поместил в .htaccess:

SetEnvIfNoCase User-Agent «^Google*» search_bot
SetEnvIfNoCase User-Agent «^Yandex*» search_bot
SetEnvIfNoCase User-Agent «^msn*» search_bot
SetEnvIfNoCase User-Agent «^bot*» search_bot
SetEnvIfNoCase User-Agent «^mail*» search_bot
<FilesMatch «\.(php|txt|swf|xml)$»>
Order Allow,Deny
Allow from all
Deny from env=search_bot
</FilesMatch>

— собрал это с разных сайтов, так что конкретного ничего не скажу по поводу этого кода. Главное, что тут есть: роботам Google, Yandex и т.д. запрещается индексировать документы с расширениями php, txt, swf, xml.

XML указал для того, чтобы из индекса вывалилась XML-карта сайта. Хотя неизвестно, будет ли она теперь вообще читаться Гуглом.

Через некоторое время я дополню эту статью и сообщу о результатах.

12.6.2015 — на данный момент почти весь мусор вылетел из индекса. Как оказалось, Гугл медленно реагирует на изменения в robots.txt и в выдаче держит всякий мусор с указанием «A description for this result is not available because of this site’s robots.txt» (хотя в robots.txt уже всё разрешено). XML-карта, тем не менее, осталась…

Как найти мусор в индексе?

Используем такой запрос в поиске Гугла: site:http://site.ru/xxx (почему это так, рассказано в статье о дополнительном индексе Google).

Пользователи WordPress’а могут ввести, например, site:http://site.ru/wp-. С помощью этого я нашёл много мусора из папок wp-content и wp-includes. Кстати, я для интереса проверил чужие WP-сайты с помощью этого запроса и обнаружил то же самое. Так что вы обязательно проверьте у себя ;).

Итоговый вариант robots.txt для Гугла и Яндекса (и для всего остального)

Сейчас для этого сайта у меня такой вариант:

User-agent: *
Disallow:

User-agent: Yandex
Disallow: /feed/
Host: web-ru.net
Sitemap: http://web-ru.net/sitemap.xml

Сначала хотел оставить Disallow: /feed/, т.к., несмотря на то, что он является XML-файлом (в .htaccess я их запретил), внешне этот файл является каталогом — URL заканчивается на «/». Но потом решил убрать для Гугла + удалил вручную в аккаунте вебмастера.

Пока не ясно, как подействуют правила в .htaccess, поэтому на всякий случай оставил одно правило для Яндекса. Если фид снова появится в Гугле — также дополню эту статью.

12.6.2015 — фид не появился. В общем, всё хорошо :).

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

web-ru.net - всё о продвижении сайтов
Случайные публикации:
  • 9 причин: почему Яндекс не индексирует сайт и что делать в этом случае?9 причин: почему Яндекс не индексирует сайт и что делать в этом случае?... (ну или что-то помягче, но тоже ничего хорошего). В общем, если на
  • Что такое дополнительный индекс Google? Supplemental IndexЧто такое дополнительный индекс Google? Supplemental Index... (когда Гугл просто не может предложить ничего лучше). Логично, что попадание страниц
  • Как выглядят HTML-списки в сниппетах Google и ЯндексаКак выглядят HTML-списки в сниппетах Google и ЯндексаТолько что обнаружил, как Гугл отображает содержимое HTML-списков в своих снипп...
  • Что такое хостинг для сайта и что такое домен (доменное имя)? Хостинговые компанииЧто такое хостинг для сайта и что такое домен (доменное имя)? Хостинговые компанииВ своё время, когда я только начинал интересоваться интернет-заработком,...
  • Где взять уникальный контент для сайтов за деньги?Где взять уникальный контент для сайтов за деньги?В данной статье продолжу тему уникальных текстов на сайте. Во...
Оставьте комментарий:
комментариев 13
Через сайт Через ВКонтакте Через Facebook
  1. Георгий:

    Спасибо Петр за полезный и нужный материал =)

    Ответить
  2. Seoчайник:

    Google уже давно говорит, чтобы не закрывали от него js и css. Он хочет видеть все, что видит пользователь. И на закрытые файлы указывает при проверке на мобильность.

    Ответить
  3. Егор:

    Получается, что лучший роботс — это пустой роботс?))

    Ответить
    • Пётр:

      В общем-то, да =)

      (при условии, что всё предусмотрено)

      Ответить
  4. Мила:

    Пока ничего менять на блоге не буду.
    Буду ждать ваш результат, а то ещё напортачу что-нибудь и потом не смогу восстановить… %)

    Ответить
  5. Алексей:

    Запрещать в robots.txt НАДО! И ещё как! А то вылезет в выдачу всё, что не должно там быть. Но надо знать как правильно для Гугла это делать :P Как-то тоже ковырялся в этой теме и кое-что наковырял ;) Просто надо в директивах для Гугла добавить…

    Ответить
  6. Алексей:

    Скажите, как запретить индексацию всего одного swf файла через robots.txt? Файл называется player.swf.

    Ответить
  7. Сергей:

    Так теперь ваш robot вообще из 5-и строчек состоит… и как результаты по прошествию одного месяца?

    Ответить
сайт web-ru.net
Я не спамлю...