С точки зрения поисковой оптимизации доступ к одной странице по разным ссылкам – это большая проблема. Поисковой робот не понимает, какую страницу надо показывать. В связи с этим адрес страницы должен быть фиксированным. Чтобы удалить дубли Битрикс, нужно выявить основные причины их появления.
Частая проблема, связанная с Bitrix – это появление множества дублей страниц. Особенно это касается товаров из разных категорий. Проблемы здесь как минимум две: дублирование контента, что вредно для SEO, и появление дублей метатегов. Поисковики могут и вовсе не показывать страницы-дубли.
Исправить проблему штатными средствами, к сожалению, не получится. Один из вариантов борьбы с дублями предлагает Google. Ваша задача – указать каноническую страницу из числа одинаковых. Так, один URL станет каноническим, а остальные получат статус его копий. Сканирование канонического URL выполняется гораздо чаще.
Указать Гуглу на нужные URL можно с помощью тега rel= »canonical». Сразу стоит отметить, что такой метод борьбы с дублями подходит далеко не всегда. Сам Google сообщает, что при индексировании обращает внимание не только на тег, но и на качество контента на странице, протокол и присутствие URL в Sitemap. Вот для каких случаев подходит использование тега:
Здесь можно узнать, какую страницу Google считает канонической. Но помните, что указание тега не дает гарантии, что поисковик не выберет другую страницу.
Прописать в Битриксе метатег rel canonical для страниц разделов напрямую не получится. Сделать это можно только с помощью костылей. При использовании комплексного компонента необходимо дописать в section.php следующий кусок кода:
// section.php : if (empty($_REQUEST["PAGEN_2"]) && empty($_REQUEST["PAGEN1_2"])) {//только первые страницы кроме постранички $this->SetViewTarget('meta_add'); echo ' link rel="canonical" href="' . $ _SERVER["REQUEST_SCHEME"] . '://' . $ _SERVER["SERVER_NAME"] . '/catalog/' . $ arResult["VARIABLES"]["SECTION_CODE_PATH"] . '/" / '; $this->EndViewTarget(); } //добавить скобки у тега линк'
Второй вариант – добавить кусок кода в шаблоне catalog.sections.list:
// в template.php : $this->SetViewTarget('meta_add'); echo ' link rel="canonical" href="'.$_SERVER["REQUEST_SCHEME"].'://'.$_SERVER["HTTP_HOST"].$arResult["SECTION"]["SECTION_PAGE_URL"].'" / '; $this->EndViewTarget(); //добавить скобки у тега линк'
В основной шаблон сайта внутри head вставляется строчка:
$APPLICATION->ShowViewContent('meta_add');
Благодаря этому простому алгоритму из разных шаблонов различных компонентов в основной шаблон веб-ресурса внутрь head можно передать любые данные. Например, это метатеги под социализацию или микроразметку.
Для страниц со статьями можно указать каноническую страницу одним из любых способов, которые предлагает Google:
Google не советует использовать инструмент удаления URL для указания актуальной версии страницы: так из выдачи исчезнут все варианты URL. Не стоит использовать разные методы указания актуальной версии страницы под разные URL. Не нужно трогать noindex, пытаясь предотвратить выбор канонической страницы.
Это лишь часть рекомендаций, которые дает Google.
Для начала нужно создать пользовательское свойство у информационного блока категорий «Канонический URL» с id каноникал. Делается это по адресу:
Контент - инфоблоки - типы инфоблоков -каталог - каталог товаров.
Путь к каталогу товаров
Открываем шаблон карточки товара:
/bitrix/components/bitrix/catalog.element/templates/.default/template.php
В самой верхней части добавляем кусок кода:
SetPageProperty('canonical', $arResult["PROPERTIES"]["CANONICAL"]["VALUE"] ); ?>
Между тегами <head></head> в шаблоне header.php вставляем код:
GetProperty("canonical")!="" && $APPLICATION->GetProperty("canonical")!=$APPLICATION->sDirPath){ return '<link rel="canonical" href="'.$APPLICATION->GetProperty(" canonical").'"="">'; } else {return false;} } $APPLICATION->AddBufferContent('ShowCanonical'); ?>
Открываем карточку товара, у которой есть дубли, после чего ищем поле «Канонический URL». Тут вставляем путь до карточки товара, которую нужно обозначить в качестве канонической. Домен при этом не указывается:
/catalog/tablets/tabsmart-x28/
Отныне все страницы, отображающие указанный товары по другим URL, будут иметь тег <link rel=»canonical» href=» канонический URL элемента» />
Некоторые готовые решения на Битрикс уже имеют необходимые настройки для обозначений актуальных версий страниц. К примеру, вот как это реализовано в готовом решении «Аспро»:
Готовое решение.png
Можно активировать режим правки в публичной части сайта на любой карточке товара. В группе параметров «Настройки детального просмотра» нужно поставить галку возле «Установить канонический URL» и сохранить настройки.
Настройки детального просмотра в Битрикс
Все зависит от того, какой версией Битрикс вы пользуетесь, либо на каком решении реализован Ваш сайт или интернет-магазин. Лучше не пытаться решить проблему самостоятельно, а обратиться в техническую поддержку или квалифицированным специалистам.
Частая причина появления дублей страниц на Битрикс – появление в индексе поисковиков страниц с именем файла index.php в адресе и без него. Например, Битрикс демонстрирует основную страницу как по адресу http://1c-bitrix.ru , так и при указании имени файла http://www.1c-bitrix.ru/index.php. Проблемы тут нет до тех пор, пока ссылки с именем файла не будут сгенерированы кем-то по ошибке, а потом проиндексированы.
Стандартные элементы Битрикса редко генерируют ссылки на страницы с именем файла index.php. Но подавить появление таких страниц все-таки стоит заранее. Для этого в файл .htaccess (при использовании web-сервера Apache) добавляем три строки:
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_FILENAME} !/bitrix/(.*)$ RewriteRule (^|.*?/)index\.php$ http://%{HTTP_HOST}/$1 [R=301,QSA,L]
Таким образом index.php вырезается из строки адреса с простановкой 301 редиректа и сохранением get-параметров.
Не стоит допускать «нелегальных» параметров в адресе страницы. Так вы избежите вреда от лишних get-параметров. Алгоритм защиты довольно прост:
Отчет метрики по параметрам URL
Так или иначе, впадать в паранойю во время поиска «нелегальных» элементов не стоит. Если программист и оптимизатор будут аккуратно выполнять свою работу, лишние get-параметры не принесут особого вреда. И наоборот: если слишком тщательно пытаться “защититься” от них, сайт обрастет лишними ошибками.