Тег canonical
Тег canonical — це елемент link з rel="canonical", який указує, який URL представляє вміст сторінки. Головне, що важливо знати про нього з першого рядка: указання канонічного URL — це підказка, а не правило. Google може обрати іншу сторінку. В уроці — синтаксис, два способи подання, правила з документації та пастки, зокрема пагінація й PDF.
Загальну картину дублів ми розібрали в уроці про дубльований контент. Тут — сам тег. Основа — сторінка Google про обʼєднання дубльованих URL.
Синтаксис
<!-- У head дубльованої сторінки /dresses/green-dresses?sort=price --> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- Те саме — на самій канонічній сторінці (самопосилальний canonical) --> <link rel="canonical" href="https://example.com/dresses/green-dresses" />
Google радить додавати такий самий самопосилальний елемент на саму канонічну сторінку. Якщо в неї є мобільна версія на окремому URL, до неї додають ще й rel="alternate" з умовою media.
Правила розміщення
- Лише в head. Елемент приймається, тільки якщо перебуває в розділі head HTML, тому щонайменше head має бути коректним HTML;
- абсолютні URL. Відносні шляхи підтримуються, але можуть спричинити проблеми, наприклад якщо тестовий сайт випадково відкрито для обходу. Хороший приклад — повна адреса з протоколом і доменом;
- один спосіб, а не два. Елемент у HTML і заголовок HTTP допустимі обидва, але використовувати їх одночасно більш схильне до помилок: в одному можна вказати один URL, а в іншому — інший. Оберіть один;
- JavaScript. Якщо елемент додається скриптом, його треба впроваджувати коректно; краще задати його у вихідному HTML і не змінювати скриптом. Докладніше — в уроці про JavaScript і SEO.
Заголовок HTTP: єдиний шлях для PDF
Якщо ви можете змінювати конфігурацію сервера, канонічний URL указують заголовком відповіді Link з rel="canonical". Це працює й для не-HTML-документів, наприклад PDF, а в HTML-елемента такої можливості немає. Типовий випадок — версія контенту в кількох форматах, у кожного свій URL: для файлу .docx можна віддати заголовок з адресою PDF-версії.
HTTP/1.1 200 OK Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical"
Як і для елемента, тут потрібні абсолютні URL. Google підтримує цей спосіб лише для результатів вебпошуку.
Canonical і редирект: не про «вагу»
Часто порівнюють так: canonical передає «близько 100%» посилальної ваги, а 301 — «90–99%». Таких цифр у документації немає, і порівнювати способи за ними не можна. Документація порівнює їх інакше: перенаправлення та rel="canonical" — обидва сильні сигнали, мапа сайту — слабкий. Різниця практична:
- перенаправлення — коли дублікат потрібно прибрати: використовуйте його, коли хочете позбутися наявних дублів. Користувач на дубль більше не потрапить. Для найшвидшого ефекту потрібні серверні перенаправлення;
- rel="canonical" — коли дубль має лишитися доступним: фільтри, сортування, варіанти;
- мапа сайту — усі вказані в ній сторінки пропонуються як канонічні, а дублікати Google визначає за схожістю. Зручно для великих сайтів, але сигнал слабший.
Постійні й тимчасові перенаправлення різняться, і це окрема тема в уроці про редиректи; цілі ланцюжків видно в перевірці редиректів.
Пастки
- Пагінація. Для послідовності сторінок Google каже прямо: не використовуйте першу сторінку як канонічну для всіх, а дайте кожній сторінці власний канонічний URL. Кожна сторінка з
?page=n— окрема сторінка для Google, а не дубль першої; - hreflang, lang, media і type всередині rel="canonical" для канонізації не використовуються: альтернативні версії вказуються іншими анотаціями, наприклад rel="alternate" hreflang. Версії різними мовами вважаються дублями, лише якщо основний вміст однією мовою;
- noindex замість canonical. Google не радить використовувати noindex, щоб запобігти вибору канонічної сторінки в межах сайту: він повністю блокує сторінку в пошуку;
- Суперечності. Один URL у мапі сайту, інший у rel="canonical": для однієї сторінки не можна вказувати різні канонічні URL різними способами;
- Відносні шляхи і фрагменти URL (фрагмент як канонічний указувати не можна).
Чого в документації немає
Твердження, які джерелами не підтверджуються: передача «близько 100%» ваги, втрата «на ланцюжку A → B → C» і «суперечність» canonical на сторінку з noindex як окреме правило. Це не означає, що протилежне вірне. Це означає, що надійніше спиратися на те, що написано в документації: підказка, head, абсолютні URL, один спосіб, один URL на сторінку.
Як перевірити
- Відкрийте сторінку в аналізаторі сторінки й переконайтеся, що canonical один, лежить у head і веде на абсолютний URL.
- Пройдіть сайтом краулером: знайдіть сторінки без canonical, із відносними шляхами та з різними URL у заголовку й у HTML.
- Перевірте, що сторінки пагінації вказують кожна на себе.
- Через перевірку URL у Search Console порівняйте оголошений і вибраний Google канонічні URL; масово — через аудит URL.
- Якщо Google обрав не ту сторінку, дивіться на суперечливі сигнали: редиректи, мапу сайту, внутрішні посилання, протокол.
Чек-лист
- Canonical задано в head, а не в body.
- URL абсолютні, без фрагментів.
- Використовується один спосіб: елемент або заголовок.
- Канонічна сторінка посилається на себе.
- Сторінки пагінації не вказують на першу.
- Для PDF та інших файлів використовується заголовок HTTP.
- Внутрішні посилання та мапа сайту ведуть на канонічний URL.
Помилки
- Вважати canonical командою, а не підказкою.
- Указувати на першу сторінку з усіх сторінок пагінації.
- Ставити тег у body або ламати head невалідним HTML.
- Давати різні URL у заголовку й у HTML.
- Закривати дублі в robots.txt замість canonical: про це — в уроці про robots.txt і canonical.
Що далі
Далі — SEO в CMS: як налаштувати ці правила в системі керування сайтом. Про межу між забороною обходу та canonical — в уроці про robots.txt і canonical, про правила URL — в уроці про структуру URL.