Форум русской поддержки Joomla!® CMS
06.12.2016, 04:54:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] Ошибка с индексацией товара тегом rel="canonical"

 (Прочитано 2615 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ravilka
Осваиваюсь на форуме
***

Репутация: +5/-1
Offline Offline

Сообщений: 33


« : 11.05.2012, 16:42:27 »

Создал сайт на V2, сайт уже индексируется, но yandexe мне запретил нужные старницы:

Цитировать
Информация: страницы намеренно запрещены к индексированию или не должны индексироваться.   
Документ не является каноническим (В коде документа в тэге link содержится параметр rel="canonical", указывающий на другой (канонический) документ. Вместо данного документа проиндексирован канонический.) - 48


URL

/catalog/aksessuary/описание_заказа

22.04.2012   22.04.2012   
/catalog/aksessuary/ajur1.html - нужная страница товара

23.04.2012   23.04.2012   
/catalog/aksessuary/SEF_по,заказ

22.04.2012   22.04.2012   
/catalog/aksessuary/SEF_по,название_категории

23.04.2012   23.04.2012   
/catalog/aksessuary/SEF_по,название_производителя

22.04.2012   22.04.2012   
/catalog/bruki/описание_заказа

22.04.2012   22.04.2012   
/catalog/bruki/bruki-1.html - нужная страница товара

23.04.2012   23.04.2012   
/catalog/bruki/SEF_по,артикул

22.04.2012   22.04.2012   
/catalog/bruki/SEF_по,заказ

22.04.2012   22.04.2012   
/catalog/bruki/SEF_по,название_категории

23.04.2012   23.04.2012   
/catalog/bruki/SEF_по,название_производителя

22.04.2012   22.04.2012   
/catalog/classics/производитель/-2012-04-18-06-33-28_

23.04.2012   23.04.2012   
/catalog/classics/forreman-cl2.html - нужная страница товара

23.04.2012   23.04.2012   
/catalog/classics/marko-feretto-cl1.html - нужная страница товара

и тд

На каждой странице есть тэг rel="canonical" - который ненужные страницы исключает из поисковика, так вот он есть и в нужных страницах.
Если кто знает, помогите убрать с нужных страниц!

Все разобрался, проиндексировались неправильные ссылки. Добавил в путь id товара, посмотрим что будет.

Кстати нашел плагин для Virtuьфке 1.1.9 http://extensions.joomla.org/extensions/extension-specific/virtuemart-extensions/virtuemart-administration/16280, но он вставляет только в страницу товара, а в категории нет.
« Последнее редактирование: 11.08.2012, 23:48:02 от ELLE » Записан
nadim
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« Ответ #1 : 21.11.2012, 20:26:59 »

И как решился вопрос, что-то тут решения нет ?
У меня такая ситуация в каждой карточке товара присутствует rel="canonical" на эту же страницу - поэтому Яндекс неиндексирует - как избавиться от этого? Версия VirtueMart 2.0.10 (обновил до 2.0.14 тоже самое).
Записан
jouser
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 126



« Ответ #2 : 22.11.2012, 13:18:12 »

Сам ищу ответ, пока никак. Там вся фишка в том что в каноникал на страницах товара ссылка на эту же страницу. Получается бесконечный цикл. И вобще каноникал в VirtueMart это просто дебилизм. Есть категория, которая разбита на страницы по 10 товаров на каждой. Но если открыть вторую или третью страницу этой категории то каноникал будет указывать на первую, а ведь это абсолютно разные страницы! Кароч надо вырубать эту шнягу вобще, а все что нужно прописывать ручками.
« Последнее редактирование: 22.11.2012, 14:02:04 от jouser » Записан
jouser
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 126



« Ответ #3 : 22.11.2012, 14:00:07 »

В общем кому надо отключить каноникал
на странице товара:
в файле \components\com_virtuemart\views\productdetails\view.html.php комментируем строки (где-то 202-ая)
if ($format == 'html') {
       // Set Canonic link
       $document->addHeadLink(JRoute::_($product->canonical, true, -1), 'canonical', 'rel', '');
   }
на странице категории:
\components\com_virtuemart\views\category\view.html.php (129-я строка) то же самое:
if ($format == 'html') {
         $document->addHeadLink( JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$categoryId), 'canonical', 'rel', '' );
      }
Записан
zoolman
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #4 : 13.04.2013, 02:43:18 »

В общем кому надо отключить каноникал
на странице товара:
в файле \components\com_virtuemart\views\productdetails\view.html.php комментируем строки (где-то 202-ая)
if ($format == 'html') {
       // Set Canonic link
       $document->addHeadLink(JRoute::_($product->canonical, true, -1), 'canonical', 'rel', '');
   }
на странице категории:
\components\com_virtuemart\views\category\view.html.php (129-я строка) то же самое:
if ($format == 'html') {
         $document->addHeadLink( JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$categoryId), 'canonical', 'rel', '' );
      }
jouser, Искал решение этой проблемы около месяца, .... мучительно. 
Зарегистрировался только для того, чтобы поблагодарить Вас, очень помогла Ваша рекомендация. Удалил эти строки и теперь каноникал "отстал" ... Спасибо Вам большое.
Записан
ChaosHead
Профи
********

Репутация: +381/-10
Offline Offline

Пол: Мужской
Сообщений: 4391



« Ответ #5 : 11.09.2013, 14:23:13 »

Улыбнуло) Почитайте что такое тег canonica. Все, с чем вы боритесь сделано правильно.
Записан
jouser
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Сообщений: 126



« Ответ #6 : 14.11.2013, 12:01:44 »

Улыбнуло) Почитайте что такое тег canonica. Все, с чем вы боритесь сделано правильно.
на странице товара - да, правильно, а на странице категрии нет - т.к. тег запрещает к индексации страницы пагинации, то есть из всех страниц категории индексироваться будет только первая. Чем это правильно?
Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #7 : 03.02.2015, 01:01:37 »

Покурив мануалы про "canonical", прихожу к выводу, что данное решение не совсем верно. За основу взято: https://support.google.com/webmasters/answer/139066?rd=1

Имеем: Joomla 3.3.6 + Virt 3.0.2

При добавлении одного товара в родительскую и дочернюю категории получаем:

Товар в дочерней категории:

Код:
<base href="http://www.mysite.ru/shop/girl/windbreaker/vetrovochnaya-kurtka-neisse-1-detail.html" />
<meta name="title" content="Ветровочная куртка" />
<title>Ветровки : Ветровочная куртка </title>
<link href="http://www.mysite.ru/shop/girl/windbreaker/vetrovochnaya-kurtka-neisse-1-detail.html?limit=int" rel="canonical" />
<link href="/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" rel="canonical" />

В родительской категори этот же товар:

Код:
<base href="http://www.mysite.ru/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" />
<meta name="title" content="Ветровочная куртка" />
<title>Ветровки : Ветровочная куртка</title>
<link href="http://www.mysite.ru/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html?limit=int" rel="canonical" />
<link href="/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" rel="canonical" />

Насколько я понял, ?limit=int" rel="canonical", рождается в Joomla. И он нам нафиг не нужен.

Убираем его в файле плагина (sef.php):
Код:
//$doc->addHeadLink(htmlspecialchars($link), 'canonical');

Теперь получаем нормальный rel="canonical", указывающий на основную страницу:

Код:
<link href="/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" rel="canonical" />

Вот код одного товара в двух категориях:

Код:

<base href="http://www.mysite.ru/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" />
<meta name="title" content="Ветровочная куртка" />
<title>Ветровки : Ветровочная куртка</title>
<link href="/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" rel="canonical" />

Код:

<base href="http://www.mysite.ru/shop/girl/windbreaker/vetrovochnaya-kurtka-neisse-1-detail.html" />
<meta name="title" content="Ветровочная куртка" />
<title>Ветровки : Ветровочная куртка</title>
<link href="/shop/girl/vetrovochnaya-kurtka-neisse-1-detail.html" rel="canonical" />


Но по совету Google важно использовать абсолютные, а не относительные пути.

Формирование кода происходит в указанном файле: \components\com_virtuemart\views\productdetails\view.html.php

Если кто то поможет сделать абсолютный путь - буду крайне признателен.

Код:
$document->addHeadLink($product->canonical, 'canonical', 'rel', '');
« Последнее редактирование: 03.02.2015, 01:05:42 от SolopoV » Записан
SolopoV
Завсегдатай
*****

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 462


зеленею...


« Ответ #8 : 25.02.2015, 01:20:03 »

Не знаю... Зря, теме поставлена админом метка "Решена".

Для карточки товара:

Код:
// Set Canonic link
$namedonen = 'http://ваш домен';
if($isCustomVariant !==false and !empty($isCustomVariant->usecanonical) and !empty($product->product_parent_id)){
$parent = $product_model ->getProduct($product->product_parent_id);
$document->addHeadLink($namedonen .  JRoute::_($parent->canonical), 'canonical', 'rel', '');
} else {
$document->addHeadLink($namedonen .  JRoute::_($product->canonical), 'canonical', 'rel', '');
}

Для категории:
Код:
//$link = 'index.php?option=com_virtuemart&view=category';
//if($categoryId!==-1){
// $link .= '&virtuemart_category_id='.$categoryId;
//}
//if($manId!==-1){
// $link .= '&virtuemart_manufacturer_id='.$manId;
//}
$namedonen = 'http://ваш домен';
//$domain  = $this->params->get('domain');

$link = 'index.php?option=com_virtuemart&view=category';
if(($categoryId!==-1)&&($categoryId!=0)){
$link .= '&virtuemart_category_id='.$categoryId;
}
if(($manId!==-1)&&($manId!=0)){
$link .= '&virtuemart_manufacturer_id='.$manId;
}


$document->addHeadLink($namedonen . JRoute::_($link, FALSE), 'canonical', 'rel', '' );


Может кто красивей вытащит название домена?
Записан
bgg87
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 141



« Ответ #9 : 06.04.2016, 15:18:19 »

Не знаю... Зря, теме поставлена админом метка "Решена".
---
Может кто красивей вытащит название домена?

+1

Тоже интересует данное решение!
А ещё было бы отлично если каноническая ссылка не ссылался на себя же.
Т.е. если зайти в любую категорию VirtueMart, например:
http://site.ru/cat
будет следующее:
Код:
<link href="/cat" rel="canonical" />
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet