Правильный robots.txt для Друпала с комментариями
Правильный файл robots.txt для Drupal с точки зрения SEO в первую очередь предназначен для борьбы с дублями страниц сайта. Кроме того "правильный" подразумевает в том числе и то, что на сайте установлены и другие "правильные вещи": во-первых, стоит модуль pathauto (который в частности подразумевает включенные "чистые ссылки"), а во-вторых, стоит модуль Global Redirect, предназначенный для автоматической переадресации с "внутридрупаловских" URL (типа node/123) на их синонимы (т.е. URL, сделанные пасавто).
Важно подчеркнуть ещё раз, что если ваш сайт на Друпале, но у него какие-то специфические требования либо не стоят вышеупомянутые модули для автоматического создания синонимов и последующей принудительной переадресации (редиректа) на них, то использование подобного "правильного" robots.txt может привести к не желательным результатам. Это значит, что все такие вещи нужно применять с пониманием сути.
С другой стороны, если вы действительно хотите получить максимум "сео-эффекта" и сделали всё верно - не пытайтесь "улучшать" подобные "правильные" роботы, опять же, чётко не понимая смысла своих действий, т.к. даже перестановка (изменение последовательности) директив может привести к вылету из индекса сайта или его части.
Drupal robots.txt
Далее не такой уж и длинный набор директив правильного роботс.тхт.
User-agent: *
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Disallow: /updates/
Disallow: /profiles/
Disallow: /xmlrpc.php
Disallow: /cron.php
Disallow: /update.php
Disallow: /install.php
Disallow: /index.php
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact/
Disallow: /logout/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /top-rated-
Disallow: /messages/
Disallow: /book/export/
Disallow: /user2userpoints/
Disallow: /myuserpoints/
Disallow: /tagadelic/
Disallow: /referral/
Disallow: /aggregator/
Disallow: /files/pin/
Disallow: /your-votes
Disallow: /comments/recent
Sitemap: http://noindex.by/sitemap.xml
Disallow: /*/edit/
Disallow: /*/delete/
Disallow: /*/export/html/
Disallow: /taxonomy/term/*/0$
Disallow: /*/edit$
Disallow: /*/outline$
Disallow: /*/revisions$
Disallow: /*/contact$
Disallow: /*downloadpipe
Disallow: /node$
Disallow: /node/*/track$
Disallow: /*&
Disallow: /*%
Disallow: /*?page=0
Allow: /*?page=
Disallow: /*?
Host: noindex.by
Комментарии в robots.txt
Несмотря на то, что комментарии в robots.txt разрешены, однако я стараюсь их всегда избегать, т.к. это лишь дополнительный источник потенциальных ошибок (и какого-никакого, но и дополнительного трафика:). Потому все объяснения разберём далее отдельно-поблочно.
Стандартные "официальные" директивы robots.txt от разработчиков Drupal
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Запрещаются к индексации стандартные директории Друпала, где лежат файлы движка (а не контент).
Потому, кстати, важно "не додуматься" назвать такими именами типы контента на сайте с последующей настройкой под него синонимов в pathauto, которые подпадут под эти же правила и будут исключены из индексации.
Артефакты в виде текстовых файлов, рекомендуемых в официальной версии к запрещению:
Disallow: /CHANGELOG.txt
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /UPGRADE.txt
Лучше просто удалить, дабы не загромождали пространство, съедая лишние килобайты на диске и в трафике. Потому в правильном роботе их просто нет (т.к. я их всегда удаляю, а при обновлении друпала - не копирую).
Disallow: /updates/
Disallow: /profiles/
Честно признаюсь, не все правила помню "откуда взялись". Как и эти папки. За пяток лет эксплуатации различных друпалов и всевозможных модулей - понабиралось подобного. Оно никак не влияет в "обычном" случае и добавлено в какой-то реальной ситуации, возможно было в старых версиях (как самого друпала так и по работе различных модулей). Короче, я доверяю "себе тогдашнему" и оставляю подобные правила в качестве "правильных".
Disallow: /xmlrpc.php
Disallow: /cron.php
Disallow: /update.php
Disallow: /install.php
Запрет стандартных php-файлов движка. Если у вас на сайте нет (и не предполагается) других php-файлов - проще (и правильней) использовать вместо этой группы лишь одну директиву:
Disallow: /*.php$
Далее идёт очень важная директива:
Disallow: /index.php
Она убивает все полчища потенциальных дублей (и не только главной страницы). И важно напмонить, что таким образом различные /index.php?title=... тоже будут запрещены.
Далее запрещаем индексирование друпаловской админки сайта:
Disallow: /admin/
Теоретически она и не должна индексироваться (ведь роботы ПС не имеют админского доступа), но практически лучше и "не давать повода".
Запрет индексации формы ответа на комментарий
Disallow: /comment/reply/
Очень важная (в плане популярности-численности) директива, запрещающая к индексации форму ответа, имеющейся у каждого комментария на сайте. Однозначно должна быть в роботс.тхт для Друпала.
Далее запрет формы контактов:
Disallow: /contact/
Запрет кнопки "Выйти" ("разлогинивания"):
Disallow: /logout/
Запрет поиска по сайту
Также (важно) запрет индексации результатов поиска по сайту:
Disallow: /search/
Когда-то давно наличие подобных страниц в индексе давало халявный профит и, признаюсь, я тоже убирал данную директиву из роботов, однако после совершенно справедливо поисковики стали наказывать за подобные "шалости", потому не стоит нонче их дразнить, пытаясь заполучить толпы дополнительных бессмысленных страниц в индексе (сгенерированных встроенным в друпал поиском либо другими поисковиками по сайту).
Регистрация, пароли, явки, логины
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Всё запрещаем - ни к чему это, кажующаяся "дополнительной" страница в индексе, если подумаете, является дубликатом тысяч (если не миллионов) других таких же (ведь её контент одинаков для всех сайтов на таком же движке). А дубли страниц, даже (или тем более) не своих - зло.
"Не официальные" директивы "правильного" robots.txt для Друпала
Disallow: /top-rated-
Disallow: /messages/
Disallow: /book/export/
Disallow: /user2userpoints/
Disallow: /myuserpoints/
Disallow: /tagadelic/
Disallow: /referral/
Disallow: /aggregator/
Disallow: /files/pin/
Disallow: /your-votes
Disallow: /comments/recent
Большинство их порождено в результате эксплуатации всевозможных модулей, о которых можно уже судить просто из названия. Чаще всего по ним совершенно бессмысленная или просто дублированная информация.
comments/recent
Отдельно стоит сказать разве только про:
Disallow: /comments/recent
Несмотря на то, что это заведомо дублированный контент - лента последних комментариев (аналого трэкера, только не для нод, а для комментов) - стал замечать, что поисковикам "упорно нравятся" некоторые страницы с неё. Потому в последнее время я не использую данную директиву на некоторых сайтах (например, как и здесь - 64 страницы /comments/recent в Яндексе и 57 в Гугле). Хотя трафик на них стремится к нулю (единицы уников в месяц, т.е. сотые процента), но, таки, он положительный.
Однако убирать данную директиву нужно с чётким пониманием и уверенностью, что сайт не загремит под АГС.
Карта сайта
Sitemap - он и в Рамблере сайтмэп:
Sitemap: http://noindex.by/sitemap.xml
Нонче расположение этой директивы поисковики пожирают где угодно (в файле robots.txt), однако к роботам я подхожу максимально консервативно, потому располагаю её "как полагается" - в основном блоке директив "User-agent: *", чего и вам советую.
Запрет страниц-результатов каких-то операций (редактирования и пр.):
Disallow: /*/edit/
Disallow: /*/delete/
Disallow: /*/export/html/
Disallow: /*/edit$
Disallow: /*/outline$
Disallow: /*/revisions$
Disallow: /*/contact$
Таксономия
Запрет так называемого "полного списка" таксономии, который отдаётся по "/0" и в случае одного элемента в списке (что очень часто) - получаем полный дубль)
Disallow: /taxonomy/term/*/0$
Часто(-ще) я полностью запрещаю таксономию:
Disallow: /taxonomy/
Рассчитывая на то, что для всех её словарей-терминов настроены и присутствуют синонимы (потому незачем плодить дубли). Однако если у вас не все термины имеют синонимы, то вы "зря" запретите такие разделы сайта.
С другой стороны, данные урлы таксономии - одна из потенциальных причин попадания под АГС, т.к. это всё тот же контент (а значит, в разной степени, но дубликат). Потому если вы не уверены - лучше использовать директиву полного запрета таксономии (Disallow: /taxonomy/).
Экзотика
Disallow: /*downloadpipe
Из разряда "как-то было". Появлялись подобные вещи в индексе, возможно из-за каких-то программ-качальщиков, не знаю, оставил - старая директива роботов не испортит.
Node
Сложный вопрос с "нодами". В "щадящей" конфигурации это вышеприведённое:
Disallow: /node$
Disallow: /node/*/track$
Которое запрещает явный дубль (/node), однако оставляет все другие урлы типа node/123. В то время, как по идее, Global Redirect должен их средиректить на свои синонимы. Потому "правильным" в общем случае будет другой вариант:
Disallow: /node$
Disallow: /node/
"Просто "Disallow: /node" не подходит, т.к. запретит и, например, "/nodewords", потому используется две директивы.
Однако, как показала практика (особенно на больших-старых сайтах), по разным причинам не у всех нод есть синонимым и в случае подобного "запрета нод" данных материалов в индексе не будет.
Тут уж решение нужно принимать самостоятельно, в общем случае, опять же, дабы не искушать АГС - лучше все ноди похерить (с помощью "Disallow: /node/").
"Заумно-правильные" команды
Disallow: /*%
Disallow: /*&
Disallow: /*?page=0
Allow: /*?page=
Disallow: /*?
Эта сложная и, видимо, не всем понятная конструкция - достаточно важна (часто - очень).
Первая директива ("Disallow: /*%") убивает все "хитрые" артефакты вроде недавнего примера с дублями от комментариев в Google. Однако также (и это для многих критически важно или даже опасно) - убьёт все урлы с кириллицей.
Будучи одним из первопроходцев кириллических урлов (в своё время переделал движок друпала под них ещё до введения корректного русского i18 под тогда свежий пятый друпал) - нахлебался с кириллицей и нонче её жестоко изничтожаю как источник постоянных проблем.
Почему "не люблю красивые русские урлы" - отдельная история. Данный пункт направлен против попадания в индекс большого количества всякой ботвы. Однако при этом требует строго настроенного Pathauto, потому в противном случае, не понимая работы "пасавты" в деталях - лучше не используйте её.
Далее последовательность директив, которую нельзя менять:
Disallow: /*&
Disallow: /*?page=0
Allow: /*?page=
Disallow: /*?
Они направлены на то, чтобы зафильтровать все урлы с параметрами, т.е. которые имеют в своём составе "?" и/или "&", а чтобы под данное правило не попал (единственный) "полезный" параметр пэйджера ("page=xxx"), то для этого добавляется директива Allow.
Важно: последовательность директив в данном блоке менять нельзя, т.к. иначе разные поисковики могут её воспринять по-разному. Например, у друпалозаводчиков предлагается похожая конструкция:
# Disallow all URL variables except for page
Disallow: /*?
Allow: /*?page=
Disallow: /*?page=*&*
Disallow: /*?page=0*
Однако она если и "прокатит" для Google, то Яндекс её воспримет с противоположным результатом, т.к. по его правилам главным условием, под которое подпадает урл - является первая директива по порядку их следования в файле robots.txt. И по первой директиве - всё будет похерено, т.е. до последующих инструкций ("Allow: /*?page=" и т.д.) дело не дойдёт.
Host для Яндекса
Host: noindex.by
Данная директива должна (желательно) располагаться самой последней в блоке - тогда избежите потенциальных проблем с тем, что её "знают" лишь Яндекс+Рамблер. Точней, вполне логично предположить, что, конечно же, её "знают" и другие поисковики, однако "не должны" учитывать. Но дабы соблюдать линию "максимальной консервативности", которая является сутью robots.txt - лучше писать в конце. /* Не забудьте прописать в ней именно свой домен. */
Итого
Не уверен - не меняй. Не знаешь - не используй. Всё это - про роботс.тхт, том числе и для Друпала.
Правила "по дефолту" в robots.txt для Drupal весьма далеки от "идеала" и при должном уровне знаний, действительно, можно получить хороший SEO-эффект, однако возможна и противоположная ситуация при желании "улучшить не понимая".
п.с. Видео по теме "пошукових роботив" и конкретно "Що таке роботс-крапка-тэикстэ?" (почти стихи вiршi)
Общий:
- 2549 просмотров
Комментарии
MS
10:30 6.05.2011
Permalink
Так а почему просто не
Так а почему просто не удалить некоторые из этих файлов:
nofollow
12:18 6.05.2011
Permalink
Верно, Кэп! Артефакты в
Верно, Кэп!
п.с. И не "некоторые", а все.
mav5555
23:10 14.05.2011
Permalink
А если у меня boost создает в
А если у меня boost создает в корне папку cache - стоит ли ее тоже запретить в роботсе?
nofollow
13:33 15.05.2011
Permalink
Нельзя сказать, что это
Нельзя сказать, что это "сверхпринципиально", но я всегда добавляю подобные правила - бережёного роботс бережёт. То есть да - я бы посоветовал запретить её в robots.txt.
vasko.sml.by
14:37 30.05.2011
Permalink
Лучшая статья на тему того,
Лучшая статья на тему того, как писать robots.txt под друпал, всё чётко и понятно, спасибо.
malkolm
20:04 9.06.2011
Permalink
Не знал, что на Друпале у
Не знал, что на Друпале у роботс.тхт столько значений. Спасибо за полезную информацию.
Дмитрий
12:17 5.07.2011
Permalink
Большое спасибо за "наводку"
Большое спасибо за "наводку" на модуль Global Redirect! :)
ramoncheg
16:17 10.07.2011
Permalink
Большое спасибо за статью!
Большое спасибо за статью! Как раз мучался с кучей мусора в индексе.
Добавить комментарий