проблема - роботы яндекса вешают сервак

Главные вкладки

Аватар пользователя poe poe 21 августа 2007 в 14:46

Добрый день!

Наметилась такая проблема.
Сделали сайт большой газеты на друпале.
Все получилось, сайт работает, ежедневно обновляется целым штатом сотрудников, содержит уже большое кол-во статей...
Однако скоро поступили жалобы от провайдера относительно того, что имеет место перегруз.
Стали выяснять, обнаружили, что перегруз происходит оттого, что роботы яндекса осущесвляют чудовищное количество заходов на сайт.
Оказывается, каждая страница нашего сайта имеет в яндексе не одну, а сотни ссылок, которые дублируют друг друга.
Если в яндексе в расширенном поиске набрать в форме "находятся на сайте" доменное имя сайта, то результат выдает несколько десятков тысяч страниц. А у нас их на сайте всего пара тысяч...
Причем вид у этих ссылок почему-то вот такой: домен.com/node/91?page=0,22
(с добавлением ?page=...)

Вероятно дополнительная индексация (вешающая сервак) происходит за счет какой-то формы или каких-то разделов админки?

Общий запрет на индексацию всех страниц кроме основных для нас не выход - мы как раз хотим, чтоб всякая статья индексировалась.
Но похоже, где-то мы напортачили с настройками?

P.S. на всякий случай (мало ли?) - в данном проекте активно используются модули views, cck и contemplate

Комментарии

Аватар пользователя orbisnull orbisnull 21 августа 2007 в 14:52

ModRewrite с пересыланием с ...?page=0,22 на домен.com/node/91 с указанием кода "перемещено навсегда" (подробности не помню)...?

Аватар пользователя poe poe 21 августа 2007 в 15:34

Боюсь, я не понял. Вы советуете отключить некую лишнюю настройку в модуле modrewrite?
Но у нас и нет этого модуля. Есть модуль "синонимы" (path) но мы его не используем...
Хотя возможно вы говорите о чем-то другом? Или речь идет о функции "чистые ссылки"?
Вобщем, поясните, плз!

Аватар пользователя beer_destroyer beer_destroyer 21 августа 2007 в 15:41

Не поняли.
1. Зайдите сами на эту ...22... - что видите, страница есть?
2. Попробуйте поискать бэки - откуда, собственно, Яша об этой странице знает.
3. modrewrite это функция не Друпала, а вашего сервера. Если ничего не поможет, сделайте перенаправление 301 на нужные страницы.

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

Аватар пользователя poe poe 21 августа 2007 в 19:14

Пункт 2 . Как искать эти бэки?
Страницы по этим причудливым ссылкам открываются правильно. Напр.:
http://hutorov.net/node/167?page=0%2C18

Есть подозрение, что причиной может быть пэйджер в левом нижнем углу (если зайдете по данной ссылке увидите). Потому как он как раз формирует соответствующего вида ссылки-переходы.
А поисковик, вероятно, реагирует на него как на индекс цитируемости и индексируя каждую страницу, скопом индексирует и все десятки ссылок, которые выводит пэйджер. Как считаете, похоже на правду?

Аватар пользователя sas@drupal.org sas@drupal.org 21 августа 2007 в 16:24

Есть такой файлик robots.txt , его надо расположить там где index.php, в нем можно четко указать по шаблонам для каких поисковиков, что разрешить индексировать

Аватар пользователя Zlata Zlata 21 августа 2007 в 16:04

а какие характеристики у вашего хостинга?

сск и views так хулиганить точно не могут, а вот с contemplate не знакома. может он виноват?
еще проверьте http://www.yandex.ru/cgi-bin/test-robots - какие страницы у вас не индексируются

Аватар пользователя VLAD_X VLAD_X 21 августа 2007 в 16:35

Да, в Друпале есть такая бага: при заходе на несуществующую страницу типа /node?page=123 выдаётся сама нода или последняя существующая страница (н-р, 3-я). А ведь следует отдавть 404 Not found.
Вот поисковик и перебирает огромное кол-во страниц впустую.

Для 4.7 когда-то делал патч, пользуйте на здоровье. Для 5-ки сделаю, когда руки дойдут.
Патчить надо файл /includes/pager.inc

Аватар пользователя Valeratal Valeratal 21 августа 2007 в 17:40

да, походу вообще пофигу чего набирать

будем ждать когда руки дойдут Smile

А вообще это конечно можно поправить в htaccess

Аватар пользователя poe poe 21 августа 2007 в 19:09

непонятно, как это можно поправить в htaccess, или в robots.txt
Еще раз подчеркиваю, никакие ограничения на индексацию нам категорически не нужны. Нам нужно лишь, чтоб одни и те же страницы по сто раз не индексировал как если б они были разные.

Что касается вида ссылок:
Например:
http://hutorov.net/node/170?page=0%2C19

сама страница node/170 конечно же есть... и она открывается, только непонятно, откуда дополнительный довесок у сылки? и главное почему много раз индексируется, а не один раз...

Аватар пользователя orbisnull orbisnull 22 августа 2007 в 7:32

Еще раз подчеркиваю, никакие ограничения на индексацию нам категорически не нужны. Нам нужно лишь, чтоб одни и те же страницы по сто раз не индексировал как если б они были разные.

бред, либо 1-е, либо второе, htaccess, или в robots.txt вам помогут, пишете там что нужно индексировать, а что нет, а для ?page=0%2C19 делаете перенаправление на http://hutorov.net/node/170 с указанием 301 (удалено навсегда). Наймите кого-нибуть..., там делов то на полчаса... Wink

Аватар пользователя beer_destroyer beer_destroyer 21 августа 2007 в 19:17

Есть какой-то модуль, он, судя по описанию, это все фиксит. Понимаю, что это не совет, но названия модуля не помню.

Было там в описании: типа, не разрешает показывать одинаковый контент с разными адресами типа для уменьшения вероятности бана в поисковиках. Может кто вспомнит?

Аватар пользователя jason32 jason32 22 августа 2007 в 9:45

да сайт спроектирован через одно место - http://hutorov.net/node/170 и http://hutorov.net/node/170?page=0%2C19 - это РАЗНЫЕ страницы, разве никто не заметил paging в левой колонке, от одного до 25, то есть фактически КАЖДАЯ новость умножается на 25 - вы с ума сошли?? Кто так делает?

Аватар пользователя jason32 jason32 22 августа 2007 в 9:50

сейчас на сайте почти 250 новостей, каждая индексируется 25 раз, то есть страниц уже 6250. Надо в robots.txt прописать запрет страницам node/170?page= - все начинающиеся с этой строчки страницы индексироваться не будут. За точным синтаксисом robots.txt - в Яндекс Smile

Аватар пользователя poe poe 22 августа 2007 в 14:24

Есть подозрение, что причиной может быть пэйджер в левом нижнем углу (если зайдете по данной ссылке увидите). Потому как он как раз формирует соответствующего вида ссылки-переходы.

видите, я раньше сам нашел причину))

но только ваш совет мне непонятен:
Надо в robots.txt прописать запрет страницам node/170?page=

а как насчет node/169?page= ? или node/168?page= и т.д. и.т.д. вы же сами заметили - они все разные....

Если, допустим, мы хотим оставить paging, есть ли способ ограничить индексацию?
может как-то возможно указать запрет для всего, что начинается со строчки ?page=
?

Я почитал доки о синтаксисе robots.txt - но подобных примеров там не нашел.
Как вы думаете, можно ли написать так: Disallow: ?page
без слэша вначале с учетом того, что в урле перед знаком вопроса не стоит слэш, как в случае с "грязными адресами" друпала - там он стоит, потому и пишется скажем: Disallow: /?q=user/login/
Или толку не будет?

Аватар пользователя jason32 jason32 22 августа 2007 в 17:33

Мда, действительно, не выйдет, сама структура дебильная, тут ничего не сделать через robots.txt - надо менять структуру, непонятно, нафига вообще этот список слева постоянно висит, выводите там просто последние 10 и всё, что за изврат. Можно попробовать что-то сделать через .htaccess , но не факт, что что-то дельное выйдет. Лиюо сделйте как-то через Аякс, чтобы нажатие на пейджер слева не приводило к смене текущего адреса страницы

Аватар пользователя poe poe 22 августа 2007 в 22:25

да, пожалуй, убить пэйджинг самое разумное решение, просто было любопытно, есть ли другие варианты...

Аватар пользователя poe poe 27 августа 2007 в 22:45

Теперь новая проблема образовалась.
Пейджинг я убил, сайт стало быть теперь не выдает эти безумные ссылки.
А как теперь вычистить из яндекса все 20тыс. ссылок,, которые он успел проиндексировать?

Достаточно ли будет настроить работу сайта так, чтоб он не открывал никаких других ссылок, кроме чистых, выдавая соответственно ошибку ""страница не найдена", - чтобы эти ссылки исчезли из яндекса и роботы прекратили грузить сервак?
У меня на этот счет сомнение - постоянно в яндексе встречаю ссылки на уже давно мертвые сайты...

Или скажем, если на время поставить запрет всему сайту на индексацию, толку не будет, поскольку оно уже проиндексировалось таким диким образом.

Есть ли другой способ?

Аватар пользователя andron13 andron13 27 августа 2007 в 23:26

у меня почти тоже самое. ничё не придумал. живёт несколько десятков тысяч ссылок в яндексе. виртуальных.

Аватар пользователя beer_destroyer beer_destroyer 27 августа 2007 в 23:32

Достаточно ли будет настроить работу сайта так,

Недостаточно. Нужно ставить permanent redirect 301. Что это за зверь и как его лучше ставить легко находится в любом поисковике.

Со временем, когда поисковики это просекут, это можно будет убить.

Зы Решение полностью зеленое. Никакая информация из БД на вашем сайте при этом не пропадет.

Аватар пользователя poe poe 28 августа 2007 в 0:31

Спасибо, поищу.
Скажите только (чтоб мне зря не рыть в ошибочном направлении), при настраивании этого permanent redirect 301, я надеюсь, не нужно прописывать вручную все какие ссылки хорошие, а какие плохие?..
напомню - у нас эти ссылки с вариациями после вопросительного знака идут после всех страниц, а их несколько сотен...
для каждой не напишешь: node/71 - не выводить ничего кроме node/71...
node/72 - не выводить ничего кроме node/72...
node/666 - не выводить ничего кроме node/666...
и т.д. и т.д.

Аватар пользователя beer_destroyer beer_destroyer 28 августа 2007 в 0:47

node/666\?.* node/666 [R=301]

Там дело в том, что у модуля реврайта странная реализация регэкспов, и как они там себя в реале поведут - не известно-с. А чтобы стало известно - дома не Денвере прогоняю и уж тогда на хостинг.

Может вообще удасться одним регэкспом все это решить - ХЗ. Тут кроме как поиск и метод тыка ничего не подскажешь.

То есть Большие Гуру может и знают, но я не гуру в этом.

Аватар пользователя jason32 jason32 31 августа 2007 в 10:31

а мне кажется, 404 хватает, даже по методу "рассуждения от обратного" - если бы яндекс не ликвидировал бы у себя такие ссылки, то как бы это всё быстро бы захламилось бы у него самого... Мне кажется, 404 должна помочь. 301 немного не для того, имхо, это для склеивания многих ссылок в одну...

Аватар пользователя beer_destroyer beer_destroyer 31 августа 2007 в 10:54

301 немного не для того, имхо, это для склеивания многих ссылок в одну...
Здесь как раз таки тот самый случай: есть куча адресов у одного материала, их надо склеить в один.

Аватар пользователя dimanjy dimanjy 5 сентября 2007 в 12:34

Речь же шла про Яндекс, а не про Гугль. Пиар там если и взялся откуда-нибудь, то уж точно не извне, а с исходной же страницы, поэтому если просто стереть страницы, то на них просто перестанет перетикать этот самый пиар. Что до Яндекса, так тот вообще может глубоко зафильтровать сайт за огромное число дублей. Проверено Smile

Аватар пользователя beer_destroyer beer_destroyer 5 сентября 2007 в 13:46

Люди странные все ж... Им говориш как есть - они спорят, как по их мнению должно быть. Ну удачи, убедите Я и Г - может вам повезет.