Всем привет, вас снова приветствует SEOinSoul – автор SEO блога seoinsoul.ru, можете подписаться на RSS и зафоловить меня в Twitter. Это уже второй мой гостевой на блоге Димка, итак начнем…

Все наверняка знают, что такое robots.txt, для чего он нужен и с чем его едят. Если кто же все-таки не в курсе, robots.txt – это текстовый файл, в котором содержатся инструкции для роботов поисковых систем.

image

В нем можно запрещать индексацию страниц или разделов на сайте, указывать правильное зеркало домена, указывать наличие sitemap.xml. Есть еще много различных функций команд, но мы поговорим о самых основных, озвученных мною. И рассмотрим это на примере самого популярного на сегодняшний момент движка WordPress.

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

User-Agent

Указывается имя робота, к которому применяются правила, описанные в robots.txt (не должно быть пустым)

Allow и Disallow

Разрешается, и, соответственно, запрещается доступ к некоторым разделам сайта, либо к всему ресурсу целиком. Allow поддерживается только Яндексом и Гуглом.

Сначала нужно использовать директиву Allow, а только после нее Disallow, и между ними не должно быть пустой строки, как собственно и с директивой User-Agent.

Host

Указание главного зеркала сайта. Используется только для Яндекса, который пишет по этому поводу: «Данная директива не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом»

Sitemap

Указание роботу наличия и пути карты сайта в формате xml

Существуют также спецсимвол *, который означает любую последовательность символов. Теперь перейдем к самому созданию robots.txt - создаем обычный текстовый файл и начинаем с первой директивы User-Agent. Вот список самых актуальных ботов для РУнета – Yandex, YandexBlog, Googlebot, StackRambler, msnbot (бот Bing).

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

User-agent: YandexBlog
Disallow:

User-Agent: *

Если будете использовать несколько юзерагентов, тогда перед каждым последующим обязательно должна быть пустая строка! И начинать лучше с конкретных роботов, а только потом использовать *. Так, теперь директивы Allow и Disallow.

Allow: /wp-content/uploads/
#здесь мы открываем доступ только к папке uploads для трафика по картинкам (в ней хранятся изображения загруженные через админку wp), т.к. затем будем закрывать от индексации папку более верхнего уровня wp-content.

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

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

Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /template.html
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content

Теперь уже выбор за вами, какие разделы вашего сайта или блога на WP, я лишь приведу пример закрытия популярных разделов:

Disallow: /tag
#вполне можно продвигать страницы тегов в поисковых системах, поэтому дважды подумайте перед закрытием их от индексации
Disallow: /category
Disallow: /archive
#будьте осторожны, обратите внимание на то, каким образом у вас в блоге выводятся статьи, т.к. в блоге статьи могут иметь урл – http://ваш сайт/archive/123, и вы можете закрыть их от индексации
Disallow: /author
#если таковой присутствует в вашем шаблоне

Теперь закрываем от индексации фиды, различные трекбеки, комментарии в вашем фиде и страницы поиска по сайту:

Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /?feed=
Disallow: /?s=

И наконец, две последние директивы:

Host: ваш сайт.ru
Sitemap: http:// ваш сайт.ru/sitemap.xml

С путем к карте сайта в формате xml думаю все понятно, а при указании главного зеркала, лично я почти всегда использую вариант без www, т.к. почти в каждом случае доменное имя так смотрится и запоминается лучше. Если же домен лучше упоминать с www, тогда укажите это в директиве Host.

Также существует еще несколько директив, которые помогут владельцам сайтов, например: Crawl-delay, Clean-param (о применении которого я писал, после выхода этой директивы - ”Яндекс вводит новую директиву для robots.txt”). Описание и применение всех этих директив, применительно к самой популярной поисковой системе - Яндексу, можно найти в его хелпе. В итоге у нас получается следующий robots.txt, который полностью готов для применения его на своем блоге:

User-agent: YandexBlog
Disallow:

User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /template.html
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /tag
Disallow: /category
Disallow: /archive
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /?feed=
Disallow: /?s=

Host: ваш сайт.ru
Sitemap: http://ваш сайт.ru/sitemap.xml



Комментариев к "Оптимизация robots.txt для WordPress": 48

  1. Оптимизация robots…. |

    […] Оптимизация robots.txt для WordPress — http://blog.dimok.ru/optimizatsiya-robots-txt-dlya-wordpress […]

  2. Мирза Алиев |

    Спасибо за статью, а то я все напутал походу у себя…

  3. Ovsyannikov Alexandr |

    Команда Allow, вроде как сейчас не принимается яндексом. Её использование бесполезно.
    Вместо Allow, надо сделать вот так:

    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes

  4. Cuprum |

    По поводу закрытия rss спорный момент. Google рекомендует не закрывать чтобы быстрее индексировать http://googlewebmastercentral.blogspot.com/2009/10/using-rssatom-feeds-to-discover-new.html

  5. ssoross |

    Сейчас Feed используется Google для ускорения индексации страниц, в виде замены карты сайта, так что если нет отдельной карты сайта, то лучше оставлять открытым для индексации. А настроить можно в панели инструментов вебмастера Google.

  6. студент SEO`шник |

    Спасибо за статью, я только не могу понять, зачем какие-либо страницы исключать из поиска? Ведь яндекс сам исключает то, что ему не нужно.

  7. Immunolog |

    Disallow: User-Agent: *

    Это неправильная директива, она не будет учитываться роботом

  8. Ovsyannikov Alexandr |

    Immunolog, Да кстати согласен.

    Надо вот так:

    User-agent: YandexBlog
    Disallow:

  9. wearbo |

    есть же автоматические генераторы карты. зачем огород городить? Или я неправ?

  10. SEOinSoul |

    Immunolog, Ovsyannikov Alexandr, ребят, все правильно User-Agent:* должен идти с новой строки — это просто косяк вышел с html разметкой и поэтому эта директива не перенеслась на новую строчку.

    Ovsyannikov Alexandr, насчет Allow, использует Яндекс ее, использует. Это можно легко проверить в Я.Вебмастере в инструменте «Анализ robots.txt»

    Cuprum, для Гугла и действительно можно не закрывать фид, т.к. он в общем снисходительнее Яндекса в отношении дублированной информации в рамках одного домена.

    студент SEO`шник, Яндекс не от хорошей жизни исключает страницы. И в основном исключает не страницу, а целый кластер.

    wearbo, да генераторы карты есть, но мы ведь говорим о роботсе.

  11. Archil |

    Я все равно не могу понять, зачем надо что-то менять, закрывать?

  12. dofollowblog |

    Если позаботиться о том, чтобы на страницы рубрик и архивов попадали не полные тексты постов, а анонсы, причем разной длины, и в разных количествах, и в разном порядке, то можно и не закрывать ничего.

  13. seokiev |

    Перед сном тяжело читаются технические посты. Завтра утром прочту еще раз и вникну, ведь важная эта штука robots.txt.

  14. Ovsyannikov Alexandr |

    SEOinSoul, Ок. Спасибо. Буду тогда Allow юзать, а то думал не поддерживает.

    Archil, для того, чтобы поисковики быстрее индексировали сайт или он все файлы будет индексировать или только главные. Есть же разница.
    К тому же в панели веб мастера ошибки возникают, так как яндексу не известны feed, xml, trackback. В роботс все эти форматы исключены, поэтому ошибок не должно быть.

  15. sup3rstar |

    Disallow:
    User-Agent: *

    Allow: /wp-content/uploads/

    Если я не ошибаюсь, то между Disallow: и User-Agent: * необходимо сделать пустую строчку, а между User-Agent: * и Allow: /wp-content/uploads/ убрать эту пустую строчку.

    И еще директиву Host: ваш сайт.ru лучше прописавыть отдельно для яндекс бота.

    За бота YandexBlog не знал, спасибо.

  16. rihh |

    А почему не закрываете

    Disallow: /2009
    Disallow: /2008
    Disallow: /2007

    это тоже дубль

  17. Archil |

    Ovsyannikov Alexandr, понял, видно это важная штука. Спасибо

  18. retimer |

    я использовал похожий robots, но потом отказался — решил, что яша сам разберется что куда. Но статья хорошая — можно применить к любому движку, а нетолько к wordpress.

  19. Ovsyannikov Alexandr |

    SEOinSoul, Почему так исправил?
    User-agent: YandexBlog
    Disallow:
    User-Agent: *

    Allow: /wp-content/uploads/

    Вот так же должно быть:

    User-agent: YandexBlog
    Disallow:

    User-Agent: *
    Allow: /wp-content/uploads/

  20. dimok |

    Ovsyannikov Alexandr, поправил

  21. spomoni |

    Прикольно, с поисковика сюда зашел, когда искал, как robots.txt правильно править )

  22. SEOinSoul |

    dofollowblog, да, правильно замечено, если для них сделать отдельную страницу или функцию в шаблоне, в таком случае их даже лучше оставлять.

    sup3rstar, насчет Host, такой рекомендации нигде не встречал, и на всех сайтах Яндекс пока правильно определял зеркало основной домен.

    Ovsyannikov Alexandr, ну собственно Димок уже откоментил :)

    retimer, безусловно, просто нужно знать особенность структуры этого движка и также не возникнет никаких проблем.

    rihh, верно, если на сайте используется календарь, или архив по месяцам тогда закрывать эти разделы тоже нужно.

    spomoni, ррр весь трафик Димку отдал :)

  23. бомж |

    Почему следует закрывать архивы? Это ведь тоже информация.

  24. DareDevil |

    подредактировал немного свой robots.txt, а так почти все в правильно настроено.

  25. Йа |

    Может проще написать Disallow: /wp тогда намного меньше будет писанины в роботс и можно будет убрать или Disallow: /wp-.
    Disallow: /wp-login.php
    Disallow: /wp-register.php
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content

  26. SEOinSoul |

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

  27. Валентин |

    Ценная информация, особенно если учитывать что АГС зверствует, чтобы перестраховаться лучше закрыть страницы дубли от индексации

  28. Ваше блоговодие № 14 | Блог Оксы о деньгах в сети |

    […] Оптимизация robots.txt для WordPress […]

  29. Я |

    Итак, вы предложили:

    User-agent: YandexBlog
    Disallow:

    User-Agent: *
    Allow: /wp-content/uploads/
    Disallow: /wp-login.php
    Disallow: /wp-register.php
    и т.д.

    А нужно ли это Allow: /wp-content/uploads/ ?
    Разве по умолчанию не разрешается все то, что не запрещено в disallow?

  30. mavick |

    Я, так там же дальше стоит
    Disallow: /wp-content , по идее он закрывает все что внутри…

  31. Я |

    А, значит, Allow: /wp-content/uploads/ добавлено, что противодействовать этой далее добавленной команде Disallow: /wp-content.

  32. Самая необходимая оптимизация wordpress | Маркетинг блога |

    […] robots.txt, но недавно на блоге Димка был опубликован пост: Оптимизация robots.txt для WordPress, и я стал пользоваться этой версией. Расхождение были […]

  33. Интервью на тему: "Гостевые посты" с Ильей автором seoinsoul.ru | Маркетинг блога |

    […] http://www.seoinsoul.ru, который недавно опубликовал гостевой пост “Оптимизация robots.txt для WordPress” на всем известном блоге […]

  34. Twin |

    Не проще вместо этого:
    Disallow: /wp-login.php
    Disallow: /wp-register.php
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content

    поставить следующее:
    Disallow: /wp-

  35. Как составить правильный robots.txt? | SEO-блог Ярыгина Виктора |

    […] wordpress: Оптимизация robots.txt для WordPress, единственное, правильнее, вместо строки: Allow: […]

  36. Tod |

    По моему Allow в роботс.тхт быть не должно — там можно только запрещать.
    Во-вторых, где-то читал, что директива Host понятна только для Яши, поэтому нужно отдельно прописывать правила для всех поисковиков * и отдельно для Яши. Что можете по этому поводу сказать?

  37. Caustikk |

    >> поэтому нужно отдельно прописывать правила для всех поисковиков * и отдельно для

    Всегда пишу правила для всех юзерагентов общие — гугль просто игнорирует некоторые директивы, но у него и обход более оптимально построен, чем у яндекса. Кстати, гугль лезет даже туда, куда явно запрещено…

  38. Валентин |

    Tod, Вы неправы. allow в роботсе быть может. и директория host понятно не только яше, но и гуглу, и другим поисковикам 😉

  39. Илларион |

    А нет ли случайно какого-нибудь плагина для создания robots.txt?

  40. Валентин |

    Илларион а на фтп зайти не судьба? это же дело 1 секунды :)

  41. Дмитрий |

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

  42. Дмитрий |

    Об этом файле можно уже книгу написать, каждый свое предлогает, я лично пользуюсь плагином для вордпрес надоело редактировать каждый раз чтото

  43. Михаил Гурболиков |

    Зачем закрывать комменты от индексации? Ведь от качественного коммента с указанием ключевых фраз может идти не плохой трафик.

  44. Иван Карабаджак |

    Спасибо. Вот мой вариант:
    http://jakeroid.com/sozdanie-optimalnogo-robots-txt-dlya-wordpress-a.html 

  45. dimok |

    неплохо, спасибо

  46. Иван Карабаджак |

    Пожалуйста. )

  47. Nizami Mammadov |

    А можно в список  Disallow: /author/  добавить?
    Пускай он один но все равно идет дублирование

  48. dimok |

    это по желанию

Оставьте комментарий