Составляем файл robots.txt для блога на WordPress

16 февраля 2011
867

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

Для начала ответим на вопрос, так ли он вам нужен. Серьёзно, простому сайту, сделанному не на серверной CMS, которому нечего скрывать от поисковиков этот файл не нужен. Где-то даже сам робот разберётся, что и как индексировать, исходя из своих алгоритмов. Ну а если ваш блог сделан на WordPress, как и мой, то за составление robots.txt надо браться в первую очередь. Обязательным требованием только являются настроенные ЧПУ (человеко-понятные урлы) на вашем блоге.

Итак, вто что получилосьу меня:

User-agent: Unknown robot
Disallow: /
User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-content
Disallow: /wp-includes
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /feed
Disallow: /page
Disallow: /author
Disallow: /trackback
Disallow: /comments
Disallow: */feed
Disallow: */page/
Disallow: */trackback
Disallow: */comments
Disallow: /?s=
Disallow: /*?
Disallow: /goto/
Disallow: /category/*/*
Crawl-delay: 5
Host: desiter.ru
User-agent: Googlebot-Image
Disallow:
Allow: /*
User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/cache
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /feed
Disallow: /page
Disallow: /author
Disallow: /trackback
Disallow: /comments
Disallow: */feed
Disallow: */page/
Disallow: */trackback
Disallow: */comments
Disallow: /?s=
Disallow: /*?
Disallow: /goto/
Disallow: /category/*/*
Allow: /wp-content/uploads
Sitemap: http://desiter.ru/sitemap.xml

А теперь разберёмся, что всё это значит.

Директива User-agent: Unknown robot указывает, что последующие команды адресованы неизвестному роботу. Командой Disallow: / мы запретили ему лазать по нашему блогу. Раз неизвестен, значит, либо совсем незначительная поисковая система, либо робот какой-нибудь вредоносной программы. Так что этой командой мы себя обезопасили, да ещё снизили нагрузку на сервер.

Далее идут команды для поискового робота от Яндекса. Список директив для него чуть-чуть, но отличается от команд для роботов других поисковых систем, поэтому мы выделили для него отдельный блок и поставили впереди.

Сначала мы разрешили ему индексировать папку upload,  в которую попадают загруженные на блог картинки. Это важно, потому что дальнейшими командами мы запретили к индексации все прочие папки, относящиеся к работе CMS WordPress. Для поисковой системы это мусор, в котором ещё и дублирующий контент может попасться.

Разрешающая директива  Allow: должна идти впереди запрещающей Disallow:.

xmlrpc.php - не знаю, за что отвечает это файл, но Яндекс индексировать его любит (а как я уже упоминал, иной раз сообразительный робот сам исключает мусор из индекса, но не этот файл). Рекомендуется запретить к индексации.

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

Некоторые команды, как вы могли заметить, похожи. Например, Disallow: /feed и Disallow: */feed. Первая запрещает фиды, найденные в папке feed, которая лежит в корневой папке вашего домена. Вторая запись находит аналогичные папки с большей глубиной вложенности, то есть между папкой feed и корневой папкой могут находится промежуточные папки.

Спецсимвол * подразумевает любое число любых символов.

Запись Disallow: /page запрещает к индексации дублирующие страницы, появившиеся в результате установки плагина page-navi.

Запись Disallow: /?s= запрещает к индексации результаты поиска.  Про них почему-то часто забывают, а ведь это всё то же дублирование. Рекомендуется всем.

Disallow: /goto/ - ещё одна запись, необходимость которой возникла с установкой плагина. В этот раз для счастливых обладателей плагина WP No External Links. Плагин служит для преобразования внешних ссылок во внутренние. Сам факт наличия  внутренних ссылок - вроде хорошо. Но вы получаете ещё и страницы на своём домене, полностью идентичные страницам с других доменов. Это те самые, на которые вы ссылались.

Crawl-delay: 5 - директива специально для Яндекса, Гуглом не понимается. Указывает роботу заглядывать на сайт не чаще, чем раз в 5 секунд. Чаще всё-равно нет смысла, однако нагрузку на сервер создаёт.

И, наконец, обязательный момент - указание ндексу вашего основного домена - Host: desiter.ru. Обратите внимание, что домен www.desiter.ru в моём случае является зеркалом указанного основным домена desiter.ru. Также имеет смысл только для Яндекса.

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

Теперь переходим к директивам для роботов прочих поисковых систем. Как видите, в моём случае получился почти полный повтор команд из блока для Яндекса. Отличия найдёте, думаю, сами.

Последняя директива, завершающая составление файла robots.txt - Sitemap:. В ней вы указываете путь до вашей карты сайта - файла sitemap.xml. Этот файл не менее важен, чем сам robots.txt, он содержит ссылки на все страницы вашего ресурса, и способствует индексации. Обязателен к применению.

В результате у нас получилось несколько блоков команд. Файл robots.txt читается последовательно. Сначала отсеиваются все неизвестные роботы, потом выполняются указания для известных ботов Яндекса и Google Image, и, наконец, для остальных известных ботов.

Напомню, что файл должен лежать в корневой директории вашего ресурса. Если он там уже есть, отредактируйте имеющийся. Это можно сделать в "блокноте". Если нет, создайте новый.

Если есть замечания, пожелания или вопросы по статье, пишите в комментариях. Удачи.

Related Posts Plugin for WordPress, Blogger...

11 комментариев к записи “Составляем файл robots.txt для блога на WordPress”

  1. Demetr

    Страницы рубрик и тегов теперь запрещать не обязательно. WordPress делает их каноническими. Посмотрите код страницы в любой из рубрик.

    [Ответить]

  2. tiesto

    И я себе перенастроил =- может нагрузка на сервак будет поменьше - хотя я не думаю что сильно оно влияет на ето!

    [Ответить]

  3. Denis_Chuprina

    Спасибо за инфу, как раз нашел полезную часть робот.тхт)

    [Ответить]

  4. Рома

    огромное спасибо! очень помогли

    [Ответить]

    deSiter (мой Twitter:  deSiter)

    Всегда рад помочь)

    [Ответить]

  5. kladez-zolota (мой Twitter:  Luxus2)

    для меня здесь существует несколько проблем и первая, что у одного из блогов нет доступа к корневой папке
    У второго корневая папка доступна, но то kb я что-то не так делала, но яндекс пишет что у меня файла robots.txt просто не существует.

    [Ответить]

    Nomad (мой Twitter:  deSiter)

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

    [Ответить]

  6. sherhan (мой Twitter:  sherhan_)

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

    [Ответить]

    deSiter (мой Twitter:  deSiter)

    Да, ясность изложения у меня хромает) В качестве образца можно использовать код моего роботс.ткст, приведённый в статье. Только host и sitemap поменять. Если есть какие-то вопросы, обращайся - всегда помогу.

    [Ответить]

  7. СерыйШансон

    А зачем запрещать контент индексировать? Это же самое главное, что есть в блоге.

    [Ответить]

    deSiter (мой Twitter:  deSiter)

    Так ведь запрещаем к индексированию только дубли. В единичном оригинальном экземпляре каждая страница остаётся открытой.

    [Ответить]

Комментируйте - автору важно ваше мнение!

Дополнительно: