Улучшаем индексацию сайта поисковиками — Robots.txt для Joomla, SMF, WordPress — Часть 1

Для продвижение вашего сайта важно не только его уникальное наполнение, но и то, как индексируется ваш сайт. Надо очень четко понимать, что не все содержимое сайта (файлы и директории), созданного на каком-либо движке (Joomla, SMF или WordPress), должно быть доступно для индексирования. Если не прописать определенные правила поведения для ботов поисковых систем, то в индекс поисковиков попадет множество страниц, не имеющих отношения к содержимому сайта, а также может произойти многократное дублирование информации (по разным ссылкам будет доступен один и тот же материал сайта), что поисковики не любят.
Назначение и синтаксис файла robots.txt
Для того, чтобы задать правила поведения для поисковых ботов используется файл robots.txt. С его помощью мы сможем влиять на процесс индексации сайта. Robot.txt представляет из себя обычный текстовый файл, который вы сможете создать, и в дальнейшем редактировать, в любом текстовом редакторе (например, Notepad++). Поисковый робот будет искать этот файл в корневом каталоге вашего сайта и если не найдет, то будет индексировать все до чего сможет дотянуться. Поэтому после написания требуемого файла robots.txt (все буквы в названии должны быть в нижнем регистре — без заглавных) его нужно сохранить в корневую папку сайта, так чтобы он был доступен по такому адресу: http://vash_site.ru/robots.txt.
Кстати, если вы хотите узнать как выглядит файл robots.txt того или иного сайта, то достаточно будет дописать к адресу главной страницы этого сайта /robots.txt. Это может быть полезно для определения наилучшего варианта для вашего файла robots.txt, но при этом надо учитывать, что для разных сайтовых движков оптимальный файл robots.txt будет выглядеть по разному. Поэтому если вы хотите определиться с лучшим вариантом файла, допустим для форума на SMF, то и изучать файлы robots.txt нужно для форумов, построенных на этом движке.
Файл robots.txt имеет совсем не сложный синтаксис, который очень подробно описан, например, в . Обычно, в нем указывается для какого поискового робота предназначены описанные ниже директивы (директива 'User-agent'), сами разрешающие ('Allow') и запрещающие директивы ('Disallow'), а также еще активно используется директива 'Sitemap' для указания поисковикам, где именно находится файл карты сайта. Еще полезно указать в файле robots.txt какое из зеркал вашего сайта является главным в директиве 'Host'. Если даже у вашего сайта нет зеркал, то полезно будет указать в этой директиве, какой из вариантов написания вашего сайта является главным с www или без него. Т.к. это тоже является своего рода зеркалированием. Об этом я подробно рассказывал в этой статье: Домены с www и без www — история появления, использование 301 редиректа для их склеивания.
Теперь поговорим немного о правилах написания файла robots.txt. Директивы в файле robots.txt имеют следующий вид:
<поле>:<пробел><значение><пробел> <поле>:<пробел><значение><пробел>
Верный файл robots.txt должен содержать хотя бы одну директиву «Disallow» после каждой записи «User-agent». Пустой файл robots.txt предполагает разрешение на индексирование всего сайта. Директива «User-agent» должна содержать название поискового робота. При помощи этой директивы можно указать каждому конкретному поисковому роботу, какие страницы сайта индексировать, а какие нет. Пример написания директивы «User-agent», адресованной всем поисковым ботам зашедшим на ваш сайт, выглядит так:
User-agent: *
Если вы хотите в директиве «User-agent» задать условия индексирования только для какого то одного поискового робота, например, Rambler, то нужно написать так:
User-agent: StackRambler
Робот каждой поисковой системы имеет своё название (например, для рамблера это 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)
У крупных поисковых систем иногда кроме основных поисковых ботов имеются также отдельные боты для индексации блогов, новостей, изображений и т.д. Много информации по разновидностям поисковых роботов вы можете почерпнуть на . Приведу несколько простых примеров файла robots.txt с объяснением его действий.
-
1. Приведенный ниже код для файла
robots.txt разрешает всем поисковым ботам индексировать весь сайт. Это задается пустой директивой Disallow.
User-agent: * Disallow:
2. Следующий код, напротив, запрещает всем поисковикам индексировать сайт. Устанавливает это директива Disallow с «/» в поле значения.
User-agent: * Disallow: /
3. Такой файл robots.txt будет запрещать всем поисковикам индексировать содержимое каталога /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
Во избежания возникновения неприятных проблем с зеркалами сайта (Домены с www и без www — история появления, использование 301 редиректа для их склеивания) , рекомендуется добавлять в файл robots.txt директиву Host, которая указывает роботу Яндекса на главное зеркало вашего сайта (Директива Host, позволяющая задать главное зеркало сайта для Яндекса). По правилам написания robots.txt в записи для User-agent должна быть хотя бы одна директива Disallow (обычно ставят пустую, ничего не запрещающую):
User-agent: Yandex Disallow: Host: www.site.ru
либо
User-agent: Yandex Disallow: Host: site.ru
в зависимости от того что для вас оптимальнее.
Директива 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.
Ну все, с теорией покончено и пора переходить к практике, а именно, к составлению оптимальных файлов robots.txt для Joomla, SMF и WordPress. Но об этом уже во второй части статьи.
Вы так же можете ознакомиться с другими статьями на тему продвижения сайта:
На сегодня все. Если вы не хотите пропустить появление новых материалов на этом сайте, то можете подписаться на рассылку новостной ленты через форму, расположенную чуть ниже, или же выбрать удобный для вас способ подписки на странице Подписка. Если у вас остались нерешенные вопросы из области вебмастеринга, то вы можете поискать на них ответы, посетив страницу Вопросы и ответы или же просмотреть статьи рассортированные по рубрикам.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Почитать еще на эту же тему:

Познавательно! Спасибо!
Скажите а если на одном сайте стоит joomla и wordpress и оба генерируют карту сайта ак в атком случае поступить? Прописать доступ к 4 картам?
Роман, да. У меня на одном сайте установлена Joomla, а в папке форум на Smf. В роботе прописаны пути к обоим картам сайта.
Спасибо. Премного благодарен за советы.
Спасибо, помню из за неправильного файла Robots.txt столько проблем было на сайте
отличный туториал, все расжевано и разложено по полочкам.
думаю лишним не будет добавить в статью типовой robots.txt для указанных CMS
maloy75, как раз об этом и хотел рассказать во второй части статьи
Браво! полную инфу для себя нашел, а то на других ресурсах только половину этого... Админ спасибо!
Дмитрий в вашем robots.txt прописаны правила на запрет к папкам /cgi-bin, /wp-admin и т.д. для всех роботов: User-agent: *
Но в секции для робота Yandex ограничений нет: Disallow:
И доступ для индексации роботом Yandex к тем же папкам /cgi-bin, /wp-admi... открыт. Это можно проверить здесь
Вопрос — это ошибка или я чего то не понял? =)
Max, спасибо большое за очередное и очень(!) *THUMBS UP* ценное замечание. Действительно, проворонил. Поправил, в теперяшнем варианте для яндекса повторяются все те же правила, что и для всех. Может есть вариант поэлегантнее, как думаете?
Пока сам в поиске, как только найду сообщу. Мне кажется Ваш нынешний вариант вполне не плох, у меня такой же *THUMBS UP*
Так как директива Host поддерживается и другими роботами кроме Яндекса (например Google), то как сказано на Яндекс вебмастер: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву 'Host' необходимо добавлять в группе, начинающейся с записи 'User-Agent', непосредственно после директив 'Disallow'('Allow')
----------------------------
То есть не обязательно составлять отдельное правило для Yndex. И Host можно приписать к User-agent: *
Какие соображения на этот счет?
Max, извините за задержку с ответом. Я не знаю точно как обстоят дела именно сейчас. Я встречал достаточно часто утверждение, что для яндекса нужно писать свою директиву, чтобы не вводить в заблуждение роботов других поисковиков. Так ли это актуально на данный момент не знаю. Красивей, конечно же было бы обойтись одной директивой, но будет ли это гуд, вот в чем вопрос.
Ну тогда лучше подстраховаться и создать две секции User-agent: Yandex и User-agent: * как это сделано на robotstxt.org.ru
Думая, что да. Тем более, что на таком ресурсе априори не должны ошибаться.
Появился вот такой вопрос. Полазил по местным сайтам, но так и не нашёл у них robot.txt
Как же их тогда индексирует гуугл?
Да к тому же у них ещё картники индексируются, а я пытался сделать на своём, но не получилось.
И ещё: Disallow: /images/
Allow: /images/morfeoshow/
если так написано, это правильно?
Boriss, если нет файла robot.txt, то значит никаких ограничений на действия поисковых ботов не накладывается и сайт будет весь индексироваться. В начале этой статьи я попытался объяснить почему это не очень хорошо — Улучшаем индексацию сайта поисковиками — Robots.txt для Joomla, SMF, WordPress — Часть 2
По поводу второго вашего вопроса. Вы можете написать эти правила в вашем robot.txt, а затем зайти в панель вебмастеров яндекса или гугла и проверить разрешена ли индексация картинок в данной папке. При необходимости вносите изменения в файл и опять проверяете в панели вебмастеров. Про панели вебмастеров можно почитать здесь:Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 1 и здесь: Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 2
Вопрос по индексации: если я запрещаю индексацию блога (гденибуть на ЖЖ) или rss фида, то это значит:
1. бот не заходит на такие страницы в принципе
2. бот заходит на страницу и не учитывая текст на странице, проходит далее по ссылкам на этой странице?
С уважением
Nikita: выскажу свое понимание этого вопроса, но возможно, что оно окажется несколько не верно (уж не обессудьте, я не профи).
Если вы запрещаете индексацию чего-то через robot.txt, то бот не будет тратить на просмотр запретного содержимого свое время. Нельзя, так нельзя. Но, если индексация запрещается через мета-тег Robots, то в этом случае возможны варианты. Все зависит от атрибутов noindex,nofollow. Вы можете почитать об это в конце этой статьи.
Помогите! Сделала robots.txt для сайта, запихнула в Анализатор Яндекса, получали там вот такую красоту: О╩©User-agent: Yandex
То есть Яндекс первую строку моего robots.txt так видит... И естественно считает, что файл кривой и прочесть его дальше не может... Хотя никаких закорючек там в начале нет, клянусь! Что делать?
Спасибо! Ната
Ната: возможно, что проблема в том редакторе, где вы создавали файл robots.txt. Попробуйте скопировать содержимое файла через буфер обмена в Notepad++ и сохранить как robots.txt, может быть поможет.
Дмитрий:
Дмитрий, отчасти вы возможно правы — я создавала файл в обычном блокноте. Потом мне посоветовали notepad++ и я скопировала текст туда. Не помогло. Создала в notepad++ файл с нуля. То же самое. Кодировка у меня utf-8. Могут быть еще какие-то секреты...? Заранее благодарна! Н.
П.С. На всякий случай, вот содержание всего файла:
User-agent: Yandex
Allow: /
Sitemap: (тут идет полный путь к файлу sitemaps)
Оно открывается по ссылке именно так...
Ната: к сожалению, у меня больше нет вариантов, что может быть причиной данного казуса. =-O
Дмитрий: это ужасно... ((( но спасибо Вам за попытку...
тоже не плохой файл по содержанию.
Пожалуйста, скажите, а где все эти штуки в ЖЖ? По какой ссылке следует перейти, чтобы их там найти?
Столько проблем, ничего не понимаю:
1. Как для дневника в жж составить карту сайта и робот тхт?
2. Куда именно в голову и где она в платном аккаунте стандарт классик вставлять метатеги с описанием и ключевыми словами?
3. Анализ сайта выявил какие-то ошибки и не знаю, как их исправить и ужасно расстраиваюсь...
Спасибо, если хоть что-то ответите, а то все только смеются. Между прочим, я ни над кем не смеюсь, когда задают вопросы по философии, а отвечаю, как могу...
Ольга: с ЖЖ слабо знаком. Затрудняюсь ответить. Извините.
Ната говорит, что:
Скорее всего дело в кодировке сайта, попробуй в настройках изменить кодировку сайта при сохранение документа! Должно помочь!
Валерий:
ГДЕ эта кодировка сайта, в каком месте жж ? И КАК ее изменять? Спасибо, но я не придуриваюсь, я не знаю.
Вот написала пост в жж — тоже никто не знает —
Даже как закладки в Гкгле и то не объясняют, не то что про карту сайта и робот тхт...
Спасибо! Я на твоем сайте нахожу такое огромное количество полезной инфы, практичной. Для моей joomla/
Спасибо!
Николай: пожалуйста.
настроила по Вашим рекомендациям буду ждать развития
Я только начинающий в этом деле и по этому открыл сайт в готовом шаблоне на одном сайте(ступил, ну ладно). Я делаю анализ индексации, он мне выдает вот такое:
User-Agent: *
Disallow: /forum/memberlist.php
Disallow: /forum/search.php
Disallow: /forum/profile.php
Disallow: /index.php
Host:здесь название моего сайта
то что написано после «Disallow: /» во всех 4 случаев к моему сайту не относится...это как?
второй вопрос: как в моем случае изменить robot.txt?т.к. индексация не проходит!!!
Спс хорошая статья!