
У сучасних вебпроєктах одна і та сама сторінка часто може бути доступна за кількома різними URL. Причини цього різні: параметри сортування, фільтрації, мовні версії сайту або технічні особливості генерації посилань. Для пошукових систем такі ситуації створюють проблему дубльованого контенту.
Для її розв’язання використовуються механізми canonical URL і альтернативних мовних посилань hreflang. Вони не блокують сторінки, а пояснюють пошуковим системам, яку версію слід вважати основною і як пов’язані між собою інші варіанти.
У каталогах товарів і інтернет-магазинах одна категорія часто має декілька варіантів відображення: сортування за ціною, популярністю, новизною або фільтрацію за параметрами. При цьому фактичний контент сторінки залишається тим самим.
Типовий приклад URL однієї категорії:
/catalog/shoes/?sort=price&order=asc
Та сама сторінка може бути доступна і так:
/catalog/shoes/?order=asc&sort=price
З технічної точки зору це різні URL. Якщо не вжити жодних заходів, пошукова система може розглядати їх як окремі сторінки з ідентичним контентом.
Canonical URL — це сигнал пошуковій системі про те, яка версія сторінки є основною. Він не забороняє індексацію альтернативних URL, але підказує, який з них слід використовувати для ранжування.
Canonical задається за допомогою HTML-тега в секції head сторінки.
<link rel="canonical" href="https://example.com/catalog/shoes/">
У цьому випадку всі параметризовані варіанти сторінки сигналізують пошуковій системі, що основною є версія без GET-параметрів.
У каталогах і магазинах canonical зазвичай вказує на базову версію категорії. Сторінки із сортуванням або фільтрами залишаються доступними для користувачів, але не створюють окремих сутностей в індексі.
Такий підхід дозволяє:
Canonical не варто використовувати як механізм блокування. Якщо сторінка має canonical на іншу URL, але при цьому суттєво відрізняється за контентом, це може бути проігноровано пошуковою системою.
Також не рекомендується вказувати canonical на URL, який:
На багатомовних сайтах одна і та сама сторінка може існувати кількома мовами. З точки зору структури URL і контенту це близькі сторінки, але вони орієнтовані на різні аудиторії.
Для коректного зв’язування таких сторінок використовується тег hreflang.
<link rel="alternate" hreflang="uk" href="https://example.com/ua/catalog/shoes/"> <link rel="alternate" hreflang="en" href="https://example.com/en/catalog/shoes/"> <link rel="alternate" hreflang="x-default" href="https://example.com/catalog/shoes/">
Кожна мовна версія сторінки повинна посилатися на всі інші мовні варіанти, включно із собою. Це створює замкнену систему взаємних посилань.
Canonical і hreflang не є взаємовиключними механізмами. Canonical використовується для боротьби з технічними дублями, тоді як hreflang — для зв’язування мовних версій.
На практиці canonical зазвичай вказується на URL поточної мовної версії, а hreflang описує відповідність між мовами.
Окрема проблема — дублювання сторінок через різний порядок однакових параметрів. Для користувача такі URL еквівалентні, але для пошукової системи вони можуть виглядати як різні сторінки.
Canonical у цьому випадку дозволяє задати єдину нормалізовану форму URL, незалежно від порядку параметрів.
Canonical URL є м’яким, але надзвичайно важливим сигналом для пошукових систем. Він не обмежує доступ до сторінок і не блокує їх сканування, але дозволяє зосередити сигнали ранжування на основних URL.
У поєднанні з meta robots, robots.txt і sitemap canonical формує логічну й контрольовану модель індексації сайту.