Навигация по сайту

Популярные статьи

Атрибут link rel = "canonical" як ще один ефективний спосіб боротьби з дублями і не тільки

  1. Теорія і довідка від пошукових систем
  2. Практичне застосування і експеримент

Опубліковано: 19 серпня 2013 / Оновлено: 2 березня 2019

Привіт друзі. Пора б мені вже довести до логічного завершення тему про управління індексацією сайту. Я вам нагадаю, які методи управління індексацією взагалі існують: файл robots.txt, мета-тег robots, заголовок X-Robots-Tag, ну і 301-редирект тут можна згадати, як метод боротьби з дублями, що так само є невід'ємною частиною якісної індексації. І про все це я вам уже розповідав, але є ще один дуже важливий і цікавий спосіб боротьби з дублями, в чем-то альтернатива редіректу, це атрибут rel = "canonical", який присвоюється тегу link і розташовується в частині <head> будь-який html -сторінки.

Виглядає це якось так: <link rel = "canonical" href = "https://alaev.info/blog" />

Що важливо - даний тег підтримується всіма пошуковими системами, в тому числі нашими улюбленими Яндекс і Google.

Отже, сьогодні я вам розповім, як і для чого потрібно використовувати тег rel canonical, в яких ситуаціях він дійсно ефективний, а заодно переконаємося в цій самій ефективності на реальному експерименті. приготуйтеся :)

Для початку нагадаю вам про тих постах, що я торкнувся на початку:

X-Robots-Tag HTTP header як спосіб управління індексацією вмісту сайту
Особливості індексації сайтів при використанні robots.txt і мета-тега robots
Теорія, практика і правила використання редиректів

Спершу варто пройтися по теорії, щоб зрозуміти для чого даний атрибут взагалі був створений, які цілі переслідувалися і дізнатися, що ж рекомендують пошуковики.

Теорія і довідка від пошукових систем

Наводжу посилання на офіційну позицію пошукових систем: Google про атрибут rel = "canonical" і Яндекс про атрибут rel = "canonical" тега <link> . Зрозуміло, і mail.ru тут як тут - про значення canonical в тезі - не могли ж вони відстати від Яндекса, але це і добре, все під копірку, нам же простіше.

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

Що таке канонічна сторінка? Це рекомендований екземпляр з набору сторінок з дуже схожим змістом.

Навіщо потрібно вказувати канонічну сторінку? Якщо пошукова система бачить, що сторінки дуже схожі або однакові, то згідно з алгоритмами в результатах пошуку з'явиться тільки одна краща сторінка, яка, на думку пошукової системи, найкраще відповідає на запит користувача.

А як ми знаємо, пошукач не завжди вгадує наші бажання, тому краще перестрахуватися і вказати потрібну сторінку самостійно. Зробити це можна додавши посилання rel = "canonical" в розділ <head> неканонічних версій всіх сторінок HTML.

Ще виявляється, можна вказувати канонічну посилання для НЕ HTML вмісту, а, наприклад, для pdf, doc або інших файлів за допомогою заголовків. Типу як X-Robots-Tag HTTP header, тільки тут буде Link HTTP header. Але це вже зовсім для гик-маніяків, так що розповідати про це не буду.

Чи повинна ця посилання бути абсолютною або відносною? Можна вказувати і так і так, але щоб уникнути помилок і наступних непорозумінь, варто використовувати абсолютні посилання.

Що буде, якщо атрибут rel = "canonical" вказує на неіснуючу сторінку? А якщо канонічними призначено кілька сторінок набору? У цьому випадку пошукова система просто проігнорує дані правила і буде надходити, як і раніше - обчислювати відповідний екземпляр з набору сторінок згідно алгоритмам.

Чи можна використовувати атрибут rel = "canonical" для вказівки канонічного URL на іншому домені? Можна, але не потрібно. Важливо розуміти, що атрибут canonical це всього лише підказка чи рекомендація, а не суворе правило на відміну від редиректу, який і варто використовувати в даному випадку.

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

  • Це рекомендація, а не правило, а тому може бути проігнорований в наступних випадках:
    • Документ з канонічного адресою не існує, віддає відповідь 404;
    • Канонічна сторінка закрита від індексації в robots.txt або мета-тегом;
    • В html-коді сторінки зазначено відразу кілька атрибутів rel canonical;
    • Адреса канонічного документа вказує на інший домен або піддомен;
    • Присутній ланцюжок призначень rel = "canonical", тобто для документа А канонічним вказано документ Б, а в цей час для документа Б вказано канонічним документ В;
  • Необхідно вказувати тільки для дублюючих або дуже схожих сторінок, а не для склеювання двох різних сторінок або передачі ваги;
  • Адреса канонічної сторінки може вказувати сам на себе;
  • Підтримується всіма пошуковими системами: в Яндексі з 23 травня 2011 року, в Google з 12 лютого 2009.

Практичне застосування і експеримент

Все, з теорією покінчено, тепер я вам розповім, навіщо і для чого я використовую тег rel = "canonical" на своїх сайтах. Головне і основне - це боротьба і попередження появи дублів. В основному це дублі, пов'язані з параметрами або мітками в url. Не завжди доречно боротися з цими проблемами за допомогою 301-редиректів . Мітки іноді дуже важливі, наприклад, коли ведеться кампанія в контексті і в мітках передаються важливі статистичні відомості, та й багато ще чого можна відстежувати мітками. Закривати такі адреси в robots.txt мені не до душі, використовувати мета Роботс не вийде, а редирект знищить всі дані.

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

Це все зрозуміло. Але ось тільки про найголовніше для нас seo'шніков ніде не сказано - а як справи йдуть з передачею посилального ваги? Що якщо на неканонічний адреса стоять посилання, що ж буде з канонічної сторінкою, чи отримає вона від цього бонуси? А якщо спершу з'явилася посилання, а rel = "canonical" було вказано пізніше? А що буде, якщо все навпаки?

Питань багато, а офіційних коментарів немає. На питання хто винен і що робити, відповідь одна - треба ставити експеримент! Хотів я такий експеримент поставити, але виявилося, що його вже не так давно провів Ігор, автор блогу bakalov.info , За що йому величезне спасибі.

Ось цитата з його блогу про те, яка мета, які варіанти розвитку подій і очікуваний результат:

Мета експерименту: з'ясувати, чи буде переданий «вага посилання» зі сторінки А на сторінку С, в тому випадку, якщо сторінка А посилається на сторінку Б, а на сторінці Б варто rel = "canonical", який вказує, що канонічної сторінкою є сторінка С.

Якщо зі сторінки А на сторінку З «вага посилання» передається, то необхідно з'ясувати чи має значення «першочерговість».

Варіант №1. Сторінка А посилається на сторінку Б і ця посилання проіндексована пошуковими системами. Через деякий час на сторінці Б встановлюється rel = "canonical", який вказує, що канонічною є сторінка С, що в підсумку призводить до виключення сторінки Б з індексу.

Варіант №2. На сторінці Б встановлюється rel = "canonical", який вказує, що канонічною є сторінка С, що призводить до виключення сторінки Б з індексу. Через деякий час після цього зі сторінки А на сторінку Б встановлюється посилання.

Необхідно з'ясувати в якому з двох варіантів буде переданий «вага посилання» зі сторінки А на сторінку С. Під «вагою посилання» я розумію так званий «анкорний вага», тобто якщо сторінка акцептор шукається по тексту стоїть на неї посилання, то вважаємо, що «вага посилання» передається, якщо не шукається, то не передається.

Повний опис та хід експерименту дивіться за посиланням .

Я ж повідомлю результати експерименту і висновки:

Для Яндекса не має значення, що з'явилося раніше - rel = "canonical", або зовнішнє посилання - в будь-якому випадку «вага посилання» буде переданий з неканонічного URL на канонічний.

Для Google насправді все аналогічно, хоча в пості Ігоря говориться інакше: якщо канонічний адреса була вказана і сторінки вже склеїлися, а потім з'явилася зовнішня посилання, то вага передається, а якщо зовнішнє посилання з'явилася раніше, ніж канонікал, то вага не перетікає.
Просто «перетікання» ваги в другому випадку зайняло трохи більше часу, адже згідно з коментарем на блозі сказано, що канонічна сторінка все ж шукається по анкорний тексту.

Коротше, все працює!

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

Удачі вам, друзі! Залишайте коментарі та задавайте питання.

З повагою, Олександр Алаев
Опубліковано: 19 серпня 2013

Навіщо потрібно вказувати канонічну сторінку?
Чи повинна ця посилання бути абсолютною або відносною?
Що буде, якщо атрибут rel = "canonical" вказує на неіснуючу сторінку?
А якщо канонічними призначено кілька сторінок набору?
Чи можна використовувати атрибут rel = "canonical" для вказівки канонічного URL на іншому домені?
Але ось тільки про найголовніше для нас seo'шніков ніде не сказано - а як справи йдуть з передачею посилального ваги?
Що якщо на неканонічний адреса стоять посилання, що ж буде з канонічної сторінкою, чи отримає вона від цього бонуси?
А якщо спершу з'явилася посилання, а rel = "canonical" було вказано пізніше?
А що буде, якщо все навпаки?