Як вказати канонічний URL за допомогою атрибута rel=”canonical” та іншими способами

Є кілька способів передати в Google Пошук канонічний URL для однакових або дуже схожих сторінок. Ці методи перераховані нижче відповідно до їх ефективності.

Зверніть увагу, що ці методи можна комбінувати, тим самим підвищуючи їх ефективність. Це означає, що при одночасному використанні двох і більше способів підвищується ймовірність появи зазначених вами канонічних URL-адрес у результатах пошуку.

Хоча ми і рекомендуємо дотримуватися зазначених методів, вони не є обов’язковими. Цілком ймовірно, що ваш сайт буде досить ефективним у Пошуку і без вказівки канонічних URL. Справа в тому, що якщо ви не вкажете канонічний URL, Google самостійно визначить, яка версія URL є найбільш підходящим варіантом для розміщення в результатах пошуку.

Як правило, вказувати канонічні URL-адреси не потрібно, але є ряд причин, за якими варто повідомити Google про те, яка сторінка з групи однакових або схожих сторінок є канонічною:

  • Щоб указати, який URL слід показувати в результатах пошуку. Припустимо, ви хочете, щоб відвідувачі переходили на сторінку з описом сукні зеленого кольору за адресою https://www.example.com/dresses/green/green-dress.html, а не https://example.com/dresses/cocktail?gclid=ABCD.
  • Щоб згрупувати сигнали для схожих або однакових сторінок. Так пошукові системи зможуть об’єднати всі сигнали, які у них є для окремих сторінок (наприклад, посилання на них), і пов’язати їх з одним URL. Це означає, що всі сигнали з інших сайтів за адресою https://example.com/dresses/cocktail?gclid=ABCD об’єднуються зі посиланнями на https://www.example.com/dresses/green/green-dress.html, якщо останній URL є канонічним.
  • Щоб спростити отримання статистики контенту. Якщо контент розміщений на декількох сторінках з різними URL-адресами, це ускладнює отримання узагальненої статистики по ньому.
  • Щоб оптимізувати сканування сайту. Можливо, вам потрібно забезпечити максимальну ефективність сканування вашого сайту роботом Googlebot. Набагато корисніше обробляти новий або оновлений контент, ніж витрачати час на копії одних і тих самих сторінок.

Нижче наведено загальні рекомендації щодо нормалізації URL.

  • Не використовуйте для нормалізації файл robots.txt.
  • Не використовуйте інструмент видалення URL для нормалізації. Він приховує всі варіанти URL з результатів пошуку.
  • Не вказуйте різні URL як канонічні для однієї сторінки, використовуючи різні способи нормалізації (наприклад, не треба вказувати у файлі Sitemap один URL, а за допомогою атрибута rel="canonical" – інший).
  • Не вказуйте фрагмент URL як канонічний, оскільки Google, як правило, не підтримує фрагменти URL.
  • Не рекомендується використовувати директиву noindex, щоб заборонити вибирати ту чи іншу сторінку як канонічну на одному сайті, оскільки це призведе до повного блокування сторінки в Пошуку. Анотації link з атрибутом rel="canonical" є кращим рішенням.
  • При використанні елементів hreflang намагайтеся як канонічну вказувати сторінку тією ж мовою, що й альтернативна, а якщо це неможливо, то найближчою до неї мовою.
  • Внутрішні посилання повинні вказувати на канонічні, а не на повторювані URL-адреси. Це допоможе нам зрозуміти, яку сторінку ви вважаєте пріоритетною.
  • Якщо ви використовуєте рендеринг на стороні клієнта за допомогою JavaScript, інформація про канонічний URL повинна бути максимально зрозумілою. Найкраще вказати такий URL у вихідному коді HTML і переконатися, що JavaScript не змінює елемент link з канонічним URL. Якщо ви не можете встановити канонічну URL-адресу у вихідному коді HTML, не додавайте її та використовуйте JavaScript. Це дозволить зробити інформацію про канонічний URL максимально зрозумілою.

Нижче наведена таблиця порівняння різних методів нормалізації з їх перевагами та недоліками з точки зору зручності налаштування та ефективності в різних сценаріях.

Спосіб і опис
Елемент rel="canonical" link

Додайте в код всіх копій сторінок елемент <link>, що вказує на канонічну сторінку.

Плюси

  • Цей спосіб дозволяє позначити будь-яку кількість сторінок.

Недоліки

  • Розмітка великих сайтів або ресурсів, на яких URL часто змінюються, вимагає багато зусиль.
  • Цей метод дозволяє працювати тільки з HTML-сторінками, але не з файлами, наприклад у форматі PDF. Для такого контенту можна використовувати атрибут rel="canonical" у HTTP-заголовку.
HTTP-заголовок rel="canonical"

Увімкніть в HTTP-заголовок сторінки атрибут rel="canonical"

Плюси

  • Не збільшує розмір сторінки.
  • Цей спосіб дозволяє позначити будь-яку кількість сторінок.

Недоліки

  • Розмітка великих сайтів або ресурсів, на яких URL часто змінюються, вимагає багато зусиль.
Файл Sitemap

Вкажіть канонічні сторінки у файлі Sitemap.

Плюси

  • Легко налаштувати та оновити, особливо на великих сайтах.

Недоліки

  • Роботам Googlebot все одно потрібно визначити копію кожної канонічної сторінки, яку ви вкажете у файлі Sitemap.
  • Для роботів Google цей сигнал є менш значущим, ніж атрибут rel="canonical"
ПереадресаціяЗа допомогою переадресації можна повідомити роботу Googlebot, що кінцевий URL є більш актуальним. До цього методу слід вдаватися тільки в тому випадку, якщо вирішено припинити показ копії сторінки.
Варіант сторінки у форматі AMPЯкщо один з варіантів сторінки опублікований у такому форматі, вкажіть канонічну сторінку та її AMP-версію відповідно до інструкцій для AMP.

Google підтримує анотації link, додані в явному вигляді з атрибутом rel canonical, як описано в документі RFC 6596. Анотації rel="canonical", що вказують на альтернативні версії сторінок, ігноруються. Анотації rel="canonical" з атрибутами hreflang, lang, media та type не використовуються для нормалізації. Якщо вам потрібно вказати альтернативні версії сторінки, використовуйте анотації link. Наприклад, для сторінок, що стосуються тих чи інших мов і країн, підійдуть анотації link і rel="alternate" з атрибутом hreflang.

Анотації link з атрибутом rel="canonical" можна додати двома способами:

Рекомендуємо дотримуватися одного з цих способів. Якщо можливо, використовуйте обидва для більшої надійності (наприклад, одну URL-адресу можна вказати в HTTP-заголовку, а іншу — в елементі link rel="canonical").

Елемент link з атрибутом rel="canonical" (також відомий як канонічний елемент) розміщується в розділі head HTML-сторінки й вказує, що контент із цієї сторінки також розміщений на іншій.

Припустимо, ви хочете зробити канонічною сторінку https://example.com/dresses/green-dresses, тоді як її контент доступний і за іншими URL-адресами. Виконайте наступні дії:

  1. Додайте в розділ <head> всіх копій сторінки елемент <link>, що містить атрибут rel="canonical" зі посиланням на канонічну сторінку. Приклад:
     
     
    <html>
    <head>
    <title>Explore the world of dresses</title>
    <link rel="canonical" href="https://example.com/dresses/green-dresses" />
    <!-- other elements -->
    </head>
    <!-- rest of the HTML -->
  2. Якщо у канонічної сторінки є варіант для мобільних пристроїв з іншим URL, додайте елемент link з атрибутом rel="alternate", що містить посилання на мобільну версію:
     
     
    <html>
    <head>
    <title>Explore the world of dresses</title>
    <link rel="alternate" media="only screen and (max-width: 640px)"  href="https://m.example.com/dresses/green-dresses">
    <link rel="canonical" href="https://example.com/dresses/green-dresses" />
    <!-- other elements -->
    </head>
    <!-- rest of the HTML -->
  3. Додайте будь-який елемент hreflang або інші відповідні елементи.

Елементи link з атрибутом rel="canonical" повинні містити абсолютні шляхи, а не відносні. Хоча відносні шляхи й підтримуються Google, ми не рекомендуємо їх використовувати, оскільки це може викликати проблеми в довгостроковій перспективі (наприклад, якщо ви навмисно дозволяєте сканувати свій тестовий сайт).

Рекомендовано: https://www.example.com/dresses/green/green-dress.html

Не рекомендується: /dresses/green/green-dress.html

Елемент link element з атрибутом rel="canonical" приймається тільки в тому випадку, якщо він розміщений у розділі <head> HTML-сторінки. У зв’язку з цим необхідно використовувати коректний код HTML хоча б у розділі <head>.

При додаванні елемента link з атрибутом rel="canonical" за допомогою JavaScript робіть це правильно.

Якщо у вас є доступ до налаштувань сервера, то для того, щоб вказати канонічний URL, замість елемента HTML можна використовувати HTTP-заголовок з атрибутом link та атрибутом target rel="canonical" згідно з методом RFC5988. Цей спосіб сумісний з усіма документами, які підтримує Google Пошук, у тому числі й у форматі, відмінному від HTML, наприклад з файлами PDF.

Цей спосіб підтримується тільки для вебпошуку.

Якщо ваш контент публікується в різних форматах, наприклад PDF або Microsoft Word, і у кожного свій URL, то з HTTP-заголовка з атрибутом rel="canonical" робот Googlebot зможе отримати канонічний URL файлів, які не належать до HTML. Наприклад, додавши цей HTTP-заголовок у версію у форматі .docx, можна позначити, що канонічною є версія документа у форматі PDF, а не .docx:

 
 
HTTP/1.1 200 OK
Content-Length: 19
...
Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical"
...

Як і в елементі link з елементом rel="canonical", в HTTP-заголовку з атрибутом rel="canonical" потрібно використовувати тільки абсолютні URL.

Вкажіть канонічний URL для кожної сторінки у файлі Sitemap. Всі сторінки в цьому файлі пропонуються як канонічні. Googlebot зможе визначити, які з них є копіями, за їх вмістом.

Вказати канонічні URL за допомогою файлу Sitemap — це простий спосіб позначити канонічні сторінки на великому сайті, а також повідомити Google, які сторінки є для вас основними.

Цей спосіб дозволяє виключити копії сторінок. Усі способи переадресації – переадресація з кодами відповіді 301 та 302, meta-refresh та з використанням JavaScript – однаково ефективні в Google Пошуку, однак їх виявлення пошуковими системами може зайняти різний час.

Найшвидшою є переадресація з кодом відповіді 3xx (також відома як серверна переадресація).

Припустимо, на вашу сторінку можна перейти за наступними URL-адресами:

  • https://example.com/home
  • https://home.example.com
  • https://www.example.com

Виберіть одну з цих адрес як канонічну і використовуйте переадресацію на стороні сервера, щоб перенаправити трафік з інших адрес на цю URL.

Крім зазначених вище методів, в Google також використовуються сигнали нормалізації, які залежать від налаштувань сайту – чи використовується на ньому протокол HTTPS замість HTTP і чи об’єднані URL в кластери hreflang.

При визначенні канонічних посилань Google віддає перевагу сторінкам HTTPS, якщо при цьому не виникає проблем, наприклад наступні:

  • Сторінка HTTPS використовує недійсний сертифікат SSL.
  • Сторінка HTTPS містить небезпечні залежності (крім зображень).
  • Сторінка HTTPS перенаправляє на сторінку HTTP.
  • Сторінка HTTPS містить елемент link з атрибутом rel="canonical", який вказує на сторінку HTTP.

Хоча для Google HTTPS-сторінки є пріоритетними за замовчуванням, ви можете чітко вказати, що саме HTTPS-версія повинна бути канонічною. Для цього виконайте одну з наступних дій:

  • Додайте переадресацію з HTTP-сторінки на HTTPS.
  • Використовуйте переадресацію зі сторінки HTTP на сторінку HTTPS за допомогою елемента link з атрибутом rel="canonical".
  • Використовуйте технологію HSTS.

Як домогтися того, щоб сторінка HTTP не була помилково призначена канонічною:

  • Уникайте використання недійсних сертифікатів TLS або SSL, а також переадресації зі сторінок HTTPS на HTTP, оскільки ці фактори значною мірою сприяють вибору сторінок HTTP. При цьому не важливо, чи застосовується протокол HSTS.
  • Не вказуйте HTTP-версії своїх сторінок у файлі Sitemap або анотаціях hreflang, якщо є їх HTTPS-версії.
  • Не використовуйте сертифікат SSL/TLS для некоректного хоста (наприклад, якщо example.com передає сертифікат для subdomain.example.com). Цей сертифікат повинен відповідати повному URL сайта або бути груповим, тобто придатним для використання на кількох субдоменах.

На багатомовних сайтах з метою нормалізації Google віддає перевагу URL, що входять у кластери hreflang. Наприклад, якщо сторінки https://example.com/de-de/cats та https://example.com/de-ch/cats за допомогою анотацій hreflang взаємно вказують одна на одну, але не на https://example.com/de-at/cats, то сторінки de-de та de-ch будуть призначені канонічними замість /de-at/, яка не входить у кластер hreflang.

Детальніше про усунення проблем з нормалізацією…