Налаштування канонічних URL 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування канонічних URL 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування канонічних URL для Bitrix CMS

Дублікований контент — одна з частих SEO-проблем у Bitrix. Один і той же товар доступний за кількома URL: через розділи каталогу, через пошук, з GET-параметрами фільтра, з параметрами сеансу. Без тегу <link rel="canonical"> пошукова система сама визначає, який URL вважати основним — не завжди правильно.

Де у Bitrix виникають дублі URL

  • Товар доступний з кількох розділів каталогу (інфоблок з множинною прив'язкою до розділів)
  • Сторінка з GET-параметрами: /catalog/?sort=price&order=asc та /catalog/
  • Сторінка розумного фільтра без SEF: /catalog/?arrFilter_P1=100&set_filter=Y
  • HTTP та HTTPS версії
  • З www та без

Canonical через компонент

У стандартних компонентах Bitrix (bitrix:catalog.element, bitrix:catalog.section) немає вбудованого виведення canonical-тегу. Його потрібно додавати у шаблон компонента.

У шаблоні template.php карточки товару:

// Отримати канонічну URL елемента
$canonicalUrl = $APPLICATION->GetCurDir() . CIBlockElement::GetDetailPageUrl(
    $arResult['IBLOCK']['DETAIL_PAGE_URL'],
    $arResult
);

// Вивести у HEAD через AddHeadString
$APPLICATION->AddHeadString(
    '<link rel="canonical" href="https://site.ru' . htmlspecialchars($canonicalUrl) . '" />',
    true
);

Canonical для сторінок з фільтром

Сторінки розумного фільтра з непустими параметрами повинні мати canonical на базову сторінку розділу або на SEF-URL фільтра (якщо використовується ЧПУ для фільтра).

У шаблоні компонента розумного фільтра або розділу:

$isFiltered = !empty($_REQUEST['set_filter']) || !empty($_REQUEST['arrFilter_P1']);
if ($isFiltered) {
    $canonicalUrl = $APPLICATION->GetCurPage(); // тільки шлях без GET-параметрів
    $APPLICATION->AddHeadString('<link rel="canonical" href="https://site.ru' . $canonicalUrl . '" />');
}

Canonical для пагінації

Сторінки /catalog/?PAGEN_1=2 — спірний момент. Варіанти:

  • Canonical на першу сторінку (агресивно, втрачається вага посилання)
  • Не ставити canonical, але використовувати rel="prev" / rel="next" (застарілий підхід, Google не враховує)
  • Унікальний canonical для кожної сторінки пагінації (рекомендується при унікальному контенті на кожній сторінці)

Глобальне налаштування canonical через init.php

Для централізованої установки canonical без змінення кожного шаблону:

// /local/php_interface/init.php
AddEventHandler('main', 'OnEndBufferContent', function(&$content) {
    global $APPLICATION;
    $canonical = 'https://site.ru' . $APPLICATION->GetCurPage();
    $tag = '<link rel="canonical" href="' . htmlspecialchars($canonical) . '" />';
    $content = str_replace('</head>', $tag . '</head>', $content);
});

Підхід грубий — підходить для простих сайтів. Для каталогів з фільтрами потрібна логіка виключень.

Терміни виконання

Налаштування canonical для карточок товарів та розділів каталогу — 2–4 години. Повна реалізація з обробкою сторінок фільтра, пагінації та користувацьких URL — 4–8 годин.