Леголегс |
Отправлено: 13 марта 2010 — 19:16
|
Junior Member
Покинул форум
Сообщений всего: 87
Дата рег-ции: Март 2010
Репутация: 12
|
Апнем тему.
Я тут решил составить "идеальный" robots.txt раз и навсегда. Получилось вот такое:
CODE:User-agent: *
Disallow: /admincenter.php
Disallow: /forums.php?action=markall
Disallow: /index.php?c=
Disallow: /loginout.php
Disallow: /messenger.php
Disallow: /postings.php
Disallow: /post.php
Disallow: /printpage.php
Disallow: /profile.php?action=lostpassword
Disallow: /register.php
Disallow: /search.php
Disallow: /set*.php
Disallow: /tools.php?action=chat
Disallow: /tools.php?action=mail
Disallow: /tools.php?action=online
Disallow: /tools.php?action=preport
Disallow: /tools.php?action=smiles
Disallow: /tools.php?action=threadstop
Disallow: /index.php$
Disallow: /forums.php?forum=*&p=1$
Disallow: /tools.php?action=members&s=&order=ASC&p=1$
Disallow: /topic.php?forum=*&topic=*&p=1$
Disallow: /topic.php?forum=*&topic=*&postid=
Disallow: /topic.php?forum=*&topic=*&v=l
Делалось для форума на своём домене. Если ваш форум в поддиректории forum - везде исправьте /messenger.php на /forum/messenger.php и т.д.
Задачи, решаемые этим robots.txt: минимизация никому не интересных вещей в выдаче (например, отлупы незареганым), минимизация слишком динамических вещей, минимизация дублирования инфы. Задача продвижения в результатах не стояла.
Какие-то вопросы/коменты/исправления?
Заранее скажу: / и /index.php - одинаковые, так что одну надо выкинуть. Тоже самое касается
/forums.php?forum=*&p=1$ и /forums.php?forum=*$
/tools.php?action=members&s=&order=ASC&p=1$ и
/tools.php?action=members$
/topic.php?forum=*&topic=*&p=1$ и /topic.php?forum=*&topic=*$
Отдельно надо упомянуть /topic.php?forum=*&topic=*&postid= и /topic.php?forum=*&topic=*&v=l - они страшно замусоривают выдачу.
Правила форума на подопечном ресурсе свои, так что они не исключены из выдачи. Если кому надо -
CODE:Disallow: /tools.php?action=rules (Отредактировано автором: 13 марта 2010 — 19:20) |
|
|
Леголегс |
Отправлено: 13 марта 2010 — 22:23
|
Junior Member
Покинул форум
Сообщений всего: 87
Дата рег-ции: Март 2010
Репутация: 12
|
nikk пишет:Зачем закрывать главную страницу? Главная - это /
vipraskrutka пишет: User-agent: * лучше сделать попроще А. Ты имеешь ввиду, что спецсимволы * и $ нестандартны? Да, наверно надо отделить.
alexx пишет:Думаю, нужно оставить, то что относится к контекту форума.
Остальное нафиг с пляжа. Ты противоречишь сам себе. То предлагаешь "остальное" убрать, то приводишь вариант с закрытыми /cache/ и т.д. Я, кстати, служебные директории (например, templates) не вносил в список. Там и так пустые страницы видны. А можно даже чмоднуть их поособому, чтоб php их читать мог, а httpd напрямую - нет. Но это не на всех хостах получится. |
|
|
Леголегс |
Отправлено: 13 марта 2010 — 22:52
|
Junior Member
Покинул форум
Сообщений всего: 87
Дата рег-ции: Март 2010
Репутация: 12
|
vipraskrutka пишет:что все было так просто, я закрывал index.php - в яндексе вылетала морда / Не понял. Вылетала - в смысле показывалась или наоборот, исчезала?
vipraskrutka пишет:ага, смотреть нужно спецификацию конкретных ботов Ясно. Я писал под яндекс, думал различия не сильно велики.
Вот что я в вебдеве ненавижу - так это ситуацию с всевозможными стандартами. Куда ни плюнь - либо стандарта нет вообще, либо его все нарушают, либо в стандарте три строчки и все лепят расширения. Хорошо, что мой доход от этой помойки не зависит. (Отредактировано автором: 13 марта 2010 — 22:56) |
|
|
Леголегс |
Отправлено: 13 марта 2010 — 23:22
|
Junior Member
Покинул форум
Сообщений всего: 87
Дата рег-ции: Март 2010
Репутация: 12
|
Zeg пишет: хелп и рулесы не такая уж ценная инфа, особенно учитывая, что она у 98% форумов одинаковая (типовая), что не есть гуд для искалок. Ну я ж говорю, SEO не было целью. А на серьёзных форумах правила часто правятся. Но, в принципе наверно можно заблочить правила в роботс, а в коментах файла правил оставить пометку: если меняете этот файл, возможно, стоит разрешить его индексацию.
Zeg пишет:А список юзеров и вовсе лучше закрыть от посторонних (незарегистрированных) глаз. Почему? Вообще не понимаю этот геноцид незарегистрированных в рунете. Ссылки скрывают, картинки скрывают. Если в поиске мне попадается такой сайт - ctrl-w и всё. Регистрироваться ещё я должен, обойдутся.
Zeg пишет:Disallow: index.php?action=resetall Ага, спасибо.(Отредактировано автором: 13 марта 2010 — 23:25) |
|
|
Zeg |
Отправлено: 14 марта 2010 — 01:21
|
Super Member
Покинул форум
Сообщений всего: 891
Дата рег-ции: Март 2009
Откуда: Беларусь
Репутация: 89
|
Леголегс пишет:Кроме того, тут уже упоминалось, что с символом $ надо осторожнее.
Специально полистал доки, проблем с * и $ ни у Яндекса, ни у Гугла быть не должно, т.к. эти символы и там, и там описаны, как рекомендованные к применению. До остальных искалок как-то дела нет, но думаю дела там не хуже обстоят.
Как гугл попадает - хез, но попадает же...
(Добавление)
С Гугла:
Цитата:Чтобы задать соответствие конечных символов URL-адреса, используйте символ $. Например, чтобы заблокировать доступ к URL, оканчивающемуся на .xls, используйте следующие строки:
CODE:User-agent: Googlebot
Disallow: /*.xls$
С Яндекса:
Цитата:Использование спецсимволов "*" и "$".
При указании путей директив Allow-Disallow можно использовать спецсимволы '*' и '$', задавая, таким образом, определенные регулярные выражения. Спецсимвол '*' означает любую (в том числе пустую) последовательность символов. Примеры:
CODE:User-agent: Yandex
Disallow: /cgi-bin/*.aspx # запрещает '/cgi-bin/example.aspx'
# и '/cgi-bin/private/test.aspx'
Disallow: /*private # запрещает не только '/private',
# но и '/cgi-bin/private'
Спецсимвол '$'.
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается '*', например:
CODE:User-agent: Yandex
Disallow: /cgi-bin* # блокирует доступ к страницам
# начинающимся с '/cgi-bin'
Disallow: /cgi-bin # то же самое
чтобы отменить '*' на конце правила, можно использовать спецсимвол '$', например:
CODE:User-agent: Yandex
Disallow: /example$ # запрещает '/example',
# но не запрещает '/example.html'
CODE:User-agent: Yandex
Disallow: /example # запрещает и '/example',
# и '/example.html'
CODE:User-agent: Yandex
Disallow: /example$ # запрещает только '/example'
Disallow: /example*$ # так же, как 'Disallow: /example'
#запрещает и /example.html и /example |
|
|
Zeg |
Отправлено: 31 марта 2010 — 21:58
|
Super Member
Покинул форум
Сообщений всего: 891
Дата рег-ции: Март 2009
Откуда: Беларусь
Репутация: 89
|
Проанализировал статистику по 5 разным форумам и их индексации в Яндексе. На тех форумах, которые Яндекс не любит особо часто посещать и вдаваться в дебри вот эти строки не рекомендованы:
CODE:Disallow: /forums.php?forum=*&p=1$
Disallow: /tools.php?action=members&s=&order=ASC&p=1$
Disallow: /topic.php?forum=*&topic=*&p=1$
По логике - они верны, т.е. "отсекаются" дубли страниц, которые искалки серьезные (аля Гугл) не приветствуют. Т.е., к примеру,адреса мой.сайт/forums.php?forum=1&p=1 и мой.сайт/forums.php?forum=1 идентичны. И это плохо.
Но! Яндекс же не всегда поддаётся логике, поэтому, дальше страницы 1, т.е. с &p=1 он почему-то не идет, хотя на другие страницы явно есть ссылки (даже с той же первой страницы без &p=1). И эти страницы с параметром тоже в индекс не добавляет, т.к. они запрещены в robots-е. Почему так себя ведет Яндекс - понять нельзя.
Немного оффтоп. Юра, есть смысл вообще на уровне движка избавится от дублей таких страниц, т.е. сразу при генерации на странице ссылок очень хорошо бы отбрасывать этот параметр ( &p=1) за ненадобностью. Леголегс об этом писАл раньше.
Еще нужно добавить в robots.txt вот такую строку:
CODE:Disallow: /forum/printfile.php?action=attach*
Яндекс на вложениях тоже иногда такую "дурь" выкидывает, страх.
А вот строку со ссылкой на "Рейтинг популярных тем":
CODE:Disallow: /tools.php?action=threadstop
я бы в robots.txt не писал. Наоборот с этой страницы масса ссылок на популярные и последние темы. Перелинковка здоровская!
зы. Раньше уже писал, нужно ссылки на последние сообщения форумов и подфорумов привести в "божеский" вид, т.е. они вот такие ваш.сайт/forum/topic.php?forum=ХХ&topic=Н&v=l#12345678 и, в соответствии с robots.txt, просто запрещены к индексации. Для тех, кто хочет это сделать самостоятельно, инструкиция под спойлером ниже.
Инструкция (Отобразить)
Открываем файл index.php и строку
CODE:$sub_lastpost = '<a href="topic.php?forum='.$subid.'&topic='.$allforums[$subid]['last_post_id'].'&v=l#'.$allforums[$subid]['last_key'].'" title="'.$allforums[$subid]['last_post'].'">'.$sub_lastpost.'</a>';
заменяем на
CODE:$sub_lastpost = '<a href="topic.php?forum='.$subid.'&topic='.$allforums[$subid]['last_post_id'].'&postid='.$allforums[$subid]['last_key'].'#'.$allforums[$subid]['last_key'].'" title="'.$allforums[$subid]['last_post'].'">'.$sub_lastpost.'</a>';
Строку
CODE:$LastTopicName = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif"> '.($fm->exbb['show_hints'] ? '<span class="hint">' : '').'<a href="topic.php?forum='.$id.'&topic='.$forum['last_post_id'].'&v=l#'.$forum['last_key'].'" title="'.$forum['last_post'].'">'.$LastTopicName.'</a>'.($fm->exbb['show_hints'] ? '</span>' : '');
заменяем на
CODE:$LastTopicName = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif"> '.($fm->exbb['show_hints'] ? '<span class="hint">' : '').'<a href="topic.php?forum='.$id.'&topic='.$forum['last_post_id'].'&postid='.$forum['last_key'].'#'.$forum['last_key'].'" title="'.$forum['last_post'].'">'.$LastTopicName.'</a>'.($fm->exbb['show_hints'] ? '</span>' : '');
При желании можно поправить по аналогии файлы forums.php:
строку
CODE:$LastTopicName = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif"> '.($fm->exbb['show_hints'] ? '<span class="hint">' : '').'<a href="topic.php?forum='.$id.'&topic='.$forum['last_post_id'].'&v=l#'.$forum['last_key'].'" title="'.$forum['last_post'].'">'.$LastTopicName.'</a>'.($fm->exbb['show_hints'] ? '</span>' : '');
заменить на
CODE:$LastTopicName = '<img src="./templates/'.DEF_SKIN.'/im/lastpost.gif"> '.($fm->exbb['show_hints'] ? '<span class="hint">' : '').'<a href="topic.php?forum='.$id.'&topic='.$forum['last_post_id'].'&postid='.$forum['last_key'].'#'.$forum['last_key'].'" title="'.$forum['last_post'].'">'.$LastTopicName.'</a>'.($fm->exbb['show_hints'] ? '</span>' : '');
(Отредактировано автором: 31 марта 2010 — 23:52) |
|
|
|