Делаем правильный Robots.txt для Google и Яндекса
Чистим мусор и делаем хороший роботс.тхт
И снова о Гугле. Что-то он удивляет меня в последнее время… В одной из предыдущих статей я рассказал про интересное «отношение» Google к файлу robots.txt. А вчера заметил ещё кое-что.
Проверял данный сайт на индексацию в Гугле через RDS bar (дело обычное) — оказалось, что только 65% страниц участвуют в выдаче. Меня это удивило, т.к. ранее там было 98%. В общем, решил проверить наличие мусора в индексе и, как оказалось, там много чего есть.
Что может быть в индексе Гугла
Перед проверкой индексации robots.txt у меня был такой:
Нашлось вот что:
Мусор в Гугле 1
и
Мусор в Гугле 2
и много чего из папок wp-content и wp-includes, а также залетел туда и флеш-плеер, хотя уже несколько раз я делал запрос на удаление URL.
Меня удивляет, что Гугл держит в индексе файлы JS-скриптов, например, от плагина Qip Smiles (на первой картинке выше). Какой смысл так делать, ведь это просто код..
В Яндексе такого нет. Это тот редкий случай, когда Яндекс делает что-то лучше Гугла. Хотя зря я так про Яндекс, ну да не о том речь
Что ещё более удивительно — в индексе снова оказался feed сайта (для WordPress обычно это http://site.ru/feed/), который я также много раз удалял в интерфейсе Google Webmaster.
Ну и также:

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

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 можно вставить такое:
Теперь, когда кто-то зайдёт на URL вида
в шапке сайта появится
что говорит всем роботам о запрете такой страницы к индексации.
Аналогично можно сделать и с другими страницами и файлами с разными расширениями — нужно просто найти закономерность в их URL и задать условие на нужном языке программирования, по которому будет подставляться этот мета-тег.
Однако есть ещё и страницы со скриптами, текстовые документы и прочее (кстати, нередко на многих сайтах в индекс залетают .pdf-документы). Такие файлы не являются стандартными веб-страницами, написанными на HTML, поэтому meta name=’robots’ здесь не пройдёт.
Запрещаем индексацию скриптов и прочих ненужных файлов
Пришлось подумать над этой задачей. Сначала хотел использовать заголовок X-Robots-Tag, но действует он только для Гугла, так что понял, что нужно более универсальное решение.
Предположил, что универсальное решение находится в файле .htaccess. Поискал в Гугле — и кое-что нашлось. Причём на разных сайтах описаны разные методы.
Никогда раньше не использовал такого. В общем, вот, что я поместил в .htaccess:
— собрал это с разных сайтов, так что конкретного ничего не скажу по поводу этого кода. Главное, что тут есть: роботам 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 для Гугла и Яндекса (и для всего остального)
Сейчас для этого сайта у меня такой вариант:
Сначала хотел оставить Disallow: /feed/, т.к., несмотря на то, что он является XML-файлом (в .htaccess я их запретил), внешне этот файл является каталогом — URL заканчивается на «/». Но потом решил убрать для Гугла + удалил вручную в аккаунте вебмастера.
Пока не ясно, как подействуют правила в .htaccess, поэтому на всякий случай оставил одно правило для Яндекса. Если фид снова появится в Гугле — также дополню эту статью.
12.6.2015 — фид не появился. В общем, всё хорошо
Таким образом, если вы можете (а вы можете) запретить индексацию страниц с помощью всяких хитрых способов, то в robots.txt ничего запрещать не надо!
Обзор игровой партнерской программы LiveGames...лько часов. Правда и отправил я ее в самое удобное время, утром в рабочий
TerraLeads: CPA-сеть с уникальными COD нутра офферами...инства или почему TerraLeads Подведем резюме, почему стоит работать с TerraLeads,
Обзор курса по арбитражу трафика на CPA-партнёрках от profyseo.ruНу вот, пошла волна обзоров на данном сайте :). В предыдущей статье написал от...
Как увеличить глубину просмотра сайта с помощью панели поиска на сайте....и это будут новые темы для вашего нового контента. И такой контент, обязательно
SE Ranking – удобный инструмент для анализа сайта...Инструменты для кластеризации запросов; Настройка автоматического постинга
Спасибо Петр за полезный и нужный материал =)
Google уже давно говорит, чтобы не закрывали от него js и css. Он хочет видеть все, что видит пользователь. И на закрытые файлы указывает при проверке на мобильность.
Кстати да, .css и .js лучше открыть
Получается, что лучший роботс — это пустой роботс?))
В общем-то, да =)
(при условии, что всё предусмотрено)
Пока ничего менять на блоге не буду.
Буду ждать ваш результат, а то ещё напортачу что-нибудь и потом не смогу восстановить… %)
Запрещать в robots.txt НАДО! И ещё как! А то вылезет в выдачу всё, что не должно там быть. Но надо знать как правильно для Гугла это делать
Как-то тоже ковырялся в этой теме и кое-что наковырял
Просто надо в директивах для Гугла добавить…
Что добавить?
P.S.
Тут 1-й, 5-й и 10-й тизеры — не ваши?
Ну вообще-то я думал, что если кому-то будет интересно про «что добавить», то он зайдет ко мне на сайт и почитает соответствующую статью
А про тизеры никогда бы не подумал =-O Чесслово! 
Скажите, как запретить индексацию всего одного swf файла через robots.txt? Файл называется player.swf.
Попробуйте это:
Disallow: *player.swf
Так теперь ваш robot вообще из 5-и строчек состоит… и как результаты по прошествию одного месяца?
Результаты хорошие — 100% в основном индексе.