Операция "убить дубли навсегда" (в Друпале)

Операция убить дубли

Устал бороться с постоянно появляющимися дублями типа:

http://noindex.by/drupal/yandeks-poisk-dlya-drupala?page=62

Жирным подчёркнуто "добавленное" к реальной странице, что порождает дубль.

Почти всегда они появляются (лишь) в Google. Обычно такого нет в выдаче, однако, как видно на картинке, Гугл таки в инструментах для вебмастера (раздел "Оптимизация", подраздел "Оптимизация HTML") на них постоянно "жалуется":

Решил убить следующим способом. В настройке материала в разделе "Установки комментариев" выставил "максимум" - 300 комментариев на страницу. Что "сделало" все статьи на сайте "одностраничными", т.к. больше трёх сотен комментов (пока) никто к статье не оставил (а если и получится, то эти "единичные" случаи можно будет внести в роботы как исключения). Соответственно, получилось, что на сайте нигде "?page=" (да и, вообще, всё, содержащее знак "?") не используется. Исключение - статьи на морде и в трэкере. Первое не даёт никакого трафика, потому его также смело можно убить (т.е. все страницы http://noindex.by/?page=xxx будут запрещены в роботах - ну, и фиг с ними). Второе (трэкер или "Последнее на сайте"), в принципе, нужно для сканирования сайта роботами (как своеобразная "карта сайта", т.е. того, что по каким-то причинам не нашлось в sitemap.xml). Для него добавим исключение. Соответственно, дописать в robots.txt нужно следующее:

Allow: /tracker?page=
Disallow: /*?

Продвинутые в роботонаписании мне заметят, что такая запись "правильно" будет воспринята лишь Яндексом, который учитывает директивы соответственно их длине, а потому Allow "перекроет" Disallow. Это правда. Однако также и правда, что в Google проще "вогнать" новые материалы да и sitemap.xml он "любит" (через который всегда попадёт "нужное"). Потому особо не призываю "повторять подвиг", однако "забыть про дубли" - всё перевешивает. Посмотрим.

Комментарии

Так ничего не получится, сколько не переделывай robots и sitemap. Главное, чтобы в момент запроса несуществующей страницы выдавался правильный header - 404 ошибка. Это надо специальный механизм писать и через htaccess реализовывать.

Иначе в Гугле будут всё время появляться дубли и, что интересно, они ведь реально существуют! Перейдите по кривому URL и.... получите нормальную страницу. А должны - "Error 404 page not found".

Совершенно справедливое замечание, если бы не одно НО. Движок должен так уметь - отдавать Error 404 на несуществующую страницу. Однако большинство (в т.ч. Друпал) так делать не умеет.

Почему? Всё просто, достаточно вдуматься. Чтобы так делать (отдавать ошибку, если страницы нет), нужно на каждый запрос проверять, есть ли такая страница в базе, для чего придётся делать весьма тяжёлый запрос к БД. Современные движки и так жёстко (а чаще жестоко) грузят БД, а при таком сценарии - железа не напасёшься даже не на самые большие сайты. В результате приходится "жить с чем есть жить" и бороться с дублями подручными средствами. Короче - травить их дустом, понимая, что чуть расслабишься, так они снова разведутся...

Добавить комментарий