Улучшаем индексацию сайта поисковиками — Robots.txt для Joomla, SMF, WordPress — Часть 2
Это вторая статья из серии, посвященной созданию и оптимизации файла robots.txt (с содержанием первой статьи вы можете ознакомиться здесь: Улучшаем индексацию сайта поисковиками — Robots.txt для Joomla, SMF, WordPress — Часть 1) . Файл robots.txt в купе с мета-тегом Robots позволяют указать поисковым системам какие страницы вашего сайта нужно индексировать, а какие нет. К тому же, у сайтов, созданных на основе какого-либо движка, имеется множество вспомогательных файлов не несущих никакой информативной нагрузки. Если не запретить индексацию этих файлов в robots.txt, то время, отведенное поисковыми системами на индексацию вашего сайта, будет тратиться на перебор поисковыми ботами файлов движка на предмет поиска в них информационной составляющей. В этом случае, времени на полноценную индексацию страниц вашего сайта может не остаться.
Проблема дублирования контента, которую призван решать файл robots.txt
Кроме того, не следует допускать дублирования контента (информационного содержимого) вашего сайта в индексе поисковых систем. Дублирование может возникнуть в том случае, если один и тот же материал будет доступен по разным адресам. Если ваш сайт создан на основе какого-либо движка (Joomla, SMF, WordPress), то дублирование контента будет возможно с высокой вероятностью.
Например, в WordPress, страницы с очень похожим содержимым, могут попасть в индекс поисковика если разрешена индексация содержимого рубрик, содержимого архива тегов и содержимого временных архивов. Но если с помощью мета-тега Robots запретить индексацию архива тегов и временного архива (можно теги оставить, а запретить индексацию содержимого рубрик), то дублирования контента не возникнет. Еще сложнее с дублированием контента обстоит дело в форумном движке SMF. Если не производить тонкую настройку индексации сайта поисковиками в robots.txt, то в индекс попадут многократные дубли одних и тех же постов. В Joomla иногда возникает проблема с дублированием контента обычных страниц и их копий, предназначенных для печати.
Файл robots.txt предназначен для задания глобальных правил запрета индексации в целых директориях, либо в файлах и директориях, в названии которых присутствуют заданные символы (по маске). Примеры задания таких правил вы можете посмотреть в первой статье этой сериии: Назначение и синтаксис файла robots.txt. Для запрета индексации одной единственной страницы, удобно использовать мета-тег Robots, который прописывается в шапке (между тегами HEAD) нужной страницы. Подробно о синтаксисе мета-тега Robots можно почитать здесь: Назначение и синтаксис мета-тега Robots. Для запрета индексации внутри страницы можно использовать тег NOINDEX, но он, правда, поддерживается только поисковиком Яндекс.
Включение директивы Host в файл robots.txt для Яндекса
Теперь давайте рассмотрим конкретные примеры файла robots.txt, предназначенного для разных движков сайта. Рассматриваться будут движки Joomla, SMF и WordPress. Естественно, что все три файла robots.txt, созданные для разных движков, будут существенно (если не сказать координально) отличаться друг от друга. Будет в них, однако, один общий момент. Т.к. в рунете поисковик Яндекс имеет большой вес и нужно учитывать все нюансы его работы, то для корректной индексации вашего сайта именно Яндексом, нужно не забывать добавлять директиву Host в ваш файл robots.txt. Эта директива, в явной форме, укажет Яндексу главное зеркало вашего сайта. Более подробно почитать об этом вы можете здесь: Директива Host, позволяющая задать главное зеркало сайта для Яндекса.
Для указания этой директивы советуют использовать отдельную директиву User-agent, предназначенную только для Яндекса (User-agent: Yandex). Это связано с тем, что остальные поисковики могут не понимать директиву Host и, соответственно, ее включение в директиву User-agent, предназначенную для всех поисковиков (User-agent: *), может привести к негативным последствиям. Как обстоит дело на самом деле — сказать трудно, ибо алгоритмы работы поисковиков — это вещь в себе, поэтому лучше сделать так, как советуют. Но в этом случае вам придется дублировать в директиве User-agent: Yandex все те правила, что вы задали в директиве User-agent: *. Если вы оставите директиву User-agent: Yandex с пустой директивой Disallow:, то таким образом вы разрешите Яндексу индексировать все содержимое вашего сайта.
Прежде чем перейти к рассмотрению конкретных вариантов файла robots.txt, хочу вам напомнить, что проверить работу своего файла robots.txt вы можете в панелях вебмастеров поисковых систем. О том, как это сделать, вы можете почитать здесь: Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 1, Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 2.
Оптимальный файл robots.txt для форума на SMF (Simple Machines Forum)
Для форума на SMF оптимальным будет файл robots.txt следующего содержания (файл взят с форума технической поддержки 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
Обратите внимание, что этот файл приведен для того случая, когда ваш форум установлен в директории forum основного сайта. Если форум не стоит в директории, то просто удалите из всех правил /forum. Авторы данного варианта файла robots.txt для SMF говорят, что он даст максимальный эффект, если вы не будете активировать на своем форуме дружественные URL (ЧПУ). Их можно активировать или деактиваровать в админке форума, пройдя по следующему пути: в левой колонке админки выбираете пункт «Характеристики и настройки», в нижней части открывшегося окна находите пункт "Разрешить дружественные URL ", где можете поставить или снять галочку.
Так же в этой теме выложен совсем новый вариант файла robots.txt (но, наверное, еще не окончательно оттестированный):
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 минимальный период времени (в секундах) между концом закачки одной страницы и началом закачки следующей. Это позволит снять нагрузку на сервер при индексации вашего форума поисковиком 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 для форума SMF вы можете, почитав русcкоязычного форума поддержки SMF.
Оптимальный файл robots.txt для сайта на Joomla
Рекомендованный файл robots.txt выглядит так:
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. Поэтому в окончательном виде файл, по-моему мнению, должен выглядеть так:
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
Да, еще обратите внимание, что во втором варианте файла robots.txt нет директивы Disallow: /images/, запрещающей индексацию картинок вашего сайта. Я забыл сначала акцентировать ваше внимание на этом, но мне об этом напомнил уважаемый Alex, написавший следующее:
В joomle не правильно закрывать папку images. Закрыв ее вы не будете участвовать в картиночном поиске. А если у вас еще и фото уникальные, так будуте терять еще один весомый аргумент, для показа поисковикам, что ваш сайт интересный
Полностью с ним согласен в том, что если графика, используемая на вашем сайте уникальна, и вы хотите, чтобы посетители находили ваш сайт еще и через поиск по картинкам, то обязательно удалите это правило из своего файла robots.txt, но так же не забывайте прописывать всем вашим изображениям атрибуты Alt и Title. Именно по ключевым словам, прописанным в этих атрибутах и будут приходить целевые посетители на ваш сайт с сервисов поиска по картинкам.
При создании интернет магазина на основе компонента VirtueMart я столкнулся с тем, что в индекс поисковой системы стали попадать версии для печати страниц этого самого магазина. Кнопка, ведущая на страницу для печати, была необходима (заказчик так хотел), поэтому оставался только вариант с запрещением их индексации. Но все оказалось не сложно. Дело в том, что для создания версии для печати используется такой же адрес страницы, за исключением одного: обращение идет не к файлу index.php, а к файлу index2.php. При этом не осуществляется загрузка шаблона, т.е. выводится только содержимое страницы на весь экран. Поэтому, для запрещения индексации версий страниц для печати, я добавил в файл robots.txt правило:
Disallow: /index2.php?page=shop
Вы тоже можете добавлять свои правила в этот файл, но после этого обязательно протестируйте — достигли ли вы желаемого результата. Для это используйте соответствующие инструменты панелей вебмастеров поисковиков (Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 1, Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 2).
Оптимальный файл robots.txt для блога на WordPress
Не буду приводить пример файла robots.txt, который рекомендуют разработчики. Вы и сами можете его посмотреть. Многие блогеры вообще не ограничивают роботов поисковых систем в индексации их сайтов. Чаще всего можно встретить файл robots.txt автоматически заполненный плагином Google XML Sitemaps, в котором присутствует лишь ссылка на адрес карты сайта для блога, созданной этим плагином. Но, по-моему, все-таки следует ограничить поисковики в рысканье по файлам вашего блога и поэтому, здесь я приведу версию своего файла robots.txt, а вам уже решать, использовать его в таком виде, использовать свой вариант или же вообще не использовать robots.txt:
User-agent: * Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* User-agent: Yandex Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* Host: ktonanovenkogo.ru Sitemap: http://ktonanovenkogo.ru/sitemap.xml.gz Sitemap: http://ktonanovenkogo.ru/sitemap.xml
Пока что индексация блога при таком варианте файла robots.txt меня полностью устраивает. Но ограничения на индексацию определенных страниц блога задаются не в этом файл, а с помощью мете-тега Robots. Он у меня используется для запрета индексации стариниц с архивом тегов и временным архивом. Для того, чтобы прописать этот тег я не прибегал к правке кода файлов движка. В этом не было необходимости, т.к. все это можно осуществить простой установкой или снятием галочек в соответствующих пунктах чудесного плагина All in One SEO Pack (Внутренняя оптимизация блога на WordPress, установка и настройка плагина All in One SEO Pack.). Более подробно об этом можете прочитать на здесь: Убираем дублированный контент из индекса поисковиков.
На сегодня все. Если вы не хотите пропустить появление новых материалов на этом сайте, то можете подписаться на рассылку новостной ленты через форму, расположенную чуть ниже, или же выбрать удобный для вас способ подписки на странице Подписка.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Почитать еще на эту же тему:

а вот я не пойму у меня в яндексе карту сайта не хочет принимать вот ошибка : Некорректный URL (не соответствует местоположению файла Sitemap) ничего не понимаю правильно всё
Alex, простите, вы когда этот урл в адресную строку браузера вставляете, у вас карта сайта открывается?
да всё в порядке кажется я понял в чём дело,я неправильно файл robots заполнил щас обновил карту тоже посмотри что будет
Блогу на Wordpress около 3х недель — google проиндексировал 59 страниц, остальные поисковики по одной, кто нибудь может подсказать в чем может быть проблема? Хотя судя по панели вебмастеров того же Яндекса робот регулярно на блог заходит.
test, есть определенные способы ускорить индексацию блога Яндексом, но не стопроцентные. Например, можно создать блог в Я.ру и написать текст со ссылкой на ваш блог. Тоже самое можно сделать на любом бесплатном блогохостинге (livejournal.com, blog.ru, liveinternet.ru и др.).
Иногда срабатывает способ создания сайта на народе с ссылкой в тексте на ваш блог. Можно попробовать добавить блог в яндекс закладки.
В joomle не правильно закрывать папку images. Закрыв ее вы не будете участвовать в картиночном поиске. А если у вас еще и фото уникальные так будуте терять еще один весомый аргумент, для показа поисковикам что ваш сайт интересный .
ах в предудыщем коменте ошибся, по умолчанию в роботс от joomla images закрыт, в вашем примере его нет.
Alex, спасибо большое за напоминание. Я действительно открыл индексацию картинок на своем сайте, но забыл об этом упомянуть в статье. Сейчас добавлю. =)
обновил роботс но всё равно та же ошибка при попытке принять карту сайта Некорректный URL (не соответствует местоположению файла Sitemap)
и вот ещё в гугле не принимает
Пути не совпадают
Мы обнаружили, что Вы передали Карта сайта используя путь, который не включает WWW префикс (например, ). Однако, URL, перечисляются внутри файла Sitemap делают использование WWW префикс (например, ).
Alex, попробуйте посмотреть «».
Уважаемый автор и уважаемый Alex! Огромное спасибо вам за замечание о том, что нужно разрешить индексацию картинок! У меня сайт с открытками, и я всё не мог поняять, почему их нет при поиске картинок. Как же я рад!!(наверное всем знакомо чувство,когда ищешь какую-то ошибку на сайте и потом ее находишь).
и у меня еще вопрос. Намоем сайте(указан на нике) стоит virtuemart (в качестве каталога).Пользуюсь sh404sef для создания уникальных title. Проблема в том, что у меня создаются страницы типа сайта/имя страницы.html?pop=0. Над каждым товаром сверху у меня две ссылки с названиями, как я понимаю, двух ближайших товаров.Нажимая на эту ссылку, я перехожу на страницу нужной открытки, но в конце стоит эта приставка ?pop=0. Проблема в том, что Яндекс проиндексировал почему-то именно эти страницы,а на них title не оптимизирован.Тоже получается дублирование контента. Как мне убрать эти страницы из поиска и появятся ли потом страницы без приставки в поиске?
Ага, порадовался,что разрешил индексировать папку images, а потом понял, что картинки у меня хранятся в /components/com_virtuemart/shop_image. Что мне теперь делать?Разрешать инлексировать /components/или внести запреты на все папки в /components/ кроме /com_virtuemart/?
Дмитрий, посмотрел ничего такого не понял
Alex, с таким не сталкивался и с ходу сказать, где собака порылась не могу (пока что еще не гуру в вебмастеринге). Попробуйте погуглить или почитать на тематических форумах. Звиняйте, что не смог помочь.
medvedev, попробуйте разные варианты создания robot.txt для доступа поисковиков к вашим картинкам. Работоспособность созданного вами файла вы можете проверить в панелях вебмастеров Гугла и Яндекса. Как это сделать вы можете прочитать в этих статьях:Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 1 и здесь: Работа с панелями вебмастеров Яндекса, Google, Yahoo, Bing (sitemap, robot.txt, индекс, запросы) — Часть 2
Дмитрий, спасибо, я воспользовался вашими ссылками. В итоге у меня получилось исключить страницы с концовкой .html?pop=0 из поиска, добавив правило
Disallow: *.html?pop=0$. Ну а картинки виртуемарта я разрешил к индексацию, убрав из правил папку /components/,а затем запретив в ней все папки, кроме той, в которой хранятся картинки виртуемарта. Буду ждать обновления Яндекса.Еще раз спасибо.
medvedev, не за что. Рад был помочь. Спасибо, что подробно описали ваш вариант решения. Может кому-нибудь пригодится. =)
Здравствуйте, уважаемые эксперты! Вопрос об улучшении индексации картинок. У меня стоит virtuemart, картинки выводятся там java-скриптом. И после скрипта альтернативный вывод картинки в тегах .
Проблема: картинки не индексируются!
Получается то, что заключено между тегами , поисковики не видят. Подскажите, пожалуйста, что можно сделать для индексации картинок?
извиняюсь, имелся ввиду тег
medvedev: возможно, что у вас закрыта от индексации в robots.txt папка, где лежат изображения. Если с этим все в порядке, то не знаю, в чем может быть проблема.
Дмитрий:
Спасибо за ответ! Папка открытка для индексации(научился благодаря вашему блогу). Думаю, проблема в самом выводе картинки.Она выводится через java-скрипт, а он не индексируется поисковиками. И,как видно, содержимое тегов noscript тоже. Как бы сделать так, чтобы сохранялось предназначение тегов noscript, и в то же время, картинка между этими тегами индексиовалась? Кто знает, подскажите.
medvedev говорит, что:
Подскажи, пожалуйста как какую именно строчку надо вписать, чтобы товары в вирте индексировались. С уважением.
Алексей: убираете из стандартного файла robots.txt для Joomla правило
Но в замен него добавляете disallow на все папки внутри каталога components, кроме com_virtuemart, например:
Подскажите, а как запретить индексацию определенных страниц на движке joomla. Дело в том, что некоторые страницы на сайте я удалил, а поисковыми системами они по прежнему индексируются.
одна из страниц. Как должна выглядеть запись в robot.txt?
Огромное спасибо за индексацию images!
Вадим: из индекса Яндекс сам удалит такие страницы, со временем. А что бы пользователи, перешедшие с поисковиков по этим не рабочим ссылкам, не были для вас потеряны — оформите свою страницу 404 соответствующим образом. Например, так. Для сайта, приведенного в пример, это было сделано с использование возможностей расширения ARTIO JoomSEF.
а есть ли какие-нибудь другие похожие расширения? или это только одно такого рода? (ARTIO JoomSEF.)
Интересно, для бота Yandex'a зачем дублировать строки Disallow.
Ведь есть *
близкий: потому, что для Yandex'a должно быть прописано хотя бы одно Disallow при добавлении директивы Host. А раз так, то придется повторять все для Яндекса отдельно, т.к. Disallow разрешающее индексирование всего или запрещающее индексирование всего нам не подойдет.
Дмитрий: перепроверил, вот что рекомендует Яндекс:
#Пример корректно составленного robots.txt, при обработке
#которого директива Host учитывается
User-Agent: *
Disallow:
Host:
#Примеры некорректно составленных robots.txt, при обработке
#которых директива Host может не учитываться
User-Agent: *
Host:
Пойду исправлю
Спасибо! отредактировал роботс.
А то такое ощущение роботами мой сайт вообще не индексируется.
Яндекс определил главную страницу сайта, как закрытую в robot.txt. Но на сайте вообще нет этого файла! Не подскажите в чём может быть проблема?
хорошая статья. помогла лично мне. 5+
Может мне сможете тоже помочь!? Проблема вот какого плана, в Я.Вебмастере мне выдаются предупреждения следующего вида:
— для главной страницы
/index.php?format=feed&type=rss
/index.php?format=feed&type=atom
— и для страниц разделов тоже самое
/index.php/razdel?format=feed&type=rss
/index.php/razdel?format=feed&type=atom
Я так понимаю их можно запретить к индексации? А можно что то сделать с джумлой чтобы эти страницы не генерировались?
Заранее спасиьбо!