С точки зрения поисковой оптимизации доступ к одной странице по разным ссылкам – это большая проблема. Поисковой робот не понимает, какую страницу надо показывать. В связи с этим адрес страницы должен быть фиксированным. Чтобы удалить дубли Битрикс, нужно выявить основные причины их появления.
Как устанавливать канонический URL?
Частая проблема, связанная с Bitrix – это появление множества дублей страниц. Особенно это касается товаров из разных категорий. Проблемы здесь как минимум две: дублирование контента, что вредно для SEO, и появление дублей метатегов. Поисковики могут и вовсе не показывать страницы-дубли.
Исправить проблему штатными средствами, к сожалению, не получится. Один из вариантов борьбы с дублями предлагает Google. Ваша задача – указать каноническую страницу из числа одинаковых. Так, один URL станет каноническим, а остальные получат статус его копий. Сканирование канонического URL выполняется гораздо чаще.
Указать Гуглу на нужные URL можно с помощью тега rel= »canonical». Сразу стоит отметить, что такой метод борьбы с дублями подходит далеко не всегда. Сам Google сообщает, что при индексировании обращает внимание не только на тег, но и на качество контента на странице, протокол и присутствие URL в Sitemap. Вот для каких случаев подходит использование тега:
- Упрощение получения статистики по отдельным темам или товарам.
- Управление скопированным контентом.
- Оптимизация затрат ресурсов на сканирование дублей страниц.
- Выбор URL для демонстрации в результатах поиска.
- Консолидация переходов на повторяющиеся или одинаковые страницы.
Здесь можно узнать, какую страницу Google считает канонической. Но помните, что указание тега не дает гарантии, что поисковик не выберет другую страницу.
rel canonical для разделов
Прописать в Битриксе метатег 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 можно передать любые данные. Например, это метатеги под социализацию или микроразметку.
rel canonical для статей
Для страниц со статьями можно указать каноническую страницу одним из любых способов, которые предлагает Google:
- Тег <link> с атрибутом rel=»canonical». Его нужно добавить в код всех повторяющихся страниц. Таким образом получится пометить неограниченное количество страниц. Из минусов – увеличение размера страницы.
- HTTP-заголовок rel=canonical. Включается в ответ страницы. Этот метод позволяет пометить неограниченное количество страниц и не увеличивает их размер.
- Файл Sitemap. Легко обновляется и настраивается. Но в отличие от rel=canonical, это менее значимый сигнал для робота Googlebot.
- Код статуса 301. Также используется, чтобы сообщить роботу об актуальной версии URL.
- Вариант страницы в формате AMP. Используются инструкции AMP.
Google не советует использовать инструмент удаления URL для указания актуальной версии страницы: так из выдачи исчезнут все варианты URL. Не стоит использовать разные методы указания актуальной версии страницы под разные URL. Не нужно трогать noindex, пытаясь предотвратить выбор канонической страницы.
Это лишь часть рекомендаций, которые дает Google.
Настройка товаров с каноническими ссылками с помощью rel canonical
Для начала нужно создать пользовательское свойство у информационного блока категорий «Канонический 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 на Битрикс?
Частая причина появления дублей страниц на Битрикс – появление в индексе поисковиков страниц с именем файла 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-параметров
Не стоит допускать «нелегальных» параметров в адресе страницы. Так вы избежите вреда от лишних get-параметров. Алгоритм защиты довольно прост:
- следите за тем, чтобы сайт не генерировал «неправильные» ссылки;
- своевременно добавляйте в индекс поисковых систем новые осмысленные страницы, чтобы их неправильные копии не были проиндексированы раньше;
- исключите проблемные страницы из индекса.
Отчет метрики по параметрам URL
Так или иначе, впадать в паранойю во время поиска «нелегальных» элементов не стоит. Если программист и оптимизатор будут аккуратно выполнять свою работу, лишние get-параметры не принесут особого вреда. И наоборот: если слишком тщательно пытаться “защититься” от них, сайт обрастет лишними ошибками.
Отличный детальный комментарий на тему дублей в Битрикс, который помог избавиться от них самостоятельно. Респект. :)