Правильная настройка robots.txt

SEO оптимизация

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

У нас с вами имеются в распоряжении два основных инструмента, с помощью которых мы можем управлять этим процессом. Во-первых, это, конечно же, файл robots.txt, который поможет нам запретить индексировать то, что не содержит основного контента (файлы движка и дубли контента) и именно о нем и пойдет речь в этой статье, но кроме этого существует еще один важный инструмент — карта сайта (Sitemap xml).

Почему так важно управлять индексацией сайта

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

Надо очень четко понимать, что не все содержимое интернет проекта (файлы и директории), созданного на каком-либо движке, должно быть доступно роботам поисковых систем.

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

Хорошим решением будет запрет всего лишнего в robots.txt (все буквы в названии должны быть в нижнем регистре — без заглавных букв).

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

Поэтому после написания требуемого роботса, его нужно сохранить в корневую папку, например, с помощью Ftp клиента Filezilla так, чтобы он был доступен, например, по такому адресу:

https://alexbrush.com/robots.txt

Кстати, если вы хотите узнать как выглядит этот файл у того или иного проекта в сети, то достаточно будет дописать к Урлу его главной страницы окончание вида /robots.txt. Это может быть полезно для понимания того, что в нем должно быть.

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

Директивы и правила написания файла robots.txt (disallow, user-agent, host)

Роботс имеет совсем не сложный синтаксис, который очень подробно описан, например, в хелпе яндекса. Обычно в нем указывается, для какого поискового бота предназначены описанные ниже директивы: имя бота (‘User-agent’), разрешающие (‘Allow’) и запрещающие (‘Disallow’), а также еще активно используется ‘Sitemap’ для указания поисковикам, где именно находится файл карты.

Еще полезно указать в этом файле, какое из зеркал вашего вебпроекта является главным в специальной директиве ‘Host’, которую понимает только Яндекс. Если даже у вашего ресурса нет зеркал, то полезно будет указать, какой из вариантов написания является главным — с www или без него. Т.к. это тоже является своего рода зеркалированием. Об этом я подробно рассказывал в статье про 301 редирект для доменов с WWW и без него.

Теперь поговорим немного о синтаксисе этого файла. Директивы в robots.txt имеют следующий вид:

<поле>:<пробел><значение><пробел>

<поле>:<пробел><значение><пробел>
Правильный код должен содержать хотя бы одну директиву «Disallow» после каждой записи «User-agent». Пустой файл предполагает разрешение на индексирование всего сайта.

Директива «User-agent» должна содержать название поискового бота. При помощи нее можно настроить правила поведения для каждого конкретного поисковика (например, создать запрет индексации отдельной папки только для Яндекса). Пример написания «User-agent», адресованной всем ботам зашедшим на ваш ресурс, выглядит так:

User-agent: *
Если вы хотите в «User-agent» задать определенные условия только для какого-то одного бота, например, Яндекса, то нужно написать так:

User-agent: Yandex
Бот каждой поисковой системы имеет своё название (например, для рамблера это StackRambler). Здесь я приведу список самых известных из них:

Google       http://www.google.com     Googlebot
Yahoo!       http://www.yahoo.com      Slurp (или Yahoo! Slurp)
AOL          http://www.aol.com     Slurp
MSN       http://www.msn.com     MSNBot
Live       http://www.live.com     MSNBot
Ask       http://www.ask.com     Teoma
AltaVista    http://www.altavista.com  Scooter
Alexa        http://www.alexa.com     ia_archiver
Lycos        http://www.lycos.com     Lycos
Яндекс       http://www.ya.ru         Yandex
Рамблер      http://www.rambler.ru     StackRambler
Мэйл.ру      http://mail.ru         Mail.Ru
Aport        http://www.aport.ru     Aport
Вебальта     http://www.webalta.ru     WebAlta (WebAlta Crawler/2.0)

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

Приведу несколько простых примеров использования директив с объяснением его действий.

1. Приведенный ниже код разрешает всем ботам проводить индексацию всего содержимого без каких-либо исключений. Это задается пустой директивой Disallow.

User-agent: *
Disallow:

2. Следующий код, напротив, полностью запрещает всем поисковикам добавлять в индекс страницы этого ресурса. Устанавливает это Disallow с «/» в поле значения.

User-agent: *
Disallow: /

3. В этом случае будет запрещаться всем ботам просматривать содержимое каталога /image/ (http://mysite.ru/image/ — абсолютный путь к этому каталогу)

User-agent: *
Disallow: /image/

4. В приведенном ниже примере будут запрещены директория «image», а так же все файлы и директории, начинающиеся с символов «image», т. е. файлы: «image.htm», «images.htm», каталоги: «image», «images1», «image34» и т. д.):

User-agent: *
Disallow: /image

5. При описании путей для директив Allow-Disallow можно использовать символы ‘*’ и ‘$’, задавая, таким образом, определенные логические выражения. Символ ‘*’ означает любую (в том числе пустую) последовательность символов. Следующий пример запрещает всем поисковикам индексацию файлов с расширение «.aspx»:

User-agent: *
Disallow: *.aspx

Во избежания возникновения неприятных проблем с зеркалами сайта рекомендуется добавлять в robots.txt директиву Host, которая указывает боту Yandex на главное зеркало. По правилам написания в записи для User-agent должна быть хотя бы одна директива Disallow (обычно ставят пустую, ничего не запрещающую):

User-agent: Yandex
Disallow:
Host: www.site.ru

либо

User-agent: Yandex
Disallow:
Host: site.ru

в зависимости от того, что для вас оптимальнее.

Директива Sitemap указывает на местоположение файла карты сайта (обычно он называется Sitemap.xml, но не всегда). В качестве параметра указывается путь к этому файлу, включая http:// (т.е. его Урл). Например:

Sitemap: http://site.ru/sitemap.xml
Мета-тег Robots — помогает закрыть дубли контента

Существует еще один способ настроить (разрешить или запретить) индексацию отдельных страниц вебсайта, как для Яндекса, так и для Гугле. Для этого внутри тега «HEAD» нужной вебстраницы дописывается МЕТА-тег Robots с нужными параметрами, и так повторяется для всех документов, к которым нужно применить то или иное правило (запрет или разрешение). Выглядеть это может, например, так:

<html>
<head>
<meta name="robots" content="noindex,nofollow">
<meta name="description" content="Эта страница ....">
<title>...</title>
</head>
<body>
...

В этом случае, боты всех поисковых систем должны будут забыть об индексации этой вебстраницы (об этом говорит присутствие noindex в данном мета-теге) и анализе размещенных на ней ссылок (об этом говорит присутствие nofollow — боту запрещается переходить по ссылкам, которые он найдет в этом документе) .

Существуют только две пары параметров у этого метатега: [no]index и [no]follow:

Index — указывают, может ли робот проводить индексацию данного документа
Follow — может ли он следовать по ссылкам, найденным в этом документе
Значения по умолчанию – «index» и «follow». Есть также укороченный вариант написания с использованием «all» и «none», которые обозначают активность обоих параметров или, соответственно, наоборот: all=index,follow и none=noindex,nofollow.

Для блога на WordPress вы сможете настроить мета-тег Robots, например, с помощью плагина All in One SEO Pack. Ну все, с теорией покончено и пора переходить к практике, а именно к составлению оптимальных robots.txt для Joomla, SMF и WordPress.

Как известно, у проектов, созданных на основе какого-либо движка (Joomla, WordPress, SMF и др), имеется множество вспомогательных объектов не несущих никакой информативной нагрузки.

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

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

Кроме того, следует стремиться к уникальности контента на своем проекте и не следует допускать полного или даже частичного дублирования контента (информационного содержимого). Дублирование может возникнуть в том случае, если один и тот же материал будет доступен по разным адресам (URL).

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

Если ваш проект создан на основе какого-либо движка, то дублирование контента будет иметь место с высокой вероятностью, а значит нужно с ним бороться, в том числе и с помощью запрета в robots.txt, а особенно в мета-теге, ибо в первом случае Google запрет может и проигнорировать, а вот на метатег наплевать он уже не сможет (так воспитан).

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

Но если с помощью описанного выше мета-тега создать запрет для архива тегов и временного архива (можно теги оставить, а запретить индексацию содержимого рубрик), то дублирования контента не возникнет. Для этой цели в WordPress лучше всего будет воспользоваться возможностями плагина All in One SEO Pack, ссылку на описание которого ищите чуть выше по тексту.

Еще сложнее с дублированием контента обстоит дело в форумном движке SMF. Если не производить тонкую настройку (запрет) через robots, то в поиск попадут многократные дубли одних и тех же постов. В Joomla тоже, кстати, иногда возникает проблема с дублированием обычных документов и их копий, предназначенных для печати.

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

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

Правильные robots.txt для Joomla, WordPress и SMF

Теперь давайте рассмотрим конкретные примеры роботса, предназначенного для разных движков — Joomla, WordPress и SMF. Естественно, что все три варианта, созданные для разных CMS, будут существенно (если не сказать кардинально) отличаться друг от друга. Правда, у всех у них будет один общий момент и момент этот связан с поисковой системой Яндекс.

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

Для нее советуют использовать отдельный блог User-agent, предназначенный только для Яндекса (User-agent: Yandex). Это связано с тем, что остальные поисковые системы могут не понимать Host и, соответственно, ее включение в запись User-agent, предназначенную для всех поисковиков (User-agent: *), может привести к негативным последствиям и неправильной индексации.

Как обстоит дело на самом деле — сказать трудно, ибо алгоритмы работы поиска — это вещь в себе, поэтому лучше сделать так, как советуют. Но в этом случае придется продублировать в директивеUser-agent: Yandex все те правила, что мы задали User-agent: *. Если вы оставите User-agent: Yandex с пустым Disallow:, то таким образом вы разрешите Яндексу заходить куда угодно и тащить все подряд в индекс.

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

Правильная настройка robots.txt для форума SMF

Для форума на движке SMF правильным будет файл следующего содержания (взят с форума технической поддержки из этой темы ) :

User-agent: *
Allow: /forum/*sitemap
Allow: /forum/*arcade
Allow: /forum/*rss
Disallow: /forum/attachments/
Disallow: /forum/avatars/
Disallow: /forum/Packages/
Disallow: /forum/Smileys/
Disallow: /forum/Sources/
Disallow: /forum/Themes/
Disallow: /forum/Games/
Disallow: /forum/*.msg
Disallow: /forum/*.new
Disallow: /forum/*sort
Disallow: /forum/*topicseen
Disallow: /forum/*wap
Disallow: /forum/*imode
Disallow: /forum/*action
User-agent: Slurp
Crawl-delay: 100

Обратите внимание, что данный вариант приведен для того случая, когда ваш форум SMF установлен в директории forum основного сайта. Если форум не стоит в директории, то просто удалите из всех правил /forum.

Авторы данного варианта роботса говорят, что он даст максимальный эффект, если вы не будете активировать на своем форуме дружественные URL (ЧПУ).

Дружественные URL в SMF можно активировать или дезактивировать в админке форума, пройдя по следующему пути: в левой колонке админки выбираете пункт «Характеристики и настройки», в нижней части открывшегося окна находите пункт «Разрешить дружественные URL «, где можете поставить или снять галочку.

Есть еще один вариант robots.txt для SMF (но, наверное, еще не окончательно оттестированный):

User-agent: *
Allow: /forum/*sitemap
Allow: /forum/*arcade # если не стоит мод игр, удалить без пропуска строки
Allow: /forum/*rss
Allow: /forum/*type=rss
Disallow: /forum/attachments/
Disallow: /forum/avatars/
Disallow: /forum/Packages/
Disallow: /forum/Smileys/
Disallow: /forum/Sources/
Disallow: /forum/Themes/
Disallow: /forum/Games/
Disallow: /forum/*.msg
Disallow: /forum/*.new
Disallow: /forum/*sort
Disallow: /forum/*topicseen
Disallow: /forum/*wap
Disallow: /forum/*imode
Disallow: /forum/*action
Disallow: /forum/*prev_next
Disallow: /forum/*all
Disallow: /forum/*go.php # либо тот редирект, что стоит у вас
Host: www.мой сайт.ru # указать ваше главное зеркало
User-agent: Slurp
Crawl-delay: 100

Как вы можете видеть в этом файле, директива Host, предназначенная только для Яндекса, включена в User-agent для всех поисковиков. Я бы, наверное, все-таки добавил отдельную директиву User-agent только для Яндекса, с повтором всех правил. Но решайте сами.

Правило:

User-agent: Slurp
Crawl-delay: 100

связано с тем, что поисковая система Yahoo (Slurp — это имя его поискового бота) сканирует сервер во много потоков, что может негативно сказаться на его производительности.

В этом правиле директива Crawl-delay позволяет указать боту Yahoo минимальный период времени (в секундах) между концом закачки одного документа и началом закачки следующего. Это позволит снять нагрузку на сервер.

Для запрета версий для печати рекомендуют проделать описанные ниже операции (для их осуществления понадобится открыть некоторые файлы SMF на редактирование с помощью программы FileZilla).

В файле Sources/Printpage.php находите (например, с помощью встроенного поиска в Notepad++) строку:

fatal_lang_error(472, false);
Вставляете сразу под ней:

$context[‘robot_no_index’] = true;
В файле Themes/название_вашей_темы_оформления/Printpage.template.php находите строку:

<meta http-equiv=»Content-Type» content=»text/html; charset=’, $context[‘character_set’], ‘» />
Вставляете ниже нее следующую строку:

<meta name=»robots» content=»noindex» />
Если вы так же хотите, чтобы в версии для печати была ссылка для перехода на полную версию форума (в случае, если часть страниц для печати уже прошла индексацию в Яндексе и Гугле), то в том же Printpage.template.php вы находите строку с открывающим тегом HEAD:
<head>

И вставляете ниже строку:

<a href=»http://www.мой сайт.ru/»>На форум</a>

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

Правильный robots.txt для Joomla

Рекомендованный файл для Джумлы выглядит так:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/

В принципе, здесь практически все учтено и работает он хорошо. Единственное, в него следует добавить отдельное правило User-agent: Yandex для вставки директивы Host, определяющей главное зеркало для Яндекса, а так же указать путь к файлу Sitemap.

Поэтому в окончательном виде правильный robots для Joomla, по-моему мнению, должен выглядеть так:

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/

 
User-agent: Yandex
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Host: vash_sait.ru
Sitemap: http://vash_sait.ru/index.php?option=com_xmap&sitemap=1&view=xml&no_html=1

Да, еще обратите внимание, что во втором варианте нет директивы Disallow: /images/, дающей запрет индексации картинок вашего сайта. Я забыл сначала акцентировать ваше внимание на этом, но мне об этом напомнил уважаемый Alex.

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

При создании интернет магазина для Joomla на основе компонента VirtueMart я столкнулся с тем, что в индексы поисковиков стали попадать версии для печати страниц этого самого магазина. Кнопка, ведущая на страницу для печати, была необходима (заказчик так хотел), поэтому оставался только вариант с их запретом в robots.txt.

Но все оказалось совсем не сложно. Дело в том, что для создания версии для печати в Джумле используется такой же Урл вебстраницы, за исключением одного: обращение идет не к index.php, а к index2.php. При этом не осуществляется загрузка шаблона, т.е. выводится только содержимое на весь экран.

Поэтому, для запрета версий для печати в VirtueMart я добавил в следующее правило:

Disallow: /index2.php?page=shop

Robots.txt для WordPress

Не буду приводить пример файла, который рекомендуют разработчики. Вы и сами можете его посмотреть. Многие блогеры вообще не ограничивают ботов Яндекса и Гугла в их прогулках по содержимому движка WordPress. Чаще всего в блогах можно встретить роботс, автоматически заполненный плагином Google XML Sitemaps.

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

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

 User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /webstat/
Disallow: /feed/
Disallow: /tag/
Disallow: /trackback
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Disallow: /*?
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /comments
 
User-agent: Yandex
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /webstat/
Disallow: /feed/
Disallow: /tag/
Disallow: /trackback
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Disallow: /*?
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /comments

Host: alexbrush.com (замените на свой сайт)
Sitemap: https://alexbrush.com/sitemap.xml 

Пока что индексация блога при таком варианте robots.txt меня полностью устраивает. Использую я и одноименный мета-тег (его я добавил в заголовки страниц с временными и теговыми архивами).

Для того, чтобы прописать этот тег Robots, я не прибегал к правке кода движка WordPress. В этом не было необходимости, т.к. все это можно осуществить простой установкой или снятием галочек в соответствующих пунктах чудесного плагина — All in One SEO Pack.

Постоянно учусь чему-то новому и совершенствую то, чем увлечён в данный момент. Люблю помогать людям и делиться знаниями по собственной инициативе.

По вопросам сотрудничества пишите https://t.me/alexbrush

SEO-специалист Александр Брушкивский - личный блог
Добавить комментарий