Файл Robots.txt. Оптимизация WordPress

Доброго времени суток, уважаемые читатели. Продолжая серию статей по полной оптимизации WordPress, сегодня речь пойдет про очень важный документ – файл robots.txt. Как и обещала, статья будет полной, с подробностями и различными примерами. Если же вас просто интересует универсальный файл robots.txt, можете сразу скачать его себе по этой ссылке. Дальше будет много теории.

Вкратце, ещё раз напомню, что это за файл, и почему так важен.
Robots.txt – это файл в формате .txt (обычный текстовый формат блокнота), который располагается в корневой папке сайта (http://site.ru/robots.txt) и является документом, с помощью которого мы управляем поисковым роботом, а именно, индексацией своего сайта.
Зачем нужен этот файл и почему так важен?

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

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

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

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

Поэтому, прежде, чем махать рукой и не пользоваться рекомендациями, которые нам дают поисковые системы, просто зайдите на страницы с рекомендациями (Яндекс, Google) и посмотрите, сколько внимания поисковые системы уделяют этому файлу, возможно, после этого ваше мнение о его важности изменится.

Из личных наблюдений, я сделала такой вывод:
Если ваш сайт уже существует несколько лет, у него нет проблем с индексацией и ранжированием, то можно не переживать за файл robots.txt, и не бежать его быстро делать. Если же у вас молодой сайт, или вы только его создаете, или не молодой, но попал под какие-то санкции поисковых систем, сайт плохо индексируется и ранжируется, то файл robots.txt нужен, и главное, необходимо правильно его создать.
Этим сегодня с вами и займемся.
Обращаю внимание на то, что все описанные ниже команды будут актуальны только в том случае, если на сайте настроены ЧПУ, подробнее можете прочитать в статье Оптимизация WordPress. Структура сайта.
Стоит, пожалуй, начать с того, что единого правила составления файла robots.txt для всех поисковиков – нет. В принципе, и больших разногласий нет, но есть несколько исключений, которые необходимо учитывать, чтобы файл был корректно составлен.

Долго я думала, как более понятно объяснить все аспекты составления файла robots.txt, да если честно, так и не придумала, поэтому принимайте так, как в итоге это получилось :).

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

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

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

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

Итак, любой файл Robots.txt состоит из набора команд:
  1. User-agent - Обращение к определенному роботу поисковой системы или сразу ко всем роботам.
  2. Disallow или Allow - Запрещение или разрешение индексировать определенные разделы сайта.
  3. Sitemap - Указание адреса карты сайта.
Это так сказать, унифицированный список команд файла. Начнем с первой команды User-agent

Команда User-agent

Эта запись задает команду определенному роботу или всем сразу. Всех возможных роботов мы рассматривать не будем, но чаще всего приходится отдельно от всех обращаться к Яндексу. Не можем мы делать, как у всех, у нас должно быть свое, вот Яндекс и постарался сделать так, чтобы к нему обращались индивидуально. Для этого необходимо внести такую запись:
User-agent: Yandex
Далее, и это важно, для Яндекса, сначала необходимо указать разрешающую директиву Allow, и только после нее запрещающую Disallow. Именно в таком порядке
User-agent: Yandex
Allow:
Disallow:
Если сделать иначе, то робот Яндекса может не проиндексировать то, что находится в этой директиве. Вообще, директивой Allow редко пользуются, и применяется чаще всего она только для того, чтобы в закрытой директории служебных файлов открыть одну папку с изображениями сайта.

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

Просто все CMS так устроены, что папка с изображениями всегда находится именно там, к чему мы должны закрыть доступ, а благодаря этой команде мы можем открыть нужные документы.
В случае с WordPress это будет выглядеть так:
User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /wp-content
Обратились к Яндексу, сообщили, что необходимо запретить индексировать все, что находится в папке wp-content, за исключением папки uploads, в которой и находятся все картинки по умолчанию.

Ещё одной отличительной особенностью Яндекса является то, что ему необходимо сообщить главное зеркало сайта, как должен индексировать домен, с www или без. Директива, сообщающая эту информацию называется Host, полная запись будет такой:
User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /wp-content
Host: site.ru
На всякий случай уточню, что в практике, в директиве Disallow указывается намного больше к запрещению файлов и документов, мы это увидим чуть позже.

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

Теперь можно перейти к тем требования, которые есть у Google и по их подобию можно указывать команды для всех роботов.
User-agent: *
Disallow: /wp-content
Allow: /wp-content/uploads/
Как вы могли заметить, * (звездочка) означает обращение ко всем роботам, и поменялись местами Allow и Disallow. Обратите на это внимание, Google рекомендует сначала запретить, потом открыть.

Итак, в общем виде ваш файл Robots.txt должен выглядеть так:
User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /wp-content
Host: site.ru

User-agent: *
Disallow: /wp-content
Allow: /wp-content/uploads/
Sitemap: http://site.ru/sitemap.xml
Обратите внимание, между командами не должно быть пустых строчек, а между блоками команд – всегда должна быть одна пустая строка!
Мы с вами рассмотрели общий синтаксис файла robots.txt, теперь можно перейти уже, непосредственно, к составлению запрещающих команд, т.к. их бывает больше всего.

Команда Disallow

Чтобы не выдумывать примеры, воспользуюсь реальными командами для WordPress. Сразу и составим вместе правильный файл Robots.txt.

Для начала можно просто зайти в папку своего сайта на сервере хостинга, где каждый из вас увидит, практически, одну и ту же картину:

papki-na-hosting
Эти папки не имеют прямого отношения к тому, что должно быть показано пользователю на страницах вашего сайта, поэтому необходимо запретить их к индексации:
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Дальше, следует закрыть страницы с регистрацией и авторизацией на сайте:
Disallow: /wp-login.php
Disallow: /wp-register.php
Отдельно стоит обратить внимание на такие ссылки на страницах своего блога, как получить трекбек (ссылку), ссылки на оставить комментарий, подписаться на фид. Как правило, в WopdPress много подобный страниц, которые полностью дублируют уже существующую, но имеют другой URL адрес, поэтому необходимо выявить все подобные ссылки и запретить их к индексации. Готовый вариант такой:
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Обратите внимание на знак * – означает, что после названия домена может быть любое количество знаков (директорий сайта, папок, файлов), обозначающих путь к странице, но если в конце после / (слеш) есть слово trackback (feed, comments)то такую страницу не индексировать. Например, это может быть страница такого вида:
http://site.ru/category/name-post/trackback
Понятно, что статья имеет адрес:
http://site.ru/category/name-post
но, если вы обращали внимание, бывает, переходишь с ридера, и в адресной строке браузера отображается очень длинный непонятный адрес, который не является настоящим адресом страницы. Так вот чтобы ваш читатель мог получить настоящий адрес статьи, на каждой странице блога есть ссылка, которая имеет адрес:
http://site.ru/category/name-post/trackback
нажав на нее, посетитель вашего сайта будет направлен на канонический адрес страницы и сможет скопировать из адресной строки именно тот один единственный уникальный URL, чтобы поставить ссылку на ваш блог.

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

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

Обратила внимание, что многие забывают о том, что очень важно закрыть от индексации страницу с результатами поиска, если пользователь что-то искал на вашем сайте. В WordPress адреса этих страниц имеют вид:
http://site.ru/?s=запрос+пользователя
Значит перед нами стоит задача закрыть все подобные страницы. Запись будет вида
Disallow: /?s=
Отдельно хочу выделить такую ситуацию. Все мы знаем, как формируется главная страница блога. На ней отображаются все последние сообщения блога, и если их уже больше, чем должно быть на главной, они уходят на страницу, условно назовем ее "предыдущие посты". Обратите внимание, какой адрес имеют эти страницы, чаще всего такой:
http://site.ru/page/2
http://site.ru/page/3
По сути они повторяют главную страницу блога, поэтому я рекомендую их закрыть. Такой же листинг складывается и в рубриках и в тегах. Чтобы запретить эти страницы, указываем:
Disallow: /page
Disallow: */page/
В первом случае закрываются страницы, которые образуются от главной, во втором – от рубрик, тегов и архивов.

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

Итак, запись будет такого вида:
Disallow: /tag
Disallow: /archive
Disallow: /author
Если все же надо, то закрываем и рубрики (в WordPress они называются category).
Disallow: /category
Подведем итоги, что у нас получилось, уже соединив в одно целое команды для Яндекса и всех остальных роботов.

Готовый файл robots.txt

User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /archive
Disallow: /author
Disallow: /category
Disallow: /page
Disallow: */page/
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /?s=
Host: site.ru

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /archive
Disallow: /author
Disallow: /category
Disallow: /page
Disallow: */page/
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /?s=
Allow: /wp-content/uploads/
Sitemap: http://site.ru/sitemap.xml
Вот такой список мы получили. Чтобы упростить процесс, скачайте файл robots.txt, сохраните на компьютер, а затем, загрузите на свой хостинг в главную папку сайта. Не забудьте указать свой сайт в директиве Host и Sitemap, а также, я в файл поместила запрет на индексацию страниц тегов, архивов, рубрик и авторов, удалите то, что должно индексироваться.

Есть ещё один момент, в последних рекомендациях Google пишет о том, что кодировка файла должна быть UTF-8, у Яндекса об этом нет никаких рекомендаций, поэтому, наверно, будет лучше, если вы сохраните в кодировке, именно, UTF-8. А по ссылке выше, я уже сохранила в этой кодировке.

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

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

Поэтому, если вы в чем-то сомневаетесь, вы всегда можете, непосредственно, в инструментах для вебмастера Яндекс и Google проверить конкретные страницы на предмет, разрешены или запрещены они в файле robots.txt. Также, всегда можете обратиться к справочной информации поисковиков, тем более, мы рассмотрели не все возможные команды, но наиболее часто встречающиеся.

На этом все. Всех желающих приглашаю прочитать интервью со мной на блоге Все гениальное просто. На мой взгляд, интервью получилось интересным, и у вас есть возможность узнать обо мне побольше.
В блоге установлена система комментариев Disqus. Если Вы не знаете, как оставить комментарий, прочитайте инструкцию Как пользоваться Disqus. Если Вы хотите установить Disqus в свой блог, как это сделать описано в статье Как установить Disqus в блог.