Что такое канонический URL и тег rel=canonical
Канонический URL (rel=canonical, основной адрес страницы) — Канонический URL это основной адрес страницы, который вы указываете поисковику через тег rel=canonical, когда один и тот же контент доступен по нескольким адресам.
Дубли на сайтах появляются сами. Одна карточка товара открывается из двух категорий, каталог сортируется по цене и добавляет параметр ?sort=price, реклама дописывает UTM-метки, страница доступна со слешем в конце и без. Для поисковика это разные адреса с одинаковым текстом.
Проблема дублей в том, что поисковик сам выбирает, какой адрес показывать, и выбирает не всегда удачно. Сигналы (ссылки, поведение) размазываются между копиями, и ни одна не растёт как следует.
Тег canonical решает это без удаления страниц. В коде каждой копии в блоке head прописывается ссылка с rel=canonical на основной адрес. Поисковик понимает: показывать нужно его, а сигналы копий передавать ему же.
Пример. Адреса /catalog/divany/?sort=price и /catalog/divany/?page=1&utm_source=vk ведут на один список диванов. На обеих страницах стоит canonical на /catalog/divany/. В индексе остаётся одна страница.
Когда canonical, а когда редирект:
- если копия нужна людям (сортировка, фильтр, версия для печати), ставят canonical;
- если старый адрес больше не нужен, ставят 301-редирект.
Важно: для поисковика canonical только подсказка. Если страницы заметно отличаются по содержанию, Яндекс или Google могут его проигнорировать.
Частые ошибки. Canonical на всех страницах ведёт на главную, и сайт теряет индекс. Canonical указывает на адрес, закрытый в robots.txt или отдающий 404. На странице два разных canonical из-за плагина и шаблона. Каноническим указан адрес с http, хотя сайт работает на https.
При аудите мы выгружаем все страницы краулером и сверяем, куда указывает canonical и совпадает ли это с адресами в sitemap.
