SEO-кухня SEO-кухня 06.03.2023

Canonical: что это за атрибут и как прописать канонический адрес страницы

Что такое канонический адрес страницы, зачем он нужен и почему важен для SEO. Когда используется каноникал и как правильно его настроить. Распространенные ошибки при прописывании canonical.

Canonical: что это за атрибут и как прописать канонический адрес страницы

Если на сайте есть несколько страниц с одинаковым контентом, среди них нужно определить главную страницу — каноническую. Иначе ПС могут вывести в индекс не то, что вы ожидали.

Рассказываем, как работают канонические страницы, в каких случаях их нужно указывать и как это сделать.

Что такое каноническая страница, ссылка и rel canonical

Каноническая страница —
основная, наиболее предпочитаемая страница.
Каноническая ссылка (URL) —
ссылка, которая ведёт на эту страницу.
rel=”canonical” —
атрибут, который указывается в контейнере тега <link>, чтобы указать поисковому роботу: конкретная страница каноническая, то есть главная.

Объясним на примере, как работают канонические страницы. Представим, что страница с одним и тем же контентом доступна по нескольким адресам. Например, товар размещается одновременно в разных категориях. В этом случае образуются несколько страниц с разными URL, но с одинаковым контентом:

Страницы с разными URL, но одинаковым контентом

Поисковые системы могут посчитать такие страницы дублями. Это проблема для SEO.

Почему канониклы важны для SEO

Если один и тот же контент доступен на разных страницах сайта, в дальнейшем есть два пути развития событий. Оба неблагоприятны для SEO сайта.

  1. ПС определит среди дублей основную страницу, а остальные «склеит» с ней как дубли и удалит из индекса.

При этом не факт, что страница будет выбрана верно, и из индекса может выпасть нужная страница.

Google говорит, что у ПС есть собственные «канонические сигналы», по которым она пытается определить, какой из URL выбрать каноническим. Подробнее — в Справке.

  1. Если ПС не определит каноническую страницу автоматически, то может оставить в индексе версии страницы вместе с дублями.

Тогда все они могут конкурировать между собой, «моргать» в выдаче и т. д. Это может влиять на положение сайта в поиске.

Кроме того, индексирующий робот может медленнее доходить до новых страниц из‑за того, что будет обходить дубли.

Подробнее про дубли в Яндекс Справке

Поэтому не стоит надеяться на то, что ПС сами определят каноническую страницу. Лучше напрямую указать роботам, какую из версий страницы мы считаем основной и наиболее предпочитаемой для показа в результатах поиска. Для этого нужно указать ссылку на основную (каноническую) страницу в коде всех дублей:
У страниц с одинаковым контентом, но разными URL необходимо назначить canonical

Расскажем, как это делать и в каких ситуациях.

Как настроить rel canonical

Мы будем рассказывать про разные способы указать каноническую страницу, но суть у них одна: мы размещаем ссылку на нужную страницу на её дублях, чтобы поисковики понимали, какую индексировать в первую очередь.

Через атрибут в теге <link>

Нужно разместить следующий код в теге <link> страницы‑дубля, который содержится в блоке <head>:

Код будет выглядеть так:

<link rel="canonical" href="https://site.ru/page/">

где https://site.ru/page/ — ссылка на нужную страницу.

Способ работает только с HTML‑страницами, но не с файлами, например, в формате PDF. Для таких файлов лучше использовать следующий вариант.

Через атрибут в заголовке HTTP

У не‑HTML‑документов нет раздела <head>, поэтому для них используют этот способ.

❗️ Чтобы воспользоваться этой инструкцией, нужно иметь доступ к настройкам сервера.

Нужно разместить запись следующего типа в HTTP‑заголовке файла, который является дублем канонического:

HTTP/1.1 200 OK
Content‑Type: application/pdf
Link: <http://site.ru/page/file>; rel="canonical"

где 200 OK — код ответа сервера, Content‑Type — тип файла, Link: <https://site.ru/page/file.pdf — ссылка на канонический файл.

В файле Sitemap

Поисковые роботы предполагают, что все ссылки, размещённые в карте сайта, канонические. Google даже требует включать в Sitemap только канонические ссылки.

Узнайте, как создать Sitemap и не только, на нашем бесплатном курсе по SEO

С помощью CMS

В зависимости от того, какую CMS вы используете на своём сайте, добавлять канониклы можно с помощью разных плагинов.

Так, в Wordpress это плагин Yoast SEO, в Joomla — Canonical Url, в 1С‑Bitrix — «Канонические ссылки».

❗️ Про перенаправление через 301‑редирект

Если вы больше не хотите показывать те или иные версии страницы в индексе, можно настроить перенаправление с них на нужные страницы. Тогда первая страница будет отправлять пользователя на вторую.

Отличие от установки канонической страницы в том, что в случае с 301‑м редиректом страница вообще не будет показываться пользователям и в выдаче; а в случае с rel canonical её можно будет увидеть, но при этом она не будет приоритетной для ПС.

Когда нужно настраивать канонический тег

При дублировании страниц

Если вы точно знаете, что на сайте есть дубли страниц, нужно указать, какая из одинаковых страниц главная.

Найти дублирующиеся страницы можно с помощью панелей Яндекс Вебмастер и Google Search Console.

В Вебмастере нужно смотреть раздел «Индексирование» — «Страницы в поиске»: у дублирующихся страниц будет статус «Дубль».

В GSC нужно смотреть пункт с исключёнными страницами в разделе «Покрытие».

В Топвизоре найти дубликаты, а также битые ссылки, редиректы, ошибки загрузки и в тегах можно найти с помощью инструмента «Анализ сайта».

Как удалить 12 тысяч дублей и попасть в ТОП Яндекса за три месяца

На страницах пагинации

Пагинация — это разделение контента на сайте на отдельные страницы. Когда пользователь открывает страницу, контент подгружается не весь сразу, а постранично. При этом образуется несколько страниц: первая, вторая, третья и т. д.

Страницы пагинации
Страницы пагинации

При разделении контента на несколько страниц может образоваться дубль основной страницы.

Представим, что вы хотите разделить товары в категории «Самокаты» на несколько страниц. В таком случае первая страница категории будет иметь адрес «site.ru/samokati/», но в то же время у нас появится и URL первой страницы пагинации — «site.ru/samokati/page1». Эти страницы могут быть восприняты поисковиками как дубли.

Поэтому:

  • настройте постоянный редирект с site.ru/samokati/page1 на site.ru/samokati/;

  • проследите, чтобы ссылка с других страниц на первую вела на site.ru/samokati/, а не на site.ru/samokati/page1.

❗️ Важно

На всех страницах, начиная со второй, ставьте каноникал на первую страницу. Помните, что первая страница — это основная страница категории, а не page1.

Следите за тем, чтобы ссылка с других страниц на первую вела не на page1, а на основную страницу.

Если у сайта есть версии HTTPS, HTTP, www

Если в этом случае не указать canonical, ПС будут рассматривать все три версии сайта как наборы отдельных страниц.

Это может привести к проблемам с индексацией: мы уже рассказывали про распространенные сценарии: либо страницы склеятся и в индексе останется не та, что вам нужна, а остальные удалятся (в том числе и нужная); либо в индексе останутся все страницы, что может привести к каннибализации.

То же касается слешей на конце адресов: site.ru/samokati и site.ru/samokati/.

Ставить завершающий слеш в URL или нет: как лучше для SEO

В мобильном URL

Это особенно актуально для Google, так как он уже давно ориентируется на мобильную версию сайта при индексации.

Вот что можно сделать, если у вас есть отдельная версия сайта, доступная по адресу типа m.site.ru:

  1. Укажите в коде мобильной версии сайта rel=”canonical”, который будет вести на десктопную версию.

  2. В десктопной версии укажите rel=“alternate” — этот атрибут будет вести на мобильную версию, показывая, что есть альтернативная версия, но не каноническая.

То же касается AMP‑страниц.

В динамических адресах

Когда человек переходит по рекламе, взаимодействует с фильтрами в каталоге, переходит в разные разделы сайта, образуются динамические адреса.

Допустим, мы зашли в раздел самокатов на сайте: site.ru/samokati/. Затем мы начали настраивать фильтры, чтобы увидеть все самокаты бренда «САМ» белого цвета. Получилось вот что:

site.ru/samokati/brand=SAM&color=white.

Таких комбинаций может быть много, поэтому из них нужно выделить главную и проставить в дубликатах ссылки на неё.

Когда не нужно настраивать канонический тег

Для набора сайта верхним и нижним регистром

Даже одни и те же адреса, написанные верхним регистром (ВОТ ТАК) и нижним (вот так), поисковики могут считать разными версиями сайта.

Но чтобы указать системе, что она должна применять только нижний регистр, нужно использовать не rel=”canonical”, а специальные записи в .htaccess‑файле сайта. Можете скопировать код отсюда:

RewriteEngine On
RewriteBase /

# If there are caps, set HASCAPS to true and skip next rule
RewriteRule [A‑Z] — [E=HASCAPS:TRUE,S=1]
# Skip this entire section if no uppercase letters in requested URL
RewriteRule ![A‑Z] — [S=28]
# Replace single occurance of CAP with cap, then process next Rule.
RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2
# If there are any uppercase letters, restart at very first RewriteRule in file.
RewriteRule [A‑Z] — [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]

Для контента на разных языках

Здесь ни rel=”canonical”, ни 301‑й редирект не подойдут: нужно не перенаправлять пользователей и поисковых роботов на те или иные страницы, а показывать разные результаты выдачи для разных стран, как бы «разделять» контент на разные языки. Для этого используют атрибут hreflang.

Его также вставляют в тег <link> секции <head>. Код будет выглядеть следующим образом:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />

где lang_code — код языка и региона, который соответствует версии страницы (например, ru_rus), а url_of_page — URL‑версии страницы для указанного языка и региона.

Об атрибуте — Справка Google

Как проверить canonical

Чтобы узнать, какая страница считается канонической в Google, нужно воспользоваться инструментом проверки URL.

В Яндекс Вебмастере нужно посмотреть «Индексирование» — «Страницы в поиске». Дубли после указания каноникла отобразятся в разделе «Исключённые из поиска» (но всё ещё будут видны пользователям).

Покажем, как это делать, на примере «Анализа сайта» в Топвизоре.

Чтобы найти страницы с rel canonical:

  1. Перейдите в инструмент «Анализ сайта» в левом меню и откройте «Страницы»:

Интерфейс инструмента «Анализ сайта» в Топвизоре

  1. Перейдите в «Индексируемость»; в столбце «rel=canonical» наведите курсор на значок ссылки, чтобы посмотреть, куда ведёт страница. URL отобразится в левом нижнем углу.

Отображение канонических URL в инструменте «Анализ сайта» Топвизора

Чтобы увидеть дубли:

  1. Перейдите в «Контент». В столбце «Дубли» у каждой страницы появится кнопка, обозначающая количество таких же страниц.

Отображение дублей в инструменте «Анализ сайта» Топвизора

  1. Нажмите на количество страниц, чтобы появился полный список дублей конкретной страницы.

Список дублей в инструменте «Анализ сайта» Топвизора

❗️ Мы обновили дизайн инструмента «Анализ сайта». Теперь аудит стал нагляднее, проще и функциональнее: ищите редиректы и битые ссылки, проверяйте индексируемость, атрибуты и теги.

Распространенные ошибки в настройке canonical

  • Страницы заблокированы robots.txt

Если вы блокируете сканирование неканонических адресов в robots.txt, то роботы не увидят канонические страницы.

Если вы блокируете сканирование канонических страниц, вместо них в поиске может участвовать дубль, доступный роботу.

  • Каноническая страница закрыта от индексирования

Бот не будет учитывать такую страницу.

  • Используются и noindex, и rel="canonical" для одной страницы

Директива noindex не заменяет и не объединяется с rel=”canonical”. noindex нужен для того, чтобы исключать страницы из индекса.

  • Написаны два (или больше) атрибута rel=canonical

На странице не может быть указано несколько канониклов: бот или выберет первый из них, или вовсе проигнорирует указание.

  • Канонические адреса образовали цепочку

Если вы указали какую‑то страницу канонической, а на ней — перенаправление на какую‑то другую страницу с помощью атрибута rel=”canonical”, бот не будет считать эту страницу канонической.

Запомните эту схему:

Разница между редиректом и canonical

  • В написании канонического адреса допущена ошибка

Теги link с атрибутом rel="canonical" должны содержать абсолютные пути, а не относительные. Нужно указывать, как в браузере: https://site.ru/page/, а не /page/ — чтобы робот понял, куда идти.

  • В атрибуте указана битая ссылка

Если вы указываете на неканонической странице адрес неработающей страницы с кодом состояния 4XX (например, знакомый всем 404 Not Found), робот ничего не поймёт и не отреагирует на указанное.

Битые ссылки на сайте: как найти и исправить

  • В атрибуте указана ссылка на страницу с редиректом

Канонические ссылки указывают ботам на более предпочтительные версии страницы. А редирект говорит им, что нужно учитывать другой адрес. Поэтому тег rel=”canonical” может быть проигнорирован.

  • Канонический адрес указывает на другой домен или поддомен

Ссылка должна указывать только на страницу на этом же сайте.

  • Канонические страницы конфликтуют друг с другом

Например, если на Странице 1 указана канонической Страница 2, но при этом в карте сайта Sitemap.XML стоит ссылка на Страницу 1 — это конфликт канонических страниц.

Поисковый робот, опираясь на карту сайта, может определить Страницу 1 важной и проигнорировать каноникал.

  • Каноническая ссылка ведет на нерелевантную страницу

Содержимое страницы, на которую вы пытаетесь перенаправить поискового бота, должно быть таким же, что и на странице‑дубле.

Если содержимое канонической страницы отличается от содержимого неканонической — например, на момент обхода неканонические страницы более полно отвечают на запрос пользователя, и их контент существенно отличается от канонических, — ПС может не учесть то, что вы указали.

  • Тег rel=canonical использован в другой секции кода

Атрибут тега <link> должен быть только в секции <head>. Если он будет в <body> или где‑то ещё, боты его проигнорируют.

  • Главная выбрана канонической для всех страниц

Тогда боты могут проиндексировать только главную, а все остальные страницы — нет. И в выдаче у вас будет только одна страница.

❗️Изучите официальные руководства поисковиков по каноническим страницам

Яндекс Справка

Google Справка