Canonical: что это, зачем нужен и как избежать дублей страниц
Что такое rel=canonical, когда он нужен, чем отличается от 301-редиректа, noindex и Clean-param, как его видит Яндекс и как настроить на Tilda, Битрикс и Next.js.
Canonical — это способ сказать поисковику, какой из нескольких одинаковых адресов страницы считать основным. Одна и та же страница сайта часто доступна по нескольким URL: с utm-метками из рекламы, со слешем и без, с параметрами сортировки и фильтров. Для человека это одна страница, а для поисковика — несколько разных. Такие дубли делят между собой сигналы ранжирования, и в выдачу может попасть не тот адрес, который вы продвигаете. Разберём, что такое canonical, когда он нужен, чем отличается от 301-редиректа, noindex и Clean-param, как с ним работает Яндекс и как настроить его на популярных CMS. Статья пригодится владельцам сайтов, маркетологам и разработчикам, которые видят в Вебмастере «дубли» и не понимают, что с ними делать.
Что такое canonical
Canonical — это тег <link rel="canonical" href="…"> в блоке <head> страницы, который сообщает поисковику, какой адрес считать основным. Все копии страницы указывают на один канонический URL, и именно он участвует в поиске. Яндекс и Google воспринимают canonical как сильную рекомендацию, но не как приказ: если сигналы противоречат друг другу, поисковик может выбрать другой адрес.
Пример. Страница услуги открывается по трём адресам:
https://site.ru/uslugi/remont/— основной;https://site.ru/uslugi/remont/?utm_source=yandex&utm_medium=cpc— из рекламы;https://site.ru/uslugi/remont/?print=1— версия для печати.
На всех трёх в коде должен стоять один и тот же тег: <link rel="canonical" href="https://site.ru/uslugi/remont/">. Тогда поисковик «склеит» копии с основным адресом, и в выдаче останется только он.
Когда canonical обязательно нужен
- Страницы с utm-метками и другими рекламными параметрами.
- Сортировки и фильтры в каталоге, которые не должны быть отдельными посадочными.
- Версии страницы для печати.
- Один товар в нескольких категориях с разными адресами.
- Пагинация, если вы решили собирать сигналы на первой странице.
- Одинаковые тексты на нескольких сайтах одной компании или у партнёров, если копия нужна, но в поиске должен быть оригинал.
Хорошая практика — указывать canonical на каждой странице, в том числе на саму себя (self-canonical). Так любые копии с параметрами автоматически «склеиваются» с основным адресом, даже если вы о них не знаете: параметры в ссылки часто добавляют сторонние сервисы, рассылки и соцсети. Особенно это важно для каталогов с фильтрами — при продвижении интернет-магазина работа с дублями обычно одна из первых задач.
Canonical, 301-редирект, noindex или Clean-param: что выбрать
| Инструмент | Когда использовать | Что видит пользователь | Как работает |
|---|---|---|---|
| rel=canonical | Копия нужна пользователю, но не нужна в поиске: фильтры, сортировки, печатная версия | Остаётся на своей странице | Рекомендация, робот всё равно обходит копию |
| 301-редирект | Старый адрес больше не нужен: переезд, смена URL, слеш на конце, www | Перенаправляется на новый адрес | Жёсткое правило, копии физически нет |
| noindex | Страница не должна быть в поиске вообще: корзина, личный кабинет, поиск по сайту | Остаётся на странице | Запрет индексации, но не обхода |
| Clean-param | Параметры, не меняющие содержимое: utm, id сессии, метки партнёров | Ничего не меняется | Директива robots.txt только для Яндекса, экономит обход |
Эти инструменты не взаимоисключающие. Типичная связка для коммерческого сайта: 301-редиректы для технических дублей (http → https, www → без www, слеш на конце), self-canonical на всех страницах, Clean-param для рекламных меток и noindex для служебных разделов. Пример директивы для Яндекса:
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term /
Одна важная деталь: не совмещайте canonical на другой адрес и noindex на одной странице. Это противоречивые сигналы — «эта страница копия той» и «эту страницу не индексировать». Выберите что-то одно. Как правильно составить robots.txt и не закрыть лишнего — в статье robots.txt и sitemap.xml: настройка, а о переездах и редиректах — в статье редизайн без потери позиций.
Как Яндекс обрабатывает canonical
У Яндекса несколько особенностей, которые стоит учитывать:
- Canonical — подсказка, а не команда. Если содержимое страниц заметно отличается, Яндекс может проигнорировать тег и оставить обе страницы в индексе или выбрать канонической другую.
- Неканонические страницы исключаются из поиска. В Вебмастере они попадают в исключённые со статусом «Неканоническая» — это нормально, если так и задумано.
- Робот продолжает обходить копии. Canonical не экономит краулинговый бюджет. Если копий тысячи (фильтры, метки), добавьте Clean-param или закройте параметры в robots.txt.
- Дубли без canonical Яндекс склеивает сам и помечает статусом «Дубль». Но выбирает он не обязательно тот адрес, который вы продвигаете, — поэтому лучше указать явно.
- Межсайтовый canonical работает менее предсказуемо. Google официально поддерживает canonical на другой домен. В Яндексе на это полагаться рискованно: если оба сайта ваши и копия не нужна, надёжнее 301-редирект.
Изменения применяются не сразу: после правки canonical проходит от нескольких дней до нескольких недель, пока робот переобойдёт страницы и обновит индекс. Ускорить можно через «Переобход страниц» в Вебмастере.
Canonical на пагинации и фильтрах
Пагинация
Есть два рабочих подхода, и выбирать нужно под структуру каталога:
- Self-canonical на каждой странице пагинации. Страница 2 указывает на саму себя, страница 3 — на себя. Товары со всех страниц остаются доступными роботу и попадают в индекс. Этот вариант мы используем чаще всего для больших каталогов.
- Canonical со всех страниц пагинации на первую. Сигналы собираются на первой странице, но товары с дальних страниц робот может находить хуже. Подходит, если у каждого товара есть другие пути: подкатегории, перелинковка, sitemap.xml.
Чего делать не стоит: ставить canonical на первую страницу и одновременно закрывать пагинацию в noindex, а также дублировать на страницах 2, 3, 4 тот же title, H1 и SEO-текст, что и на первой. Уникализируйте title хотя бы номером страницы, а SEO-текст выводите только на первой.
Фильтры
Фильтры делятся на две группы. Первые — те, под которые есть спрос: «диваны угловые», «диваны серые», «кроссовки 42 размер». Их выгоднее сделать отдельными посадочными страницами со своим ЧПУ, title, H1 и self-canonical — это дополнительный трафик. Вторые — комбинации без спроса и сортировки: «по цене», «по рейтингу», «серые + угловые + до 30 000». Для них canonical указывает на родительскую категорию. Какие фильтры превращать в посадочные, решает семантика: подробнее — в статьях SEO для интернет-магазина и кластеризация запросов.
Частые ошибки с canonical
- Canonical на главную со всех страниц. Поисковик считает все страницы копиями главной, и они выпадают из индекса. Встречается после неаккуратной установки SEO-плагинов и шаблонов.
- Относительный адрес или адрес с http вместо https. Яндекс рекомендует указывать полный URL, а ссылка на http-версию отправляет сигнал не на тот адрес.
- Canonical указывает на страницу с noindex, 404 или редиректом. Противоречивые сигналы, и поисковик игнорирует тег.
- Несколько тегов canonical на странице — например, один выводит CMS, второй добавлен вручную. Поисковик может проигнорировать оба.
- Canonical на тестовый домен после переноса сайта с dev-сервера — классика запусков.
- Canonical вставляется скриптом после загрузки. Надёжнее, когда тег есть в исходном HTML, который отдаёт сервер.
- Canonical и внутренние ссылки расходятся. Canonical ведёт на адрес со слешем, а меню и sitemap.xml — без слеша. Сигналы должны совпадать.
- Разные canonical и og:url. Не критично, но лучше, когда они совпадают.
- Canonical на пагинации ведёт на первую страницу, хотя товары со второй и третьей страниц должны индексироваться. Решайте осознанно, исходя из структуры каталога.
Как проверить canonical на странице и в Яндекс Вебмастере
Пошаговая проверка, которую мы делаем в аудитах:
- Откройте исходный код страницы (Ctrl+U) и найдите
rel="canonical". Тег должен быть один. - Убедитесь, что адрес полный, с https, на основном домене и совпадает с тем, что вы продвигаете.
- Откройте канонический адрес: он должен отдавать код 200, без редиректов и без noindex.
- Добавьте к адресу страницы параметр, например
?utm_source=test, и проверьте, что canonical по-прежнему указывает на адрес без параметра. - В Вебмастере откройте «Индексирование» → «Страницы в поиске» → «Исключённые» и отфильтруйте по статусам «Неканоническая» и «Дубль». Если среди них есть страницы, которые должны быть в поиске, — ищите причину.
- Для отдельного адреса используйте инструмент «Проверить статус URL»: он покажет, в поиске ли страница и какой адрес Яндекс считает каноническим.
Как подключить и настроить Вебмастер, мы описали в статье настройка Яндекс Вебмастера. Если страницы массово выпадают из индекса и причина не в canonical — пройдитесь по статье почему сайт не индексируется.
Нужен ли canonical небольшому сайту
Да, даже если у вас сайт-визитка на десять страниц. Дубли появляются не только из-за фильтров: достаточно одной рекламной кампании с utm-метками или ссылки из рассылки с параметрами, чтобы в индексе оказались копии главной или страниц услуг. На маленьком сайте каждая страница на счету, и отдать позицию технической копии обиднее, чем на большом. Self-canonical на всех страницах — это одна строка в шаблоне, которая закрывает вопрос раз и навсегда. Если сайт делается с нуля, заложите это в техническое задание на разработку, чтобы не исправлять после запуска.
Как настроить canonical на Tilda, Битрикс и Next.js
Tilda
Тильда выводит canonical на опубликованных страницах автоматически. Главное, что стоит проверить, — что в коде стоит ваш основной домен, а не технический адрес проекта на tilda.ws, и что домен подключён с одним вариантом написания (с www или без). Если одна страница опубликована дважды под разными адресами, удалите лишнюю или настройте с неё редирект. Остальные особенности платформы — в статье SEO на Тильде.
1С-Битрикс
В стандартных компонентах каталога и новостей есть параметр «Устанавливать канонический URL» — включите его для детальных страниц товаров, особенно если товар привязан к нескольким разделам. Для остальных страниц canonical обычно задают в шаблоне через свойство страницы. Отдельно проверьте умный фильтр: без доработки он генерирует множество адресов с комбинациями параметров, и их нужно либо превращать в посадочные, либо закрывать canonical и robots.txt.
Next.js
В App Router canonical задаётся в метаданных страницы: alternates: { canonical: "/uslugi/remont" }. Чтобы относительный путь превратился в полный URL, в корневом layout укажите metadataBase: new URL("https://site.ru"). Для динамических страниц (статьи, товары) canonical формируйте в generateMetadata из slug. Next.js отдаёт тег в серверном HTML, поэтому робот видит его сразу.
На других CMS логика та же: один тег, полный адрес, совпадение с sitemap и внутренними ссылками. Сравнение платформ с точки зрения SEO — в статье как выбрать CMS для сайта.
Быстро проверить canonical вместе с другими SEO-параметрами страницы можно в бесплатном SEO-анализе страницы. Если дублей на сайте много, найдём и устраним их в рамках технического аудита — с готовым списком правок для разработчика.
Найдём ошибки, которые мешают росту, и дадим готовое ТЗ для программиста.