Как добавить настраиваемый rel="canonical" в Joomla 1.5

(Ответов: 4, Просмотров: 4733)
  1. Дипломник Аватар для TimHam
    • Регистрация: 14.12.2012
    • Сообщений: 233
    • Репутация: 56
    • Webmoney BL: ?
    Коллеги, добрый день.
    Вчера у меня был очень грустный день. У меня, есть подозрение на плагин: Content - YO Related News, задублировались 14 страниц из одного категории, и размножились по 45-50 копий в разных категориях, к которым они вообще ни как не относятся. Вот пример одного из файлов:

    Мавзолей Хо Ши Мина в Ханое:
    /animals/mavzolei-ho-shi-mina-v-hanoe.html
    /news/mavzolei-ho-shi-mina-v-hanoe.html
    /stazhirovki-vo-vietname/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzei-vietnama/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzika-i-tantci/cheo-ili-vietnamskii-populiarnii-teatr/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzika-i-tantci/classicheskaia-vietnamskaia-opera-ili-tuong/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzika-i-tantci/istoriia-vietnamskoi-muzyki/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzikalnie-instrumenti/vietnamskii-muzikalnii-instrument-36-strunnaia-tcitra/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzikalnie-instrumenti/vietnamskii-muzikalnii-instrument-dan-bau/mavzolei-ho-shi-mina-v-hanoe.html
    /viet/muzikalnie-instrumenti/vietnamskii-muzikalnii-instrument-tcitra-tranh/mavzolei-ho-shi-mina-v-hanoe.html

    И так далее, 45-50 раз. То, что выделено жирным, - это нормальный адрес страницы, остальное все дубли.
    В итоге в Гугле сплыло вместо 14 страниц – 650 страниц, и все уже в индексе.
    Я обратился к мною уважаемому: genjnat. Он прифигел не меньше. Ибо когда я писал ему с утра, копий было 4-7 штук, к вечеру 50!

    В общем, мы с ним обдумали варианты, и самый простой это убрать страницы из индекса, с помощью мета тега - meta name="robots", прописав в него noindex, nofollow. А потом долго ждать, когда страницы выпадут из индекса и добавить нужные заново, предварительно отключив плагин: Content - YO Related News, на который и грешили.

    Был вариант попробовать rel="canonical", но мы не просекли, как его добавить в <head>, да и так, что бы он был возможен для редактирования на каждой странице материала.

    В итоге я тупо сделал редиректы такого вида:
    Redirect 301 /viet/muzei-vietnama/mavzolei-ho-shi-mina-v-hanoe.html _http://allviet.ru/viet/muzei-vietnama/mavzolei-ho-shi-mina-v-hanoe-new.html

    Добавив в конце –new. Таким образом, у меня все дубли ушли в ошибку 404, и со временем бы отвалились, но это почти 600 страниц, фиг его знает как Гугла к этом отнесется. Поэтому я стал думать, - rel="canonical" не давал мне покоя, тем более его и Яндекс подхватил (кстати, в Яндексе дублей не обнаружено).

    Стал я копошится и копошится в инфе. Меня волновал проблема, как добавить новый мета тег в параметры материала:

    Нажмите на изображение для увеличения.  Название:	новый тег.jpg  Просмотров:	13  Размер:	51.4 Кб  ID:	10459

    Так как я не силен в php, да и все нюансы joomla не знаю, то я не нашел решения данного вопроса. Если кто подскажет, буду благодарен.
    Зато я пошел по другому пути. Мета тег «Автор» я не использую, поэтому подумал, а почему бы не вбивать в него нужный адрес для rel="canonical", а потом выводить его в нужном теге <link>.
    Решено, сделано:
    1. Идем в /libraries/joomla/document/html/renderer и открываем файл: head.php.
    2. Находим там строку:
    } elseif ($type == 'standard') {

    И вставляем текст:

    if ($content) {
    if ($name=='author') {
    $strHtml .= $tab.'<link rel="canonical" href="'.str_replace('"',"'",$content).'" />'.$lnEnd;
    continue;
    }

    Так же надо закрывающую скобку поставить после: $strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$content).'"'.$tagE nd.$lnEnd;
    }

    В итоге должно получиться:
    // Generate META tags (needs to happen as early as possible in the head)
    foreach ($document->_metaTags as $type => $tag)
    {
    foreach ($tag as $name => $content)
    {
    if ($type == 'http-equiv') {
    $strHtml .= $tab.'<meta http-equiv="'.$name.'" content="'.$content.'"'.$tagEnd.$lnEnd;
    } elseif ($type == 'standard') {
    if ($content) {
    if ($name=='author') {
    $strHtml .= $tab.'<link rel="canonical" href="'.str_replace('"',"'",$content).'" />'.$lnEnd;
    continue;
    }

    $strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$content).'"'.$tagE nd.$lnEnd;
    }
    }
    }
    }

    Теперь для того, что бы ссылка у нас не дублировалась в мета теге «Autor», необходимо отключить его вывод в настройках Jooml’и:

    Нажмите на изображение для увеличения.  Название:	отклчение тега.jpg  Просмотров:	14  Размер:	10.0 Кб  ID:	10460

    Вот и все. Теперь если у Вас в материале не заполнено поле «Автор», то ничего не будет выводиться вообще, даже rel="canonical", если вы заполните его ссылкой для rel="canonical". К примеру так:

    Нажмите на изображение для увеличения.  Название:	добавление ссы&#10.jpg  Просмотров:	18  Размер:	38.5 Кб  ID:	10461

    Ссылка полного вида на нужную страницу (в нашем случае): _http://allviet.ru/viet/muzei-vietnama/mavzolei-ho-shi-mina-v-hanoe-new.html
    То все будет норм выводится, кроме самого тега «Автор».
    Что в итоге имеем:
    1. Заходи на нужную нам страницу и видим:

    Нажмите на изображение для увеличения.  Название:	норм старинца.jpg  Просмотров:	16  Размер:	98.5 Кб  ID:	10462

    Что <base href> совпадает с <link rel="canonical">. В общем-то, что нам и надо.
    2. А вот на дубле, все по-другому (так же как нам и надо)):

    Нажмите на изображение для увеличения.  Название:	копия старинцы.jpg  Просмотров:	10  Размер:	100.3 Кб  ID:	10463

    <base href> отличается от <link rel="canonical">, и по идеи ПС должны ее принять за копию и в выдаче не использовать.

    В итоге я изменил таким образом все свои 14 страниц и жду как это отразится в Гугле, если все будет норм, то данный атрибут rel="canonical", добавлю на все свои страницы, -лишним не будет.

    Всем спасибо за внимание. Если кому поможет, буду рад.
    Последний раз редактировалось TimHam; 25.06.2013 в 15:51.
    • 1

    Спасибо сказали:

    Art MC(16.08.2014),
  2. Дипломник Аватар для TimHam
    • Регистрация: 14.12.2012
    • Сообщений: 233
    • Репутация: 56
    • Webmoney BL: ?
    Добрый день коллеги.

    Отписываюсь про результаты:
    Гугла из 650 страниц, из которых было порядка 630 дублей: все склеил и убрал из раздела - оптимизация HTML. Осталось порядка 50 страниц, видимо еще не дошел до них.

    Яндекс, тоже повелся на эту тему. Страницы он проиндексировал позже, но примерно тоже количество. Позже все они были удалены из индекса по признаку rel="canonical".

    В общем операция по склейке удалась. Ура товарищи.

    Теперь осталось на всех страницах сайта это реализовать.
    • 1

    Спасибо сказали:

    Art MC(16.08.2014),
  3. Студент
    • Регистрация: 15.08.2014
    • Сообщений: 49
    • Репутация: 7
    а я просто написал в libraries\joomla\document\html\renderer\head.php

    $link = $document->getBase();
    if(!empty($link)) {
    $strHtml .= $tab.'<link rel="canonical" href="'.$document->getBase().'" />'.$lnEnd;
    }

    и все. Правда на всех страницах тег canonical, буду ждать пока робот по сканирует посмотрим что будет
    • -1
  4. Дипломник Аватар для CB9TOIIIA
    • Регистрация: 10.11.2009
    • Сообщений: 143
    • Репутация: 57
    • Webmoney BL: ?
    Попробуйте для 1.5 JL No Doubles ссылка на 1.5
    • 0
  5. Студент
    • Регистрация: 15.08.2014
    • Сообщений: 49
    • Репутация: 7
    CB9TOIIIA, у меня дубли страничные, им только нельзя редирект прописать) 1,2,3...
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
rel="canonical" и Yandex
Общие вопросы поисковой оптимизации 10 18.06.2013 23:52
Книга "Добавить в корзину. Ключевые принципы повышения конверсии веб-сайтов".
Обучающие статьи 5 22.08.2012 16:04
Убрать ссылку "Добавить комментарий" на wordpress
WordPress 7 28.05.2012 14:33
Нид хэлп. Как установить свою кнопку "добавить в google+"?
Web программирование 10 06.03.2012 23:25
Атрибут rel="canonical" тега <link>
Вопросы от новичков 7 23.09.2011 10:39

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры