Canonical URL — це HTML-тег rel="canonical", який вказує пошуковим системам, яку саме адресу з кількох схожих або ідентичних сторінок слід вважати основною для індексації. Тег розміщується в секції <head> сторінки-дубля і передає сигнал, куди має бути спрямована пошукова цінність — трафік, посилальна вага та позиції.
Як це працює?
Canonical URL — це сигнал для пошукової системи, а не директива, тому Google може проігнорувати вказану адресу, якщо інші фактори (внутрішні посилання, sitemap, редиректи) вказують на іншу сторінку як на основну.
Механізм роботи
Коли краулер сканує сторінку з тегом rel="canonical", він фіксує вказану адресу як кандидата на канонічну версію. Далі Google зіставляє цей сигнал з іншими: якщо сторінка-дубль отримує більше внутрішніх посилань або згадана в sitemap, пошукова система може обрати саме її як канонічну, ігноруючи тег.
Способи впровадження
Canonical можна вказати трьома способами: через HTML-тег у <head>, через HTTP-заголовок Link (для PDF та інших не-HTML файлів) або через запис у Sitemap.xml — останній є найслабшим сигналом із трьох.
Навіщо це потрібно?
Canonical URL консолідує посилальну вагу та сигнали релевантності з кількох дублів в одну сторінку, замість того щоб розпорошувати їх між ідентичними URL з різними параметрами (UTM-мітки, сортування, ID сесій).
Тег також запобігає внутрішній канібалізації, коли кілька версій однієї сторінки конкурують між собою у видачі, і скорочує краулінговий бюджет, витрачений на повторне сканування ідентичного контенту.
Приклад використання
<!-- На сторінці-дублі: example.com/shoes?color=red -->
<head>
<link rel="canonical" href="https://example.com/shoes" />
</head># Через HTTP-заголовок (наприклад, для PDF)
Link: <https://example.com/document.pdf>; rel="canonical"Самопосилальний canonical (self-referencing) на основній сторінці виглядає так:
<!-- На основній сторінці: example.com/shoes -->
<link rel="canonical" href="https://example.com/shoes" />Поширені помилки
Canonical веде на сторінку з 404 або редиректом
Тег повинен вказувати на робочу сторінку з кодом відповіді 200, інакше сигнал ігнорується Google.
Різні canonical на однакових сторінках
Якщо кілька дублів вказують один на одного замість спільної основної адреси, виникає циклічний конфлікт, і Google самостійно обирає канонічну версію.
Canonical на іншу мовну версію
При наявності hreflang канонічна адреса кожної мовної версії має вказувати сама на себе, а не на одну "головну" мову — інакше локалізовані сторінки випадають з індексу.
Невідповідність canonical і robots noindex
Якщо сторінка одночасно має noindex і canonical на інший URL, сигнали суперечать одне одному — Google рекомендує обирати щось одне залежно від мети.
Відносний шлях замість абсолютного URL
Тег rel="canonical" має містити повну адресу з протоколом (https://), а не відносний шлях — це знижує ризик некоректної інтерпретації при копіюванні коду.
Як перевірити?
У Google Search Console інструмент перевірки URL (URL Inspection) показує поле "User-declared canonical" (вказаний вами тег) та "Google-selected canonical" (яку адресу Google обрав фактично) — розбіжність між ними сигналізує про проблему, яку варто дослідити.
FAQ
Чи обов'язково використовувати canonical, якщо на сайті немає дублів?
Ні, але рекомендується розміщувати self-referencing canonical на кожній сторінці — це запобігає появі дублів через параметри URL, які додаються пізніше.
Чи можна вказати canonical на сторінку іншого домену?
Так, cross-domain canonical підтримується і використовується, наприклад, при синдикації контенту на кількох сайтах, щоб вся цінність передавалась оригінальному джерелу.
Чи впливає canonical на сторінку, яку користувач бачить у браузері?
Ні, canonical — це сигнал виключно для пошукових систем. Користувач і надалі відкриває саме той URL, за яким перейшов, зміст сторінки не змінюється.
Що станеться, якщо на сторінці кілька тегів canonical?
Google ігнорує всі canonical-теги на сторінці за наявності кількох суперечливих тегів і самостійно визначає канонічну версію на основі інших сигналів.
Пов'язані терміни
- Duplicate content (дублі контенту)Проблема, яку canonical вирішує на рівні консолідації сигналів для індексації.
- Robots.txtКерує скануванням дублів на рівні краулінгу, тоді як canonical працює вже на рівні індексації.
- HreflangТег для мультимовних сайтів, який має узгоджуватися з self-referencing canonical на кожній мовній версії.
- 301 redirectЖорсткіший спосіб консолідації дублів: на відміну від canonical, повністю перенаправляє користувача.
- Meta robots (noindex)Альтернативний спосіб виключити сторінку з індексу, який не варто плутати з canonical.
- Sitemap.xmlМає містити лише канонічні версії URL, щоб не давати Google суперечливих сигналів.
Матеріал підготовлено командою LuchanLabs