+7 8512 41-41-61

Избавляемся от дублей страниц в 1С-Битрикс

1С-Битрикс - очень универсальная CMS с огромнейшим функционалом. 90% проблем решается штатными средствами, но за эту универсальность приходится расплачиваться некоторыми "дырами".

Сегодня мы попробуем решить одну очень нашумевшую проблему  SEO.В Битриксе есть возможность задавать свой ЧПУ. Вроде бы здорово, но возникает проблема, когда по разным адресам появляется одна и та же страница. Например:

1) mysite.ru/catalog/phones/iphone-6/ 
2) mysite.ru/catalog/smartphones/iphone-6/ 

Происходит это по множеству причин. В частности из-за того, что товар может быть привязан к нескольким категориям или мы заходим в товар из родительских разделов. Ну и вместо названия раздела можно вписать все, что угодно, например:

mysite.ru/catalog/smartphones-blablabla/iphone-6/

И это так же будет работать. Откроется все та же страница карточки товара.
Побороть этот недуг можно разными способами.Самый простой - прописать каноническую ссылку.
Для этого заходим в шаблон элемента каталога catalog.element и прописываем в файле result_modifier.php следующий код

$arElement = CIblockElement::GetById($arResult["ID"])->GetNext();
$arResult['DETAIL_PAGE_URL'] = $arElement['DETAIL_PAGE_URL'];
$cp = $this->__component; 
if (is_object($cp))
    $cp->SetResultCacheKeys(array('DETAIL_PAGE_URL'));

Теперь адрес детальной страницы доступен в файле component_epilog.php. Далее просто добавляем строчку в component_epilog.php:

$APPLICATION->AddHeadString('<link href="//'.SITE_SERVER_NAME.$arResult['DETAIL_PAGE_URL'].'" rel="canonical" />',true);

Проблема дублей решена. Теперь рады все, как поисковики, так и клиенты ;)

30 Октября 2014
|
Гаврилов Евгений
|
Просмотров: 13994
Комментарии (2)
Любомир, 26.07.2017 02:28
Не знаю работают ли тут комментарии, но огромное вам спасибо, Евгений, за вашу статью! Помогло! Каноникал выводится! Благодарю вас!
Артем, 11.10.2017 11:04
от души! Спасибо за статью!