Один из самых недооцениваемых файлов в друпале robots.txt. Некоторые недооценивают его по незнанию. Другие пренебрегают им из за его мнимой незначительности. Прежде, чем описывать множество параметров, которые можно внести в файл, стоит заметить, что перед тем как, что то изменять в стандартном файле - стоит понять к чему это приведёт. Наличие или отсутствие тех или иных модулей может привести к различным последствиям. И пытаясь добиться от файла максимально-положительного эффекта для сайта подразумевается, что на сайте уже установлены модули, которые обычно вносят в группу SEO-модули, как Pathauto и Globalredirect. Так как именно при настроенных синонимах стоит, например, убирать дубли из индекса.
Данная статья опирается уже на то, что опубликовано в интернете и поиск в Яндексе или Google выдаст достаточное количество сайтов вкоторых будут описаны все директивы поддерживыемые тем или иным поисковиком. Например http://help.yandex.ru/webmaster/?id=996567. Настоятельно рекомендую ознакомится с данной ссылкой и в частности с пунктом: Использование директив Disallow и Allow.
Но перейдём к правильно настроенному файлу robots.txt
User-agent: *
Crawl-delay: 10 # задает таймаут в 10 секунд
# Files
Disallow: /cron.php
Disallow: /install.php
Disallow: /update.php
Disallow: /xmlrpc.php
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
Disallow: /admin/
Disallow: /comment/
Disallow: /comment/reply/
Disallow: *comment*
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /node/
Disallow: /search/
Disallow: /logout/
Disallow: /user/
Disallow: /user/register/
Disallow: /user/login/
Disallow: /user/password/
Disallow: *register*
Disallow: *login*
Disallow: /profile
Disallow: /profile/*
Disallow: /taxonomy/term*/feed
Disallow: /book/export/html
Disallow: /print/node/
Disallow: /archive/
Disallow: /*votesupdown
Disallow: /*calendar
Disallow: /*index.php
Disallow: /*section
Disallow: /*order
Disallow: /*?sort*
Disallow: /*&sort*
Sitemap: http://drupalim.ru/sitemap.xml
User-agent: Yandex
Host: drupalim.ru
User-agent: MSNBot
Disallow: /
User-agent: Slurp
Disallow: /
User-agent: SolomonoBot
Disallow: /
Давайте разберём по частям
User-agent: *
Обращение ко всем ботам, которые заходят на нашу страницу. Прежде всего нам интересны Яндекс и Google. И что бы не дублировать одно и тоже дважды используем данный параметр.
Crawl-delay: 10 # задает таймаут в 10 секунд
Многие опытные программисты считают, что значение 10 это значение в миллисекундах. Это не так. Числовое значение - значение в секундах и призывает поисковики не делать запросы к сайту чаще чем в 10 секунд. Что бы сервер мог оправится. В ином случае Яндекс спокойно может обратится к 500 страницам вашего сайта единовременно и положить сервак и все сайты на нём. Стоит понимать, что на новом сайте с 10-20 страничками приказ Crawl-delay мало нужен, либо нужен с другим параметром, например 1. А вот сайтам, которые существуют годами и имеющие сотни и тысячи материалов и тегов данный приказ поможет справится с нагрузкой. Помощь от Яндекса http://help.yandex.ru/webmaster/?id=1022359
# Files
Disallow: /cron.php
Disallow: /install.php
Disallow: /update.php
Disallow: /xmlrpc.php
Системные файлы, которым в индексе делать нечего. Вообще крон.пхп до версии Друпала 7.0 стоит переименовывать. Слишком частый вызов крона может привести к медленной работе проекта. Вызов крона может быть и сознательно неправильный. От седьмой версии друпала крон защищён системой. И для его вызова нужен ключ.
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
Disallow: /admin/
Системные папки. То же самое. В индексе админке и системе сайта делать нечего.
Disallow: /comment/
Disallow: /comment/reply/
Disallow: *comment*
Disallow: /filter/tips/
/comment/ Запрещает к индексацию всё что начинается с каментов, например вот такой урл http://drupalim.ru/comment/5#comment-5. Тем самым мы избегаем индексирование дублей. Если на вашей странице 300 комментариев, то так можно избежать трёхсот дублей. Для молодых сайтов с каментами отсутствие этой строчке в роботсе зачастую приводит к фильтрам в поисковых системах. Которые снять не так уж и просто. Есть живые примеры. /comment/reply/ в данном случае уже не нужен, так как он уже запрещён к индексации строчкой выше. Приведён чисто для примера. Убирает от индексации формы ответа на уже имеющиеся комментарии. Например вот этот http://drupalim.ru/comment/reply/6/5. Как вариант можно исключить *comment* из индекса, тогда будут исключены любые урлы в которых будет встречаться comment. На некоторых сайтах, где критерии сортировки настраиваются с помощью комментариев это очень важно. /filter/tips/ тоже относятся к хламу, который создаётся модулем comment. Это подсказки редактирования. Никакой полезной информации ни для посетителей, ни для индекса данная страница не несёт.
Disallow: /node/add/
Disallow: /node/
Урл добавления материалов /node/add/ является системным урлом и будет только захламлять индекс. А вот запрет к индексации /node/ может привести к выпадению сайта, если у вас урлы нод используют этот синоним. На данном сайте /node/ нигде не используются. И урлы генерируются с использованием модуля pathauto.
Disallow: /search/
Disallow: /logout/
Здесь всё просто /search/ запрещает результаты поиска на сайте, что и рекомендуется всеми поисковиками. /logout/ удаляет из индекса системную страницу сайта.
Disallow: /user/
Disallow: /user/register/
Disallow: /user/login/
Disallow: /user/password/
Disallow: *register*
Disallow: *login*
Disallow: /profile
Disallow: /profile/*
Данные приказы помогают удалить из индекса мусорные страницы, которые могут возникнуть на сайте, где разрешены к индексации профили пользователей, а так же урлы связанные с регистрацией. Если первые 4 строчки очевидны и так же то, что первая из них делает последующие ненужными так же понятно. *register* и *login* помогают справится с мусором, который генерируется при сквозном урле навигации на не корректно сделанных шаблонах. И что не всегда сразу очевидно.
Disallow: /taxonomy/term*/feed
Убирает фиды таксономии из индекса.
Disallow: /book/export/html
Disallow: /print/node/
Disallow: /archive/
Disallow: /*votesupdown
Disallow: /*calendar
Различные модули, генерируют различные урлы. Например рецепт отбивной из курицы создаёт удобную принт-версию http://www.rezepty.ru/print/node/2356, на которой почти отсутствует код и который легко и удобно входит в индекс создавая дубли. Дубли генерируются модулями book, archive, calendar и многими другими. Имеет смысл проверять все те модули, которые вы устанавливаете на сайте и что именно они создают на сайте.
Disallow: /*index.php
Данной страницы нет на друпалах, однако иногда они не смотря на это встречаются в индексах
Disallow: /*section
Disallow: /*order
Disallow: /*?sort*
Disallow: /*&sort*
В трекере и видах можно сортировать материал. Например в магазине по цене. В зависимости от критериев, страниц сортировки может быть множество. Что не очень хорошо влияет на ранжирование сайта.
Sitemap: http://drupalim.ru/sitemap.xml
Урл на карту сайта для поисковиков.
User-agent: Yandex
Host: drupalim.ru
Специально для Яндекса однозначное написание нашего сайта в директиве host.
User-agent: MSNBot
Disallow: /
User-agent: Slurp
Disallow: /
User-agent: SolomonoBot
Disallow: /
Запрет для индексации поисковикам, которые почти не создают трафик, но помогают исследовать ссылки ведущие на наш сайт. Иногда это очень удобно, не помогать конкурентам узнавать, как вы рекламируете свой сайт.
Это основные принципы составление robots.txt в примерах. Который должен пояснить в примере использование и принципы работы robots.txt.
И ещё раз:
Disallow: *register*
Disallow: *login*
Disallow: *comment*
Disallow: /*section
Disallow: /*order
Disallow: /*calendar
Если у вас присутствую данные строчки, то из индекса удаляются все урлы, например нод, в которых будут встречаться данные слова.
А если мы используем Disallow: /comment/, то Disallow: /comment/reply/ нам абсолютно не нужен, так как это получается масло маслянное. А если мы используем *comment*, то можно забыть и про обе верхних.
Комментарии
Splash (не проверено)
12 сентября, 2012 - 16:09
Permalink
> /filter/tips/ тоже
> /filter/tips/ тоже относятся к хламу, который создаётся модулем comment
Оно генерируется модулем Filter.
Руслан (не проверено)
25 сентября, 2012 - 22:57
Permalink
Андрей Борисович, каким
Андрей Борисович, каким модулем реализовали всплывающую увеличенную картинку при клике на нее?
andron13
22 октября, 2012 - 17:12
Permalink
http://drupal.org/project
http://drupal.org/project/fancybox
hhh (не проверено)
16 января, 2013 - 13:06
Permalink
Скажите пожалуйста, а при
Скажите пожалуйста, а при запрете терминов таксономии (Disallow: /taxonomy/term*/feed) теги с человеческими урлами не повылетают из индекса?
P.S.: за ответом обязательно загляну. Завтра - это точно. ))
andron13
9 февраля, 2013 - 13:15
Permalink
не должны. ;)
не должны. ;)
Сергей (не проверено)
5 июля, 2015 - 15:38
Permalink
Доброго времени суток!
Доброго времени суток!
Будьте добры, надоумьте.
На сайте около пол сотни страниц такого вида:
/priroda?page=1
/priroda/zhivotnye/mlekopitayushchie?page=1
/obshchestvo/politika/rossiya?page=1
Как убрать пагинацию или как там (?page=1, 2, 3. , . )
правильно это называется из индексации, чтоб не перечислять все страницы, ибо в
роботс.тхт целая статья получится...?
...Disallow: /*? я обозначил, этого мало
andron13
22 июля, 2015 - 19:32
Permalink
звёздочкой.Disallow: /
звёздочкой.
Disallow: /*votesupdown
Disallow: /*calendar
Disallow: /*index.php
Disallow: /*section
Disallow: /*order
Disallow: /*?sort*
Disallow: /*&sort*
в вашем случае например *?page*
Гость (не проверено)
23 июля, 2015 - 16:38
Permalink
...спасибо большое за ответ.
...спасибо большое за ответ.
...если я правильно понял, то у каждой страницы из сотни нужно отсечь "?page=1".
Просто "?page=1" у всех страниц в конце, и я подумал как бы так, чтоб все стр. не
перечислять...
andron13
24 июля, 2015 - 13:00
Permalink
именно так, если я правильно
именно так, если я правильно понимаю, то что написал.
Олег (не проверено)
18 сентября, 2016 - 15:39
Permalink
У вас опечатка!
У вас опечатка!
правильно не Disallow: /taxonomy/term*/feed
а Disallow: /taxonomy/term/*/feed
Добавить комментарий