Выкладываю свой обкатанный конфиг robots.txt для Drupal 6 коробочного билда и пару советов. Удаляем все левые файлы с корня, убираем правила dissalow для update.php, cron.php, xmlrpc.php(эти вещи уже на автомате игнорятся).
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /sites/
Disallow: /themes/
Disallow: /comment/reply
Disallow: /comment
Disallow: /contact
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /filter
Disallow: /node$
Disallow: /*?sort*
Disallow: /*&sort*
Disallow: /tracker?
Sitemap: http://primary-mirror.ru/sitemap.xml
Host: primary-mirror.ru
Это «only-ЧПУ конфиг», наверное уже нет тех, кто не использует в Drupal эту возможность.
primary-mirror.ru — заменить на ваше головное зеркало сайта.
С директивой хост следующий прикол: если Вам не нужны оба зеркала имеет смысл склеить синонимы в .htaccess.
Лезем в файл, ищем условную директиву IfModule mod_rewrite.c, после RewriteEngine on втыкаем:
RewriteRule ^(.*)$ http://primary-mirror.ru/$1 [L,R=301]
Эта шняга редиректит с www-синонима на без-www-синоним. Или обратная конструкция(есть глюки, может не сработать на некоторых хостингах):
RewriteRule ^(.*)$ http://www.primary-mirror.ru/$1 [L,R=301]
Как выбрать? Анализируем основную массу внешних ссылок, определяем на какой синоним они ведут, выбираем по количественному превосходству. Если проект нулевой, то лучше сразу выбрать.
Директива хост нужна для склейки. Нулевому проекту она не нужна, будет достаточно поставить и установить canonical:
Т.е. следуя логике главное зеркало в таком случае определится автоматом(авто-редирект+каноникал).
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /sites/
Disallow: /themes/
Disallow: /comment/reply
Disallow: /comment
Disallow: /contact
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /filter
Disallow: /node$
Disallow: /*?sort*
Disallow: /*&sort*
Disallow: /tracker?
Sitemap: http://primary-mirror.ru/sitemap.xml
ОшЫбок не будет.
Зачем это надо? Яндекс, известный мастурбатор и внедрятор своих спецификаций, которые в гнезде виделись будет лагать если сделать например так:
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /sites/
Disallow: /themes/
Disallow: /comment/reply
Disallow: /comment
Disallow: /contact
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /filter
Disallow: /node$
Disallow: /*?sort*
Disallow: /*&sort*
Disallow: /tracker?
Sitemap: http://primary-mirror.ru/sitemap.xml
User-agent: Yandex
Disallow: /includes/
Host: primary-mirror.ru
Он проигнорирует правила в звёздочке и будет требовать для себя полный дубль. Если засунуть яшин хост в общий набор, будет косипоры с мелкими поисковиками. Аналогичная ситуация с каментами в роботсе, яшка начнёт материться ошибками. Поэтому избегаем их.
Вроде как всё правильно, поправьте, если что
====================================================
Robots.txt Блоговая конфигурация с заточкой на некоторые модули | Robots.txt build for blog edition
Заточка под global redirect, модуль archives, tracker, xml sitemap, google cse
Crawl-delay: 1
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
Disallow: /comment/reply
Disallow: /comment
Disallow: /contact
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /search
Disallow: /search/google*
Disallow: /search/node*
Disallow: /search/user*
Disallow: /filter
Disallow: /node$
Disallow: /archive/all$
Disallow: /archive/all/2010$
Disallow: /*?sort*
Disallow: /*&sort*
Disallow: /tracker?
Sitemap: http://www.your-host.ru/sitemap.xml
Host: www.your-host.ru
Тюним your-host по вкусу с www или без. Для говно хостов ставим Crawl-delay: 4
В принципе, если есть какие-то модули, можно их рассмотреть и добавить правила -- пишите.
===============================================
Комментарии
неплохая статья, кому-то может быть полезным )
Мне по правде больше вот такой роботс нравится - http://noindex.by/drupal/optimizaciya-struktury-sajta-v-drupale
разумеется при этом надо отрубить в pathauto создание путей для таксономии.
Ну, у каждого свой список должен быть, в зависимости от специфики сайта.
Я вот, например, хочу закрыть доступ к файлу robots.txt для всех, кроме поисковиков, но все как-то лень...
Этот конфиг — коробочный т.е. на пасавто и прочее не рассчитан.
Тоже неплохо Надо бы вообще собрать модуль генератора или что-то вроде билдера по узер чекбокс конфигам, но это непросто учитывая специфику. Кстати у друпала серьёзный касипор с comment/reply/*/*
Я решил проблему килингом на уровне модуля comments. Если кому интересно скину как(можете переопределением - мне впадлу). Один хрен в индекс упасть успело.
поделись )
кстати у меня коммент реплай в роботсе запилено, а в гугле все равно вылезло.
В чем именно касипор?
Disallow: /comment/reply/ - такая запись разве не исключает лишние страницы?
Тогда дело в Гугле.
Нет ) Друпал иногда слеш убирает.. Или там еще что-то. Нужно анализировать.
Рецепт comment.module:
/* else {
if ($node->comment == COMMENT_NODE_READ_WRITE) {
if (user_access('post comments')) {
$links['comment_add'] = array(
'title' => t('Add new comment'),
'href' => "comment/reply/$node->nid",
'attributes' => array('title' => t('Add a new comment to this page.')),
'fragment' => 'comment-form'
);
}
else {
$links['comment_forbidden']['title'] = theme('comment_post_forbidden', $node);
}
}
} */
#############################
Первый линк билдер:
/*$links['comment_reply'] = array(
'title' => t('reply'),
'href' => "comment/reply/$comment->nid/$comment->cid"
);
*/
########################################
Второй линк билдер(они рядом; один для анонимов, второй юзерский):
/*
$links['comment_reply'] = array(
'title' => t('reply'),
'href' => "comment/reply/$comment->nid/$comment->cid"
);
*/
#########################################
так и чо с ними делать-то? вырезать эти куски?
Или я туплю, или что-то тут не так.
Причем Друпал?
Disallow: /comment/reply/ - говорит поисковикам не лезть сюда, и всё...
Садись, двойка.
Disallow: /comment/reply/
— каталогDisallow: /comment/reply
— страницаИщи по файлу и закомментируй, как в примерах. Или залей то, что в атаче(тока свой бэкапни) хотя там 6.16-6.17 версия.
И что? А /comment/reply/* - что по-твоему?
На фига эти извращения?
Ну смари... Ты юзаешь лесеночное отображение каментнов? Я не юзаю. Мне эти ссылки у каждого камента на реплай нафик не нужны.
Плюс на тизере ссылка добавить камент. Совсем нелепая и совсем ненужная
Ну попробуй, расскажешь
Так для удаления этих ссылок делаем функцию в отдельном модуле. Как-то так:
$comment = $variables['comment'];
$links = module_invoke_all('link', 'comment', $comment, 0);
unset($links['comment_add'], $links['comment_reply']);
$variables['links'] = isset($links) ? theme('links', $links) : '';
}
Ладно, на досуге пересмотрю документацию по robots.txt.
Посмотри, только не забывай, что есть свои причуды у каждой ПС Тут как бы иногда заподлянки мелкие попадаются, но сцуко вредные и весьма подводные
Так я ж говорю — есь хотите переопределяйте. Мне просто влом из-за трёх закоментеных строк модуль левый создавать ))
/comment/reply* - так дОлжно работать для всех случаев.
Просто, как я вижу, ты любишь многое вырезать. Можно создать один модуль типа "my_hacks", куда помещать все хуки типа _alter, _preprocess и т.д. И совсем не левый модуль получится. Я так делаю. Один хук _menu_alter чего стоит! А ведь без него было бы намного хуже...
Кстати, может тогда лучше так и для остальных строчек?:
Disallow: /includes*
Disallow: /misc*
Disallow: /modules*
Disallow: /profiles*
Disallow: /scripts*
Disallow: /sites*
Disallow: /themes*
Хотя, ладно, надо спать...
Так конешна можно. Хоть изподвыверта хоть изподколенкисперебросомчерезспину. Как по мне - главное чтоб работало. До сих пор этих хаков по пальцам пересчитать и пару примочек на template. И на кой это дрочиво? На шестёрку забили, все пыхят над 7. Значит ядро уже трогать никто не будет. А спать нужно - это верно! ))
Не знаю я ... Пол года назад эта хрень упорно не работала, правда не на друпале, но сути не меняет. Это должно закрыть от индекса вообще всё, что после идёт.
Садись - двойка за двойку.
Такого адреса - "/comment/reply" в друпале нет. А указание в robots.txt "/comment/reply/" подразумевает все адреса, начинающиеся с данной подстроки. И никаких *(звёздочек) ставить не надо.
Можно попробовать директиву Noindex.
А Flat comments или как там модуль называется, он эти линки не убирает?
Так Вы объясните тогда почему друпал через раз слеш закрывает? )))
Нука подробнее пожалуйста
/comment/reply/23232 - индекс
/comment/reply/23423/1234123/фвафываф - индекс
/comment/reply - и это тоже будет индекс
Вот эта приблуда вообще глупо сделана конкретно в друпале. Закроет? Да но только текущий каталог, а Вы не обращали внимание на то, что там еще одно(два) вложение?
Ваш конкретный пример:
__noindex.by/comment/reply/158/749
__noindex.by/comment/reply/158/749/
Оба доступны. Думайте сами.
Можно, но нахрена? ))) В-буллетин мания? )))
А это ваще какое-то нечто мутное и неразумное.
http://ru.wikipedia.org/robots.txt
Вот Вам приколюха, как пища для ума. Сначала спецправила, потом общие.
А суть в том, что поисковиков много. Одному насрать в каком порядке определены инструкции для него, другой требует жёсткой конфигурации, третий поперхнётся на таком роботсе.
Вывод из этого следующий: чтобы достичь максимальной совместимости нужно использовать только то, что понимают все и желательно:
User-agent: *
Унификация - это хорошо и просто. Потому что не надо джеркингом каждый раз заниматься
Без обид, но даже не знаю что сказать. Лишь одно - читайте даташиты, в т.ч. по robots.txt.
А то, что Вы привели в качестве примера википедию, которая с одной стороны не нуждается в продвижении, а с другой - русскую, у которой даже в robots.txt ошибки :), то это - крайне не удачный пример.
Нука посоветуйте Даташиты написаны у каждого сёрча в справке. Остальное хрень, по сути... Ничего личного, с Уважением
p.s.: спор никуда не приведёт...
Решил прокомментировать.
Когда я делаю сайт (или некоторую часть сайта) на Друпале на заказ, то мне проще делать функционал через хуки и другие общепринятые правила.
Но вот разрабатываю один проект для себя и вижу, что в Друпале слишком много ненужного для меня. И тут я решил, что не буду поддерживать коробочную версию движка. Решил я заточить движок Друпала только под свои задачи, с одной лишь целью - добиться минимального количества исполняемого кода и запросов к БД. Например, даже если не трогать само ядро, то в таких модулях как node.module и comments.module дофига ненужного для меня. Также я решил во всем движке вручную переписать все записи типа t('bla-bla-bla') на 'бла-бла-бла на русском', ибо сайт только русскоязычный.
Также, изучая Друпал изнутри на своем сайте, я увидел как бессмысленно гоняется огромное количество функций впустую. Ну и вообще, по моим приблизительным подсчетам, сейчас дефолтный движок Друпала большую часть производительности отдает в космическое пространство, а не на пользу моего сайта.
Т.е. хочу в итоге сделать со временем свой движок на основе Друпала.
А насчет 7-ого Друпала. На кой черт мне переводить сайт на него? Будет у меня свой движок, заточенный на производительность, а другого не надо.
А если я и буду в будущем для кого-то делать сайты на Друпале, то буду использовать 7-ую версию, со всеми хуками и правилами без хакинга, как положено...
Что скажешь, Shift-Web?
Аплодирую Примерно так
Я не он, но сказать обязан
При таком кол-ве усилий, зачем друпал?
Как это зачем? Что бы было Есть свои соображения на этот счёт, которые я озвучивать не буду по ряду причин. С другой стороны -- ну я как бэ его изучаю по мере возможности. Я понимаю, что Вы не одну дворнягу с лавашом схомячили и имеете хороший экспириенс. Будем считать, что у меня свой подход. Каждому своё... Мне так проще (: Имею же я в конце концов право немного хренью пострадать? )))
Ну, как зачем Друпал... На Друпале у меня работает и развивается сайт, и я хочу убрать лишнее в самом движке, хочу заточить движок только под нужные задачи. Я уже и так немало сделал в оптимизации сайта, теперь собираюсь редактировать сам Друпал (уже есть на примете куча ненужных вещей), хочу убрать все то, что мне не нужно. Т.е. Друпал для меня в данном случае - это каркас, на котором работает сайт, и с этим каркасом я могу делать все что мне угодно.
А что касается классической разработки сайтов на Друпале, то тут я ничего не имею против целостности ядра.
Кроме шуток и смеха. Остыньте, я никого форкать не собираюсь. Свой движок уже есть. Смарти+Пир. Согласен, не совсем грамотно и где-то убого, но .... Тем не менее.
Мне нравится друпал и модульная архитектура это в целом практично. Для себя я в праве дрочить его как хочу. Можете извращаться с вьюсами, но это попсово как-то...
Действительно против классической drupal-way разработки ничего против не имею, но тем не менее в рамках этого сообщества приходится чувствовать себя, простите за выражение мудаком.
Ничего с друпалом не случится, чё все ссыкуют-то? Это на дофига харкорнее вордпреса. Большинство людей будет плеваться и молиться на укоз. Даже корпоративы будут на нём клепать ))) Если хотите, кстати то тут еще порассуждать и вправду можно.
Заказчик это заказчик. Мне как бы репу себе мылить тоже не хочется и естественно для них по ГОСТу.
Так вот. Будьте терпимее в конце концов. Я ничего просто так брать буду... чисто из принципа. Придёт время обязательно внесу вклад. А пока... Ну уж извините.. буду ковырять до победного.
т.ч.к.
.del
Disallow: /node$ - это что означает?
Кстати, озаботился следующим:
Многоступенчатые выборы видов - это таки зло? Если в тизерах везде одинаковый текст?
Пиша к размышлению+кое-что по развёрнутым фильтрам видов тут
Анти дубль главной
Зло
это правда?
подпишусь ка +1
подпишусь ка
Есть ряд поправок и дополнений по теме, но не вижу смысла ибо 6ка вроде на закате.
7-ка еще бета
так что тут либо 6 либо 5
6ка будет ещё, минимум, год, а скорее два. Так что актуально
По теме - robots.txt для Drupal с комментариями.
по теме http://drupalsn.ru/blogs/seo/225