Добрый день!
Наметилась такая проблема.
Сделали сайт большой газеты на друпале.
Все получилось, сайт работает, ежедневно обновляется целым штатом сотрудников, содержит уже большое кол-во статей...
Однако скоро поступили жалобы от провайдера относительно того, что имеет место перегруз.
Стали выяснять, обнаружили, что перегруз происходит оттого, что роботы яндекса осущесвляют чудовищное количество заходов на сайт.
Оказывается, каждая страница нашего сайта имеет в яндексе не одну, а сотни ссылок, которые дублируют друг друга.
Если в яндексе в расширенном поиске набрать в форме "находятся на сайте" доменное имя сайта, то результат выдает несколько десятков тысяч страниц. А у нас их на сайте всего пара тысяч...
Причем вид у этих ссылок почему-то вот такой: домен.com/node/91?page=0,22
(с добавлением ?page=...)
Вероятно дополнительная индексация (вешающая сервак) происходит за счет какой-то формы или каких-то разделов админки?
Общий запрет на индексацию всех страниц кроме основных для нас не выход - мы как раз хотим, чтоб всякая статья индексировалась.
Но похоже, где-то мы напортачили с настройками?
P.S. на всякий случай (мало ли?) - в данном проекте активно используются модули views, cck и contemplate
Комментарии
ModRewrite с пересыланием с ...?page=0,22 на домен.com/node/91 с указанием кода "перемещено навсегда" (подробности не помню)...?
Боюсь, я не понял. Вы советуете отключить некую лишнюю настройку в модуле modrewrite?
Но у нас и нет этого модуля. Есть модуль "синонимы" (path) но мы его не используем...
Хотя возможно вы говорите о чем-то другом? Или речь идет о функции "чистые ссылки"?
Вобщем, поясните, плз!
Не поняли.
1. Зайдите сами на эту ...22... - что видите, страница есть?
2. Попробуйте поискать бэки - откуда, собственно, Яша об этой странице знает.
3. modrewrite это функция не Друпала, а вашего сервера. Если ничего не поможет, сделайте перенаправление 301 на нужные страницы.
Боюсь, правда, что у вас не получится. Наймите тогда мальчика, пусть он вам сделает за небольшую плату.
Пункт 2 . Как искать эти бэки?
Страницы по этим причудливым ссылкам открываются правильно. Напр.:
http://hutorov.net/node/167?page=0%2C18
Есть подозрение, что причиной может быть пэйджер в левом нижнем углу (если зайдете по данной ссылке увидите). Потому как он как раз формирует соответствующего вида ссылки-переходы.
А поисковик, вероятно, реагирует на него как на индекс цитируемости и индексируя каждую страницу, скопом индексирует и все десятки ссылок, которые выводит пэйджер. Как считаете, похоже на правду?
Есть такой файлик robots.txt , его надо расположить там где index.php, в нем можно четко указать по шаблонам для каких поисковиков, что разрешить индексировать
у яндекса есть еще бяка - не понимает он Crawl-delay, кто-нибудь это одолел?
а какие характеристики у вашего хостинга?
сск и views так хулиганить точно не могут, а вот с contemplate не знакома. может он виноват?
еще проверьте http://www.yandex.ru/cgi-bin/test-robots - какие страницы у вас не индексируются
Да, в Друпале есть такая бага: при заходе на несуществующую страницу типа /node?page=123 выдаётся сама нода или последняя существующая страница (н-р, 3-я). А ведь следует отдавть 404 Not found.
Вот поисковик и перебирает огромное кол-во страниц впустую.
Для 4.7 когда-то делал патч, пользуйте на здоровье. Для 5-ки сделаю, когда руки дойдут.
Патчить надо файл /includes/pager.inc
да, походу вообще пофигу чего набирать
будем ждать когда руки дойдут
А вообще это конечно можно поправить в htaccess
непонятно, как это можно поправить в htaccess, или в robots.txt
Еще раз подчеркиваю, никакие ограничения на индексацию нам категорически не нужны. Нам нужно лишь, чтоб одни и те же страницы по сто раз не индексировал как если б они были разные.
Что касается вида ссылок:
Например:
http://hutorov.net/node/170?page=0%2C19
сама страница node/170 конечно же есть... и она открывается, только непонятно, откуда дополнительный довесок у сылки? и главное почему много раз индексируется, а не один раз...
бред, либо 1-е, либо второе, htaccess, или в robots.txt вам помогут, пишете там что нужно индексировать, а что нет, а для ?page=0%2C19 делаете перенаправление на http://hutorov.net/node/170 с указанием 301 (удалено навсегда). Наймите кого-нибуть..., там делов то на полчаса...
Есть какой-то модуль, он, судя по описанию, это все фиксит. Понимаю, что это не совет, но названия модуля не помню.
Было там в описании: типа, не разрешает показывать одинаковый контент с разными адресами типа для уменьшения вероятности бана в поисковиках. Может кто вспомнит?
Да, если б кто-то вспомнил, было бы круто.
да сайт спроектирован через одно место - http://hutorov.net/node/170 и http://hutorov.net/node/170?page=0%2C19 - это РАЗНЫЕ страницы, разве никто не заметил paging в левой колонке, от одного до 25, то есть фактически КАЖДАЯ новость умножается на 25 - вы с ума сошли?? Кто так делает?
сейчас на сайте почти 250 новостей, каждая индексируется 25 раз, то есть страниц уже 6250. Надо в robots.txt прописать запрет страницам node/170?page= - все начинающиеся с этой строчки страницы индексироваться не будут. За точным синтаксисом robots.txt - в Яндекс
Есть подозрение, что причиной может быть пэйджер в левом нижнем углу (если зайдете по данной ссылке увидите). Потому как он как раз формирует соответствующего вида ссылки-переходы.
видите, я раньше сам нашел причину))
но только ваш совет мне непонятен:
Надо в robots.txt прописать запрет страницам node/170?page=
а как насчет node/169?page= ? или node/168?page= и т.д. и.т.д. вы же сами заметили - они все разные....
Если, допустим, мы хотим оставить paging, есть ли способ ограничить индексацию?
может как-то возможно указать запрет для всего, что начинается со строчки ?page=
?
Я почитал доки о синтаксисе robots.txt - но подобных примеров там не нашел.
Как вы думаете, можно ли написать так: Disallow: ?page
без слэша вначале с учетом того, что в урле перед знаком вопроса не стоит слэш, как в случае с "грязными адресами" друпала - там он стоит, потому и пишется скажем: Disallow: /?q=user/login/
Или толку не будет?
Мда, действительно, не выйдет, сама структура дебильная, тут ничего не сделать через robots.txt - надо менять структуру, непонятно, нафига вообще этот список слева постоянно висит, выводите там просто последние 10 и всё, что за изврат. Можно попробовать что-то сделать через .htaccess , но не факт, что что-то дельное выйдет. Лиюо сделйте как-то через Аякс, чтобы нажатие на пейджер слева не приводило к смене текущего адреса страницы
да, пожалуй, убить пэйджинг самое разумное решение, просто было любопытно, есть ли другие варианты...
Теперь новая проблема образовалась.
Пейджинг я убил, сайт стало быть теперь не выдает эти безумные ссылки.
А как теперь вычистить из яндекса все 20тыс. ссылок,, которые он успел проиндексировать?
Достаточно ли будет настроить работу сайта так, чтоб он не открывал никаких других ссылок, кроме чистых, выдавая соответственно ошибку ""страница не найдена", - чтобы эти ссылки исчезли из яндекса и роботы прекратили грузить сервак?
У меня на этот счет сомнение - постоянно в яндексе встречаю ссылки на уже давно мертвые сайты...
Или скажем, если на время поставить запрет всему сайту на индексацию, толку не будет, поскольку оно уже проиндексировалось таким диким образом.
Есть ли другой способ?
у меня почти тоже самое. ничё не придумал. живёт несколько десятков тысяч ссылок в яндексе. виртуальных.
Достаточно ли будет настроить работу сайта так,
Недостаточно. Нужно ставить permanent redirect 301. Что это за зверь и как его лучше ставить легко находится в любом поисковике.
Со временем, когда поисковики это просекут, это можно будет убить.
Зы Решение полностью зеленое. Никакая информация из БД на вашем сайте при этом не пропадет.
Спасибо, поищу.
Скажите только (чтоб мне зря не рыть в ошибочном направлении), при настраивании этого permanent redirect 301, я надеюсь, не нужно прописывать вручную все какие ссылки хорошие, а какие плохие?..
напомню - у нас эти ссылки с вариациями после вопросительного знака идут после всех страниц, а их несколько сотен...
для каждой не напишешь: node/71 - не выводить ничего кроме node/71...
node/72 - не выводить ничего кроме node/72...
node/666 - не выводить ничего кроме node/666...
и т.д. и т.д.
node/666\?.* node/666 [R=301]
Там дело в том, что у модуля реврайта странная реализация регэкспов, и как они там себя в реале поведут - не известно-с. А чтобы стало известно - дома не Денвере прогоняю и уж тогда на хостинг.
Может вообще удасться одним регэкспом все это решить - ХЗ. Тут кроме как поиск и метод тыка ничего не подскажешь.
То есть Большие Гуру может и знают, но я не гуру в этом.
а мне кажется, 404 хватает, даже по методу "рассуждения от обратного" - если бы яндекс не ликвидировал бы у себя такие ссылки, то как бы это всё быстро бы захламилось бы у него самого... Мне кажется, 404 должна помочь. 301 немного не для того, имхо, это для склеивания многих ссылок в одну...
301 немного не для того, имхо, это для склеивания многих ссылок в одну...
Здесь как раз таки тот самый случай: есть куча адресов у одного материала, их надо склеить в один.
404 - 100%
После переиндексации и обновления базы лишние страницы пропадут из Яндекса. Проверено.
И пиар с этих страниц тоже... Проверено. Если именно этого и добиваетесь - конечно так и надо.
Речь же шла про Яндекс, а не про Гугль. Пиар там если и взялся откуда-нибудь, то уж точно не извне, а с исходной же страницы, поэтому если просто стереть страницы, то на них просто перестанет перетикать этот самый пиар. Что до Яндекса, так тот вообще может глубоко зафильтровать сайт за огромное число дублей. Проверено
Люди странные все ж... Им говориш как есть - они спорят, как по их мнению должно быть. Ну удачи, убедите Я и Г - может вам повезет.