Canonical: це тег <link rel="canonical"> у коді сторінки, яким ви кажете Google, яка з кількох схожих адрес головна і має ранжуватись. Ставити його треба тоді, коли один і той самий контент відкривається за різними URL: фільтри й сортування в магазині, http і https, www і без, UTM-мітки, версії для друку. Помилки з canonical ззовні непомітні, сайт працює як працював, а трафік тим часом тихо розповзається по дублях або зникає разом із головною сторінкою, яку ви випадково «віддали» іншій. Нижче розбираємо, коли тег потрібен, як його перевірити і які вісім помилок ми найчастіше знаходимо на аудитах.

Google не любить дублі сторінок. Коли він знаходить п'ять адрес з однаковим текстом, йому треба вибрати одну для видачі, а решту вважати копіями. Вибирає він сам, за своїми ознаками, і не завжди так, як хотіли б ви. Тег canonical дає підказку: «з цих п'яти ось ця основна». Виглядає він так, у розділі <head>:
<link rel="canonical" href="https://site.ua/catalog/krisla/">
Важливо розуміти два моменти. Перший: це підказка, а не наказ. Google може її проігнорувати, якщо вважає, що ви помилилися, наприклад, вказали canonical на сторінку з іншим змістом. Другий: canonical не закриває сторінку від відвідувачів і не перенаправляє їх. Людина відкриє будь-яку з адрес і побачить контент, змінюється лише те, яка адреса потрапить у пошук і куди Google складе всі сигнали, зокрема посилання на дублі. Офіційний опис механізму є в документації Google про консолідацію дублікатів URL.
Три інструменти вирішують схожу задачу («сховати зайве»), але поводяться по-різному. Плутанина між ними коштує найдорожче.
| Інструмент | Що робить | Вага посилань | Коли доречний |
|---|---|---|---|
| rel="canonical" | Вказує основну версію | Переходить на канонічну | Фільтри, UTM, сортування |
| 301-редирект | Перенаправляє всіх | Переходить на нову адресу | Переїзд, злиття сторінок |
| noindex | Ховає з пошуку | Не передається | Кошик, кабінет, пошук по сайту |
rel="canonical" користувач бачить, усі адреси відкриваються.301 стара адреса одразу відкриває нову, для людей і роботів.noindex відкривається, але з видачі випадає.Просте правило: якщо сторінка потрібна людям, а Google ні, і в неї є «старша сестра» з тим самим змістом, це canonical. Якщо сторінка нікому не потрібна, це 301. Якщо сторінка потрібна людям, але аналога в неї немає і в пошуку їй нічого робити, це noindex.
/krisla/?color=black&sort=price показує ту саму категорію, що й /krisla/. Без canonical Google бачить сотні варіантів однієї сторінки. Виняток: фільтри, під які ви свідомо робите окремі посадкові сторінки з власним текстом і попитом («чорні офісні крісла»); їм потрібен canonical на самих себе./blog/?page=2 не є дублями першої, у них інший список. Canonical із другої сторінки на першу ховає від Google усі статті, які лежать глибше. Кожна сторінка пагінації має посилатись сама на себе.?utm_source=facebook, ?gclid=..., ?fbclid=...: адреса з міткою має canonical на чисту адресу. Це найчастіша причина, чому в індекс потрапляють десятки «рекламних» копій головної./article/print/ або m.site.ua посилаються на повну версію./office/kreslo-x/, і як /sale/kreslo-x/, оберіть основний шлях і поставте його в canonical на обох.
Те, що написано в коді, і те, що вибрав Google, це дві різні речі. У Search Console є інструмент «Перевірка URL»: вставте адресу в рядок угорі, і в блоці «Індексація» побачите два поля: «Канонічна URL-адреса, вказана користувачем» і «Канонічна за версією Google». Якщо вони збігаються, усе добре. Якщо ні, Google із чимось не погодився, і треба з'ясувати, з чим саме: найчастіше сторінки не ідентичні, або на «канонічну» веде редирект, або вона закрита від індексації.
Для масової перевірки підійде будь-який краулер на кшталт Screaming Frog: він показує canonical кожної сторінки і позначає ті, що посилаються не на себе. Швидка ручна перевірка: відкрити код сторінки (Ctrl+U) і пошукати rel="canonical". Якщо тегів два, це вже помилка. Ще одне місце, де може ховатися canonical, це HTTP-заголовок Link:, його видно в інструментах розробника на вкладці Network або через перевірку заголовків онлайн.
За нашим досвідом аудитів, canonical у тому чи іншому вигляді зламаний десь на кожному третьому сайті, який до нас приходить. Ось що зустрічається найчастіше.
href="/catalog/krisla/" замість повного https://site.ua/catalog/krisla/ формально працює, але при будь-якій помилці в базовому шляху перетворюється на щось на кшталт https://site.ua/catalog/catalog/krisla/. Тільки абсолютні URL.hreflang, а canonical у кожної свій.Окремо про приховану помилку: canonical, який змінюється залежно від параметра. Сторінка /krisla/?page=3 має canonical /krisla/?page=3, а /krisla/?page=3&sort=price вже /krisla/. Логіка «зрізати лише частину параметрів» має бути прописана явно, інакше програміст зробить, як простіше. Усі ці речі стандартно входять до детального SEO-аудиту, і саме там їх варто ловити, а не після просідання позицій.

| Платформа | Як ставиться | На що звернути увагу |
|---|---|---|
| WordPress | Yoast SEO або Rank Math | Дубль тега від теми, архіви |
| OpenCart | Є для товарів і категорій | Фільтри з route= і path= |
| Shopify | Автоматично | Не переписувати тег у темі |
| Magento | Опція в конфігурації | Layered Navigation окремо |
| Власна розробка | У шаблоні з чистого URL | Дозволені параметри в ТЗ |
/collections/x/products/y сам посилається на /products/y.page), покрити тестами.На будь-якій платформі після впровадження варто пройтися краулером і перевірити три групи: сторінки фільтрів, пагінацію й адреси з UTM. Саме там найчастіше щось не так. У Query ми зазвичай робимо це в рамках технічної оптимізації разом із редиректами, robots.txt і sitemap, бо ці речі працюють лише в комплексі.
?utm_source=test і перевірте, чи canonical лишився чистим.