Давай почнемо з простого факту, який дивує багатьох власників сайтів: для пошукової системи одна й та сама сторінка може існувати у кількох варіантах. Не тому, що ти щось зламав, а просто тому, що так працюють адреси в інтернеті.
Подивись, скільки різних URL можуть вести на одну сторінку послуги:
http://site.com/servicehttps://site.com/servicehttps://www.site.com/servicehttps://site.com/service/https://site.com/service?utm_source=facebookhttps://site.com/service?sort=price
Людині все це здається однією сторінкою. А пошуковий робот бачить шість різних адрес із однаковим змістом. І тепер йому треба вирішити, яку з них показувати в результатах, на яку «записувати» вагу посилань і які залишити поза увагою.
Ось для цього й існує канонічна адреса.
Що це таке простими словами
Канонічна адреса (canonical URL) це та версія сторінки, яку ти вважаєш основною. Вказується вона в коді тегом у <head>:
<link rel="canonical" href="https://site.com/service">
Цим тегом ти ніби кажеш: «Якщо бачиш кілька однакових або дуже схожих сторінок, головною вважай оцю».
Важливий нюанс, про який часто забувають: це підказка, а не команда. Пошукова система може прислухатися до неї, а може вибрати іншу адресу, якщо вважатиме, що так краще. Тому й помилки в канонічних адресах бувають такими підступними: сайт думає, що все налаштовано, а Google робить по-своєму.
Звідки беруться дублікати
Більшість власників упевнені, що в них дублів немає. Але на практиці вони виникають майже на кожному сайті, і причини зазвичай банальні.
Різні варіанти адреси. З www і без, з http і з https, зі слешем у кінці й без. Якщо сервер налаштований недбало, всі ці версії відкриваються однаково.
Параметри в адресі. UTM-мітки з рекламних кампаній, ідентифікатори сесій, параметри сортування й фільтрації в інтернет-магазинах. Одна категорія товарів може розмножитися на сотні адрес.
Пагінація й архіви. Сторінки списків, теги, категорії, архіви за датами. У блогах на WordPress така картина типова.
Версії для друку й мобільні копії. Якщо їх ще збереглося.
Однакові товари в різних категоріях. Картка однієї моделі, доступна за двома-трьома шляхами каталогу.
Чужі копії. Коли хтось копіює твою статтю й публікує на іншому сайті. Тут канонічна адреса допомагає, але не завжди: якщо копіювач її видаляє, захисту немає.
Чим дублі шкодять
Спершу про те, чого не варто боятися. Дублі контенту всередині сайту самі по собі не призводять до «покарання» чи фільтра. Це поширений міф. Проблеми в іншому.
По-перше, розпорошується вага. Якщо на ту саму сторінку ведуть посилання в різних варіантах, сигнал ділиться між ними, а не накопичується в одному місці.
По-друге, пошук може вибрати не ту версію. У видачі опиняється адреса з параметрами, з www, без слеша, і в Google Search Console картина виглядає каламутно.
По-третє, марнується краулінговий бюджет. На великих сайтах робот витрачає час на зайві копії замість важливих сторінок.
По-четверте, аналітика плутається: однакові сторінки з різними адресами показують розрізнену статистику.
Як це зазвичай налаштовують
Найпоширеніша й найкорисніша практика це самопосилальний canonical. Кожна сторінка вказує на саму себе: так пошук одразу розуміє, яка адреса основна, навіть якщо до неї хтось дописав параметри.
Для сторінок із параметрами тег вказує на чисту адресу без них. Для варіантів із різними схемами http/https і www краще ще й налаштувати перенаправлення 301, тоді дублів не буде взагалі.
Докладніше про те, як канонічні адреси працюють і де зазвичай помиляються, можна прочитати у матеріалі на цю тему.
Типові помилки
Канонічна адреса веде на сторінку, що перенаправляє. Тег вказує на адресу, яка потім 301-м відправляє кудись ще. Пошук отримує суперечливі сигнали.
Ланцюжки. Сторінка А вказує на Б, а Б на В. Так не можна: вказувати треба одразу на кінцеву адресу.
Canonical на нерелевантну сторінку. Якщо тег вказує на сторінку з іншим змістом, наприклад всі товари на головну, пошук просто ігнорує його.
Конфлікт з noindex. Сторінка має noindex, але одночасно вказує canonical на іншу. Сигнали суперечать один одному, і результат буває непередбачуваним.
Відносні адреси. У href стоїть /service замість повного https://site.com/service. Технічно іноді працює, але легко зламати.
Кілька тегів на сторінці. Тема, плагін і ще один плагін додають по своєму canonical. Пошук бачить три різні й обирає за власною логікою.
Тег у <body>. Він має бути в <head>, інакше його не враховують.
Canonical на сторінці з параметром, яку треба індексувати. Наприклад, на фільтрі, що має реальний пошуковий попит і мав би існувати як окрема сторінка.
Як перевірити свій сайт
Відкрий код сторінки (Ctrl+U) і знайди rel="canonical". Подивись, чи один тег, чи вказує на повну адресу, чи це та сторінка, яку ти й хочеш бачити в пошуку.
У Google Search Console використай «Перевірку URL»: там видно, яку адресу Google вважає канонічною («Канонічний URL, обраний Google») і чи збігається вона з твоєю. Розбіжності там і є найкращим індикатором, що щось налаштовано неправильно.
Для великих сайтів корисні краулери на кшталт Screaming Frog: вони за один прогін покажуть сторінки без canonical, з кількома, з ланцюжками й ті, де тег веде на непридатну адресу.
Починати найлегше зі сторінок, які приносять трафік або мають йому приносити. Саме там плутанина з адресами коштує найдорожче, а виправити її зазвичай можна за кілька годин.