Canonical URL: что это и как настроить
Что такое rel canonical, зачем он нужен поисковикам и как прописать тег canonical в HTML, HTTP-заголовках и популярных CMS.
Что такое canonical URL
Canonical URL (или rel canonical) — это HTML-тег, который сообщает поисковику: из всех версий этой страницы основная — вот эта. Он решает одну из самых частых проблем SEO — дублирование контента, когда один и тот же материал доступен по нескольким адресам.
Без canonical поисковик сам выбирает, какую версию считать основной, и нередко берёт не ту, которую вы хотели бы видеть в индексе. Тег даёт контроль: вы явно указываете предпочтительный URL, а Google и Яндекс в большинстве случаев следуют этой подсказке.
Canonical в цифрах
Год появления
Google, Yahoo и Bing совместно объявили о поддержке rel canonical — первого межотраслевого SEO-стандарта
Сайтов с дублями
По данным Ahrefs, около 60% сайтов имеют страницы с дублированным контентом, которым нужен canonical
Поисковых систем
Google, Яндекс и Bing поддерживают rel canonical. Это подсказка, а не директива: поисковик следует ей в большинстве, но не во всех случаях
Не редирект
Canonical — подсказка для поисковика, а не перенаправление пользователя. Страница-дубль остаётся доступной по своему URL
Canonical: смысл и базовое понятие
Слово «canonical» пришло в веб из математики и логики: canonical form — «каноническая форма», самое простое и стандартное представление объекта. В контексте URL canonical-адрес — это «официальная» ссылка, которую поисковик использует для ранжирования и индексации, а все остальные версии считает дублями.
Canonical часто путают с 301-редиректом. Главное различие: редирект — директива, canonical — подсказка. Редирект физически переводит пользователя на новый URL. Canonical оставляет пользователя на исходной странице, но сообщает поисковику, какой URL считать основным для индексации.
| Критерий | rel="canonical" | 301 редирект |
|---|---|---|
| Тип сигнала | Подсказка (hint) | Директива |
| Пользователь видит | URL страницы-дубля | URL назначения (основной) |
| Поисковик индексирует | Только canonical URL | Только URL назначения |
| Передача ссылочного веса | Частичная (не 100%) | Полная (~99%) |
| Оба URL доступны | Да | Нет — дубль отдаёт 301 |
| Применение | Дубли, фильтры, пагинация | Постоянное перемещение страницы |
Как добавить тег canonical
Тег canonical размещают в секции <head> страницы-дубля. Синтаксис не менялся с 2009 года: это один пустой элемент <link>. Атрибут href должен содержать полный абсолютный URL:
<head>
<meta charset="UTF-8">
<title>Laptops — buy at TechShop</title>
<link rel="canonical" href="https://example.com/catalog/laptops/">
</head><meta rel="canonical"> или <meta name="canonical">. Такого тега не существует. Правильный вариант только один: <link rel="canonical" href="..."> внутри <head>. Поисковики meta-вариант полностью игнорируют.Если страница — PDF, изображение или другой файл без HTML-<head>, canonical можно передать HTTP-заголовком Link. Пример конфигурации nginx ниже работает и для обычных страниц, если вы управляете сервером напрямую:
# nginx.conf — canonical via HTTP header
# For PDF and other non-HTML resources:
location ~* \.pdf$ {
add_header Link '<https://example.com/docs/price-list.pdf>; rel="canonical"';
}
# For dynamic URLs with GET parameters:
location /catalog/ {
add_header Link '<https://example.com/catalog/>; rel="canonical"';
}Пять правил canonical, которые нарушают чаще всего:
- Только абсолютные URL. Всегда пишите полный адрес:
https://example.com/page/, а не/page/. Относительные canonical технически поддерживаются, но плохо работают при смене домена или протокола. - rel canonical на https. Canonical должен указывать на https-версию страницы. Если сайт на HTTPS, а canonical ведёт на
http://, получается дубль, который поисковик не может корректно разрешить. - Один canonical на страницу. Если несколько тегов
<link rel="canonical">с разными href, поисковик игнорирует их все или выбирает произвольно. - Canonical должен открываться. Тег, который ведёт на URL с 404 или 301, бесполезен. Основная страница должна отдавать 200 OK.
- Единый завершающий слеш. Если основная версия —
/catalog/(со слешем), canonical тоже должен содержать слеш. Смешение вариантов создаёт новые дубли.
Когда использовать canonical
Canonical решает шесть классических ситуаций дублирования контента. Разберём каждую на примерах реальных URL.
URL вида /catalog/?sort=price и /catalog/?utm_source=email содержат тот же контент, что и /catalog/. Canonical на всех этих страницах должен вести на /catalog/. Это самый массовый источник дублей в интернет-магазинах.
Страницы /blog/page/2/ и /blog/page/3/ содержат уникальный контент, поэтому для пагинации обычно выбирают самоканоникализацию: каждая страница ссылается на себя. Не направляйте canonical всех страниц пагинации на первую — так вы скроете от индексации уникальный контент.
Страница категории с фильтрами может породить сотни URL: /shoes/?color=red&size=42. Если у страницы фильтра уникальный контент и есть поисковый спрос, её стоит индексировать. Если это дубль родительской категории, canonical ведёт на /shoes/.
Четыре варианта главной: http://example.com, https://example.com, http://www.example.com, https://www.example.com. Выберите одну основную (лучше https://example.com без www) и настройте canonical и 301 со всех остальных.
Если статью перепечатали на партнёрском сайте (синдикация, зеркало), попросите партнёра поставить canonical на ваш оригинал. Google поддерживает кросс-доменный canonical: он считает ваш домен источником и передаёт ссылочный вес.
Если ваша страница появляется на нескольких агрегаторах без вашего участия, добавьте self-canonical на оригинал. При выборе основной версии среди дублей Google отдаёт приоритет URL с явным self-canonical.
Canonical в CMS: WordPress, Битрикс и Tilda
Большинство популярных CMS формирует canonical автоматически или даёт встроенный инструмент. Ручная настройка нужна в нестандартных сценариях или когда CMS обрабатывает их некорректно.
WordPress
Плагины Yoast SEO и Rank Math автоматически добавляют самоканоникализирующий <link rel="canonical"> для каждой страницы и записи. Если плагины не используются, добавьте в functions.php вашей темы:
<?php
// functions.php — canonical without an SEO plugin
add_action('wp_head', function() {
if (is_singular()) {
echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '">' . "\n";
} elseif (is_home() || is_front_page()) {
echo '<link rel="canonical" href="' . esc_url(home_url('/')) . '">' . "\n";
}
}, 1);Битрикс
В 1С-Битрикс canonical задают через свойства страницы. Стандартный подход: присвоить значение в компоненте и вывести его в header.php основного шаблона:
<?php
// In a component or init.php: set the canonical
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage(false);
$APPLICATION->SetPageProperty('canonical', $canonicalUrl);
// In the template's header.php: output the tag
$canonical = $APPLICATION->GetPageProperty('canonical');
if ($canonical):
?><link rel="canonical" href="<?= htmlspecialchars($canonical, ENT_QUOTES, 'UTF-8') ?>">
<?php endif; ?>Tilda
<head> автоматически. Для кросс-доменного canonical или нестандартных случаев используйте Zero Block с HTML-вставкой в <head>.Ошибки и проверка через Google Search Console
Google Search Console — основной инструмент контроля canonical. В отчёте «Индексирование → Страницы» вы увидите несколько статусов, связанных с canonical:
| Статус GSC | Что означает | Что делать |
|---|---|---|
| Вариант страницы с тегом canonical | Google принял ваш canonical. Дубль не индексируется, ссылочный вес передаётся основной странице | Всё верно — это ожидаемое поведение |
| Вариант страницы, выбранный Google, отличается от выбранного пользователем | Google проигнорировал ваш canonical и выбрал другой URL как основной | Проверьте: абсолютный URL? Нет ли 301? Контент страниц идентичен? |
| Дубль без указания основного документа | Поисковик нашёл похожие страницы без canonical | Добавьте тег canonical на все страницы-дубли |
| Проиндексировано | Страница принята в индекс как основная (self-canonical или выбрана явно) | Норма для основных страниц |
Помимо GSC, проверяйте canonical на уровне HTTP-ответа. Быстрее всего это сделать без инструментов: открыть исходный код страницы в браузере (Ctrl+U, поиск canonical) или выполнить curl:
# Check canonical in HTTP header:
curl -sI https://example.com/catalog/?sort=price | grep -i link
# Check canonical in HTML (first 2000 bytes of response):
curl -s https://example.com/page/ | head -c 2000 | grep -i canonical- Цепочки canonical. Страница A → canonical B → canonical C. Поисковики предпочитают прямые указания. Убедитесь, что canonical сразу ведёт на итоговую основную страницу, без промежуточных переходов.
- Canonical на редирект. Canonical, который ведёт на URL с 301, — двусмысленный сигнал: поисковику приходится идти по цепочке. Лучше сразу указать финальный URL.
- Noindex + canonical — противоречие. Страница с
noindexи canonical одновременно посылает конфликтующие сигналы. Используйте что-то одно: либо noindex для страницы, либо canonical на основную страницу. - Canonical через JavaScript. Google умеет обрабатывать canonical, добавленный скриптом, но это медленнее и надёжно не всегда. Лучше использовать статический
<link>в HTML-<head>.
canonical. Если тега нет внутри <head> — проблема в шаблоне. Если canonical ведёт на 404 или на чужой домен без причины — критическая ошибка конфигурации.FAQ
Ответы на самые частые вопросы о canonical, которые возникают в ходе SEO-аудитов.
Итог
Тег canonical — один из базовых инструментов технического SEO. Его несложно внедрить, но при неверной настройке или отсутствии на сайтах с динамической генерацией URL он регулярно вызывает серьёзные проблемы с индексацией. Три ключевых правила — абсолютный URL, rel canonical на https и отсутствие цепочек — закрывают 80% возможных ошибок.
Начните с проверки текущего состояния: GSC → отчёт «Страницы» → фильтр по статусам «Дубли» и «Не проиндексировано». Так быстро видно, где canonical отсутствует или его переопределяет поисковик.
В чём разница между canonical и 301 редиректом?
Можно ли указать canonical на страницу другого домена?
<link rel="canonical" href="https://your-site.com/article/">. Google перенесёт ссылочный вес и авторство контента на ваш домен.Почему Google игнорирует мой canonical?
Как проверить canonical без краулера?
canonical; (2) DevTools Chrome — вкладка Elements, поиск <link rel; (3) Google Search Console — отчёт «Страницы», клик по URL, и в боковой панели появятся поля «Canonical, выбранный Google» и «Canonical, указанный пользователем».Как исправить статус «вариант страницы с тегом canonical» в GSC?
Check it with SpiderHead
Free and local: run the audit on your own machine.



