Обсудим ваш проект?
Комплексный интернет-маркетинг
15 лет опыта | 90+ специалистов
Отправить заявку

Дубли Битрикс: удаление с помощью rel canonical и другие способы

Обновлено: 28 ноября 2019
Время на прочтение:
Просмотров: 18377
Дарья
редактор
Станислав Мозгель
руководитель отдела веб-разработки
Редполитика
Мы прилагаем все усилия, чтобы наши обзоры были максимально честными, точными и объективными. Если вы посещаете ссылки в нашем контенте, мы можем получить комиссионное вознаграждение от ваших покупок, однако это не влияет на нашу редакционную политику и мы не станем рекомендовать продукты или сервисы, в которых не уверены.

С точки зрения поисковой оптимизации доступ к одной странице по разным ссылкам – это большая проблема. Поисковой робот не понимает, какую страницу надо показывать. В связи с этим адрес страницы должен быть фиксированным. Чтобы удалить дубли Битрикс, нужно выявить основные причины их появления. 

Как устанавливать канонический URL?

Частая проблема, связанная с Bitrix – это появление множества дублей страниц. Особенно это касается товаров из разных категорий. Проблемы здесь как минимум две: дублирование контента, что вредно для SEO, и появление дублей метатегов. Поисковики могут и вовсе не показывать страницы-дубли.

Исправить проблему штатными средствами, к сожалению, не получится. Один из вариантов борьбы с дублями предлагает Google. Ваша задача – указать каноническую страницу из числа одинаковых. Так, один URL станет каноническим, а остальные получат статус его копий. Сканирование канонического URL выполняется гораздо чаще.

Указать Гуглу на нужные URL можно с помощью тега rel= »canonical». Сразу стоит отметить, что такой метод борьбы с дублями подходит далеко не всегда. Сам Google сообщает, что при индексировании обращает внимание не только на тег, но и на качество контента на странице, протокол и присутствие URL в Sitemap. Вот для каких случаев подходит использование тега:

Нет времени разбираться?
Техподдержка сайта на «1С-Битрикс» под ключ
Специализируемся на «1С-Битрикс» более 10 лет и знаем все подводные камни и специфику. Работаем с сайтами любой технической сложности и бизнес-логики. При необходимости подключаем UX-специалиста и дизайнера. В течение 2 часов реагируем на обращения в тикетной системе.
Ваш сайт:
  • Упрощение получения статистики по отдельным темам или товарам.
  • Управление скопированным контентом.
  • Оптимизация затрат ресурсов на сканирование дублей страниц.
  • Выбор 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, пытаясь предотвратить выбор канонической страницы.

Привлекли 35.000.000 людей на 185 сайтов
Мы точно знаем, как увеличить онлайн–продажи
Применяем лучшие практики digital–продвижения как из вашей тематики, так и из смежных областей бизнеса. Именно это сделает вас на голову выше конкурентов и принесёт лиды и продажи.
Ваш сайт:

Это лишь часть рекомендаций, которые дает 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
Готовое решение.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
Отчет метрики по параметрам URL

Так или иначе, впадать в паранойю во время поиска «нелегальных» элементов не стоит. Если программист и оптимизатор будут аккуратно выполнять свою работу, лишние get-параметры не принесут особого вреда. И наоборот: если слишком тщательно пытаться “защититься” от них, сайт обрастет лишними ошибками.

Методология выбора
Кто мы
Директ Лайн
Крупнейшее региональное интернет-агентство России. ТОП-10 в рейтинге Рунета.
1200 +
проектов
90
экспертов
16лет
на рынке
Наша методология
Статьи в блоге Директ Лайн - это всегда оригинальный, проверенный и объективный контент. Все обзоры и рейтинги честно отражают наше мнение и опыт взаимодействия с каждым инструментом.
Содержание
Комментарии (1)
TanyaMart

Отличный детальный комментарий на тему дублей в Битрикс, который помог избавиться от них самостоятельно. Респект. :)

Ответить

Комплекс услуг для вашего бизнеса

Проанализируем ваши бизнес-цели, ваш бизнес, продукт и текущие продажи, и подберем варианты онлайн-продвижения, которые дадут лучший эффект. Опираемся на наш опыт в самых разных тематиках, т.к. наилучшее решение часто лежит в иной тематики, но которая решает схожую бизнес-задачу. Наша стратегия - готовый пошаговый план по внедрению, с деталями и референсами.

Кейсы и статьи

Бесплатный аудит SEO
и рекламного трафика
Покажем точки роста вашего проекта,
если по нему уже ведутся работы