вторник, 31 марта 2009 г.

Robots.txt для сайта на Drupal

Не знаю, сколько мне еще потребуется изучать Drupal, пока я наконец смогу сделать с помощью этой CMS полноценный, нормально работающий сайт. Читаешь, разбираешься, и, вроде бы, все уже понятно, как вдруг появляется какой-нибудь «сюрприз». Намедни познакомился с дефолтным robots.txt. Точнее, я увидел, как криво мой первый сайт на Drupal проиндексировался поисковиками. То, как выглядит содержимое этого файла, еще раз подтверждает, что Drupal – CMS ну никак не для новичков в вебмастеринге. Редактировать файл нужно обязательно!

Robots.txt для Drupal

Итак, по порядку. Наверняка, установив Drupal, вы первым делом включили ЧПУ. А теперь посмотрите в robots.txt, особенно на последние две группы закрытых от индексации URL: "# Paths (clean URLs)" и "# Paths (no clean URLs)". ОК, у нас ЧПУ, так зачем нам вообще могут понадобиться адреса, начинающиеся с "?q="? Поэтому заменяем всю группу эту одной строкой: "Disallow: /?q". Теперь поисковый робот, прочитав эту строку, не будет индексировать дубликаты, типа "/?q=node/2389", а проиндексирует лишь "/node/2389".

Следующий косяк разработчиков: в robots.txt некоторые адреса заканчиваются слэшем ("/"). Если ваш сайт в индексе у Google, посмотрите страницы вашего сайта ("site:example.ru"). Несмотря на то, что в robots.txt присутствует строка "Disallow: /user/register/", эта страница находится в выдаче поисковой системы. С чего бы? Посмотрите на соответствующую ссылку на сайте – в конце нет слэша. Так что убираем все завершающие слэши (только для "# Paths (clean URLs").

С косяками разобрались, теперь полезные модификации.

По-умолчанию, морда сайта имеет альтернативный адрес: "/node". Если вы выбрали в качестве главной какую-нибудь другую страницу, например "/node/1", то она будет доступна и по старому адресу, поэтому его лучше запретить для индексации: "Disallow: /node$" или если выбран конкретный node, "Disallow: /node/1$". Не забудьте добавить символ "$" в конце, поскольку без него команда запретит индексацию всех node вообще.

Если вы поставили модуль для генерации Sitemap, не будет лишним указать в robots.txt, где он находится: "Sitemap: http://www.example.ru/sitemap.xml".

Ну и хост лучше прописать: "Host: www.example.com".