canonical joomla 3 - Бич СЕО сайтов на Joomla 3.0

С выходом joomla 3. В системе появилась одна большая проблема, это проблема называется rel="canonical". Проблема всего в одной строчке, которая не правильно сообщает поисковику о том, где находится оригинальная страница.

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

В большинстве блогов дан рецепт, который применять крайне не рекомендуется. Рецепт прост - это хак одного из системыных плагинов Joomla, и при обновлении Joomla все изменения придется делать заново.

Находим файл: plugins/system/sef/sef.php и комментируем в нем 51 строчку:

$doc->addHeadLink($link, 'canonical');

Комментирование строки происходит следующим образом в начале строки ставится два слеша.

// $doc->addHeadLink($link, 'canonical');

Теперь рассмотрим более логичный способом, изменение шаблона, для запрета вывода rel="canonical".

Для этого идем в папку вашего шаблона которая примерно располагается по адресу: templates/ваш_шаблон/index.php

И вставляем следующие строки:

<?php
         foreach ($this->_links as $key=>$item)
         {
         if ($item['relation'] == 'canonical')
         {unset($this->_links[$key]);}
         }         
?>

Теперь удаление тега canonical на уровне шаблона, и после обновления Joomla вам не придедется делать хак снова.

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

Защитный код

Комментарии

Амос

Амос

после вставки этого кода в шаблон слетает сайт полностью!!! Пришлось восстанавливать из резервной копии.
Роман

Роман

А вставляем в шаблон в какое место? (head или body)
Вадим

Вадим

Обычно вставляется в самое начало... до тега
Вадим

Вадим

Прямо в начало файла. Что вам дался этот тег head.
Логин

Логин

Тег canonical сделан для борьбы с дублями страницы?! Если это так, то тогда как быть с дублями страниц после удаление тега canonical?
Вадим

Вадим

То же самое, что и с Joomla 2.5. Вообще проблему canonical в joomla 3.1 пофиксили. Однако могу сказать, что canonical не всем сайтам нужен.
touche

touche

Спасибо за отличный багфикс! Добавил вас в G+
Эдуард

Эдуард

Подскажите а где исправить в Joomla 2.5
Вадим

Вадим

Joomla 2.5 этой проблемой не страдает. Канонические ссылки появились только в Joomla 3
andrey222

andrey222

Все неканонические ссылки забракованные по этой причине поисковиками в joomla 3.0 остались неканоническими и в 3.1.1 И в поиск не попадали
Андрей222

Андрей222

В Joomla 3.1 и Joomla 3.1.1 ничего не исправлено :-?
Вадим

Вадим

3.1.1 не смотрел, но в 3.1 глюк с canonical был на главной странице. Так, что отключать его все равно рекомендуется, пока не пофиксят нормально.
Dimonira

Dimonira

В J3.1.1 строка такая:
$doc->addHeadLink(htmlspecialchars($link), 'canonical');
Если я правильно понимаю, то проблема осталась. Надо фиксить?
Вадим

Вадим

нет на сколько я знаю проблемы с 3.1.1 такой особой нет. Смотрите HTML Код :-) Я смотрел проблем не нашел.
andrey222

andrey222

Цитирую Вадим:
нет на сколько я знаю проблемы с 3.1.1 такой особой нет. Смотрите HTML Код :-) Я смотрел проблем не нашел.

Найдите в joomla 2,5 неканонические ссылки а сколько их в joomla 3.1
Вадим

Вадим

Вы не поверитие не канонических страниц в Joomla 2.5 столько же сколько и в Joomla 3. Роутер и обработка роутера в Joomla 3 не менялась.
apache

apache

Большое спасибо, а я думаю по чему это яндекс с гуглом только категории проиндексировал . А там везде линк 'canonical' на категорию..
Евгений
+1

Евгений

Спасибо большое ! Теперь понятно почему мои страницы на tech-list.ru выпали из индекса Яндекса
Вадим

Вадим

Пожалуйста рад, что мои рекомендации помогли вам решить проблему. Через пару недель страницы должны восстановиться.
Виктор Липов
+1

Виктор Липов

Проблема больше неактуальна, в 3.1 проблему пофиксили (по крайней мере в третьей бете уже реализовано)
Вадим
+1

Вадим

Joomla 3.1 официально еще нет. И не исключено, что в ней будут свои глюки. А Joomla 3 щас достаточно популярна.