Главная

Правильный 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)

Так а почему просто не удалить некоторые из этих файлов:

CHANGELOG.txt
INSTALL.mysql.txt
INSTALL.pgsql.txt
INSTALL.txt
LICENSE.txt
MAINTAINERS.txt
UPGRADE.txt

 

Верно, Кэп!

Артефакты в виде текстовых файлов, рекомендуемых в официальной версии к запрещению: "CHANGELOG.txt, INSTALL.mysql.txt, INSTALL.pgsql.txt, INSTALL.txt, LICENSE.txt, MAINTAINERS.txt, UPGRADE.txt" - лучше просто удалить, дабы не загромождали пространство, съедая лишние килобайты на диске и в трафике. Потому в правильном роботе их просто нет (т.к. я их всегда удаляю, а при обновлении друпала - не копирую).

п.с. И не "некоторые", а все.

 

А если у меня boost создает в корне папку cache - стоит ли ее тоже запретить в роботсе?

 

Нельзя сказать, что это "сверхпринципиально", но я всегда добавляю подобные правила - бережёного роботс бережёт. То есть да - я бы посоветовал запретить её в robots.txt.

 

Лучшая статья на тему того, как писать robots.txt под друпал, всё чётко и понятно, спасибо.

 

Не знал, что на Друпале у роботс.тхт столько значений. Спасибо за полезную информацию.

 

Большое спасибо за "наводку" на модуль Global Redirect! :)

 

Большое спасибо за статью! Как раз мучался с кучей мусора в индексе.

 

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.

Подробнее о форматировании

Image CAPTCHA
Тут буквоцифры
Яндекс.Метрика
Яндекс.Метрика




Рейтинг блогов
Подписаться на статьи NOINDEX.by
Твиттер Тутбайкиллера