Денис Болтиков
Мысли вслух
блог дениса болтикова

Главная > 2009 > Идеальный robots.txt для Wordpress

 

 

Идеальный robots.txt для Wordpress

Идеальный robots.txt для Wordpress

Вступление
При индексации страниц пауки поисковых машин по умолчанию идут по всем ссылкам которые встречают. При этом часто они попадают на страницы с неподдерживаемым форматом данных (RSS, Atom, Trackbak) или служебные, а значит не нужные простому пользователю. Также роботы индексируют страницы не несущие никакой полезной информации, например авторизации и регистрации. Все это, в свою очередь, грозит захламлением результатов поиска по вашему сайту и более медленной индексацией полезной информации.

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

Беглый мониторинг блогосферы показал, что написано на эту тему довольно много, но в основном это или перепечатки с англоязычных сайтов, что для рунета не совсем подходит, или довольно старые посты. Причем в некоторых из этих советов встречаются ошибки.

О синтаксисе robots.txt

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

  • Между директивами User-agent и Disallow (Allow и прочими) не должно быть пустых строк. Пустая строка означает конец блока описания правил для указанного выше робота.
  • Директива Allow, не смотря на то что ее нет в стандарте существует, поддерживается Yandex и Google. Поэтому при желание ее можно применять.
  • Символы подстановки (* - последовательность любых символов и $ - конец строки) также отсутствует в стандарте, но поддерживаются Yandex и Google. Смело применяем.
  • Директива Host поддерживается только Яндексом. При этом она не указывает, какое доменное имя считать основным, как считают многие. Эта директива говорит роботу Яндекса какое из двух зеркал сайта главное. То есть пока робот не посчитал сайт с www и без www зеркалами эта директива работать не будет. Идти должна в конце блока после директивы Disallow (Allow).
  • Директива “Disallow: ” значит то же самое что “Allow: /” и наоборот.

Теоретическая часть

Подумаем, что нам надо запретить для индексации. Во-первых, админ-папку, а также страниц авторизации, регистрации и удаленного постинга в блог. Во-вторых, служебную папки с файлами для wordpress и папку с темами и плагинами. В-третьих фиды постов, комментариев трекбеки. Причем последнее не надо закрывать от поисковиков, которые ищут по блогам, например Яндекс.Блоги.

Пример правильного robots.txt

# Поиск Яндекса по блогам
User-agent: YandexBlog
Disallow:

# Все остальные
User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /?feed=
Allow: /wp-content/uploads/

Комментарии к robots.txt

Для поиска Яндекса по блогам разрешаем все. Для остальных запрещаем служебные директории и страницы, темы, плагины, фиды, трекбеки. Картинки и прочие документы загруженные через стандартный загрузчик Wordpress остаются доступными для индексирования.

Возможные проблемы

Данный вариант robots.txt может закрыть доступ к индексированию фида для всех остальных поисковиков по блогам. Неизвестно как себя поведет поиск по блогам от Google, так как отдельного имени его бота я не нашел.

Резюме

Этот вариант является рабочим и стоит на всех моих блогах. По мере исследования лога запросов будут вноситься изменения. Замечания и дополнения от читателей принимаются.

Ссылки по теме

———-
Реклама: Купить часы Mercedes-Benz

Ещё по теме:

 

Написано Январь 12, 2009


Комментарии

Стас - января 12, 2009 17:04
А почему для Яндекс.Блоги совсем ничего не запрещаем? Зачем индексировать, например, админку?

Денис Болтиков - января 12, 2009 17:40
Стас
А робот Яндекс.Блогов не полезет в админку. Он берет только фиды.
Можно конечно было бы разрешить ему все фиды и запретить все остальное, но это более длинный вариант. Мне было лень. В данному случае результат будет один и тот же.

AlexVolkov - января 12, 2009 20:02
Если используется pagenavi, то еще можно закрыть /page/*
Еще не хватает Host и Sitemap.

Денис Болтиков - января 12, 2009 23:19
AlexVolkov
Согласен, /page/ надо закрыть в любом случае для пресечения дублирования контента. Добавлю к себе в robots.txt
Про Sitemap будет один из следующих постов, когда разберусь с параметрами.
про Host. Более правильнее делать 301 редирект через htaccess, тогда не будет проблемы с зеркалами и необходимости в Host.

AlexVolkov - января 13, 2009 07:00
>>про Host. Более правильнее делать 301 редирект через htaccess, тогда не будет проблемы с зеркалами и необходимости в Host.
Вордпресс сам редиректит куда надо через 301, в зависимости от того, какой урл указан при инсталляции, в хтаксессе нет нужды. А хост в роботсе прописать — это так, для порядка.

Станиславский - января 13, 2009 07:25
А зачем закрывать page? Ведь там другая страница с совсем другим контентом.
Зачем закрывать sitemap? Карта сайта очень нужна Google и остальным поисковикам. Тогда индексация быстрей проходит.
А насчёт всего остального — спасибо! Поставлю, потом посмотрим результат;)

Денис Болтиков - января 13, 2009 10:04
Станиславский
/page/ надо закрывать потому что там дублирующий контент. Или какой другой контент отличный от текста постов ты имеешь ввиду?
Кто сказал что надо закрывать Sitemap? Во-первых это невозможно технически через robots.txt. Во-вторых ни у меня, ни в комментарих про это не слово. Наоборот было замечание что я про sitemap ничего не написал.

Станиславский - января 13, 2009 21:04
Я думал в комментарие AlexVolkov'a он это имел ввиду. Значит ошибся я.
Насчёт page/
Вы думаете, что робот может найти ссылки на посты в категориях/тегах и поэтому смысла нет открывать индексацию page/?

Валерий - января 13, 2009 22:23
Предпочитаю придерживаться стандарта, все-таки кроме Яндекса и Google есть другие поисковики :-)

AlexVolkov - января 13, 2009 23:16
>>Я думал в комментарие AlexVolkov’a он это имел ввиду. Значит ошибся я.
Я имел ввиду директивы сайтмап и хост ))
>>Насчёт page/
Вы думаете, что робот может найти ссылки на посты в категориях/тегах и поэтому смысла нет открывать индексацию page/?
Обычно для указания страниц используют sitemap[html|xml].
Кроме категорий у вп довольно сильная перелинковка, например теже Related Posts.
И неиндексировать это не значит не ходить по ссылкам.

disappear - января 14, 2009 04:08
Файл robots.txt, для моего блога, состоит из шести строк. Прочитал Вашу статью, и строчек в моём robots.txt наверняка прибавится. Статья очень полезная, т.к. любая информация о поведении поисковых машин очень полезна и необходима. А тут идет речь о непосредственном общении (если можно так выразиться) с машиной, и что немаловажно о способе воздействия на её поведение.

Олег - января 15, 2009 03:19
Рекомендую еще закрыть
Disallow: /catalog/
Disallow: /category/
в этой статье два раза повторяется
Disallow: */comments/

Денис Болтиков - января 15, 2009 14:43
Олег
Disallow: /catalog/ — это что еще за зверь в WP?
Disallow: /category/ — а вот этого деать не стоит, лучше не выводить полные посты, а только заголовок (и лид), например как у меня в блоге.
>> Disallow: */comments/
Нет, там две разные строчки, одна без звездочки в начале другая со звездочкой. Правда некоторыми поисковиками они скорее всего будут трактоваться одинаково. Надо проверить.

Андрей - января 25, 2009 15:18
Вопрос такой: зачем вот эти строки нужны:
Disallow: */comments/
Disallow: /comments/
Как понимаю запрет индексации комментариев, если да, то зачем?
Комментарии же сродни уникальному контенту, зачем от него отказываться?
А так впринцепе ни разу не делал этот роботс.тхт, щас как только ответите на вопрос попробуем вставить ваш. :)

Денис Болтиков - января 26, 2009 21:51
Андрей
Это запрет на индексирования фидов с комментариями. Поисковику которые не поддерживает индексацию фидов эти ссылки не к чему. Непосредственно страницы для индексирования открыты.

Максим Минин - января 28, 2009 20:28
я такой использую:
User-agent: *
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /wp-content/themes/

MLMовка - февраля 4, 2009 06:00
Полезно! Добавил.
Хотя если честно не до конца понимаю почему вообще нельзя без robots.txt

Денис Болтиков - февраля 5, 2009 12:38
MLMовка
если кратко, то robots.txt нужен
а) закрыть от индексации страницы которые поисковик вообще не сможет проиндексировать, это ускорит скорость индексации, так как за раз паук делает только определенное кол-во попыток
б) закрывает страницы с дублированным контентом, а это опять увеличивает скорость индексации и добавляет веса нужным страницам

TiamatInc - февраля 8, 2009 02:22
Благодарю за ценную информацию, наткнулся совершенно случайно, но сразу понял — то что надо. А то Яндекс достал уже с ошибками индексирования :- (

Satyr - февраля 8, 2009 20:53
блин, я уже запутался с этими «правильными» РОБОТС.
1. приводит ли отсутствие запрета /category/ и /tag/ к дублированию контента?
Я вот закрыл ради интереса — в итоге внутренние страницы не индексируются. паукам ходить не по чем.
А если оставить -в индексе появляются гавностраницы с /tag/ i /category/
:(:(:
Где грань между реальностью и параноей?:)
ЗЫ
«электропочта» — звучит жизнеутверждающе))))

Денис Болтиков - февраля 8, 2009 22:30
Satyr
Для того чтобы паук знал куда идти существует такая прекрасная вещь как sitemap.
Или надо оставить открытыми /category/ для индексации, но сделать как у меня просто вывод заголовка, или заголовка + первую сотню-две символов.

DI HALT - февраля 9, 2009 04:29
А смотря для какой цели. Если есть желание зарабатывать на сапе, то закрытие дублирующих страниц скажется на количестве ссылочных мест, а значит на потенциальном доходе.

Los Maniacos - февраля 16, 2009 19:58
Я конечно не знаю всего... но как то скептически отношусь к этому, считаю кпд от этих действий будет совсем не заметин

Los Maniacos - февраля 16, 2009 20:00
Хотя нет зря я так написал, робот вам скажет спасибо:)

olezha_85 - февраля 17, 2009 03:56
Вот мой, лазил читал, и собрал, хз правильный или нет :)
User-agent: Googlebot
Disallow:
User-agent: googlebot-image
Disallow:
User-agent: MSNBot
Disallow:
User-agent: Slurp
Disallow:
User-agent: Gigabot
Disallow:
User-agent: Robozilla
Disallow:
User-agent: psbot
Disallow:
User-agent: yahoo-blogs/v3.9
Disallow:
User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
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: */trackback
Disallow: */feed
Disallow: */comments
Sitemap: denis.boltikov.ru/sitemap.xml

TiamatInc - февраля 17, 2009 23:29
Сейчас после ввода тега rel="canonical" проблемы с дублированным контентом сходят на нет. Единственное узнать бы официальную позицию Яши по поводу этого тега... Может кто-нибудь находил информацию?

 

Денис Болтиков

Архив

Сайт создан в 2007 г. © Блог Дениса Болтикова | Seoded.ru — Создание сайта