loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

ХакиАвтодобавление тега canonical для предотвращения дублей

Написал zgr, 26 декабря 2010 | 6 комментариев | рейтинг новости не нравится   +2   нравится Версия для печати
Не знаю, баян или нет, но нигде не нашел этой темы, может, кому пригодится. Надоумил "Mr.Smith" на оф.форуме ДЛЕ. Данный хак позволяет сделать автодобавление тега canonical для предотвращения дублей страниц на сайте, многие уже заметили, что можно ввести абсолютно любой адрес и откроется новость, потому как проверяется только ее айди, а айди категорий или альтнейм новости не проверяется на соответствие. Таким образом, если появляется "левый" адрес страницы, то одна и та же страница становится доступной по очень многим адресам, что и вызывает массу проблем с поисковиками: от пессимизации до полного вылета из индекса кроме главной страницы, либо неверное ранжирование.

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

if ($newsid!='' && $news_found && $dle_module=='showfull') {
  if ($config['allow_alt_url']=='yes') {
        if (parse_url($full_link,PHP_URL_SCHEME).'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']!=$full_link) {
          $metatags .= "\n<link rel=\"canonical\" href=\"$full_link\" />\n";
        }
  }
}

Отблагодарили: Eviral, MASAKRA

Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал Daniil, 26 декабря 2010 в 17:42 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 9, Пользователи
Карма:
И куда это добавить?

Написал zgr, 26 декабря 2010 в 18:41 плохой комментарий   +1   хороший комментарий
Новостей: 4, комментариев: 29, Пользователи
Карма:
Блин, никак капчу не мог одолеть, несколько раз копипастил и неправильно отправилось в итоге. Извиняюсь. Править здесь:

В файле /engine/engine.php

Перед:

if ($config['allow_rss']) $metatags .= <<


Теперь если зайти как обычно:
_http://isle-poem.ru/zaiva/zaiva_2010/37-do-not-fly.html
Нет каноникла.
Если зайти по-левому (эта же новость всё также нормально открывается):
_http://isle-poem.ru/0/37-do-not-fly.html
Есть каноникл.

Почему именно так? Здесь пишут:

Скопируйте эту ссылку в раздел всех неканонических версий страницы...


Чётко не указано, можно ли на всех страницах размещать сей тег, но сказано, что его размещать нужно на Неканонических страницах, что подразумевает под собой: на канонических страницах тег каноникал размещать не следует, дабы не напрягать лишний раз алгоритмы обхода поисковых роботов. Думается, так.

Написал CKBAD, 26 декабря 2010 в 19:54 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 65, Пользователи
Карма:
А почему забыли про категории ? Там же аналогичная фигня.

Написал zgr, 26 декабря 2010 в 21:02 плохой комментарий   0   хороший комментарий
Новостей: 4, комментариев: 29, Пользователи
Карма:
А что именно вам нужно с категориями - редирект на правильную страницу или что-то другое? Сам тег каноникал ставится независимо от путей, пути формируются в ДЛЕ, это переменная $full_link. Данный тег поможет вам правильно скармливать поисковикам нужные страницы и выкинуть левый мусор из индекса.

Если вам нужен именно поиск всех 404-ссылок на неправильные страницы вашего (или внешнего) сайта, редиректы на правильные страницы (т.е. заходим по ссылке "бла-бла" и попадаем на правильную страницу) и т.д., стучите в агент (zgr@bk.ru), обсудим реализацию, а то, что вы сейчас смотрите - это всего лишь хак, а не модуль. :)

Написал DaImeR, 27 декабря 2010 в 01:13 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 57, Пользователи
Карма:
Что то ничего не понял. Можно поподробнее для чего это?

Написал Laksamana, вчера, 21:28 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 3, Пользователи
Карма:
Подробнее:
http://www.google.com/support/webmasters/bin/answer.py?answer=139394

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта

[removed][removed] [removed] (adsbygoogle = window.adsbygoogle || []).push({}); [removed]