Canonical указывает поисковым системам какая страница из двух идентичных является основной (канонической). Именно она попадёт в индекс поисковой системы, а информация с её неканонических страниц приклеивается к ней, передавая свой вес по различным факторам.
Использовать canonical следует для предупреждения появления дублей страниц с различными get-параметрами (sort, filter, utm_source и т.д) и дублей в CMS с идентичным контентом (особенно этим болеет популярная CMS Joomla).
Склейка страниц
Директива canonical носит рекомендательный характер для поисковых систем. А это значит что она может легко игнорироваться и склейки страниц не произойдёт или она произойдёт в обратную сторону.
Чаще всего склейка не работает если контент страниц значительно отличается. Также поисковые системы предпочитают более короткие адреса страниц для канонической.
Способы установки
HTML-тег
Указать канонический адрес страницы можно с помощью тега link с атрибутом rel=canonical, размещённого в контейнере head. В содержимом атрибута href такого тега указывается абсолютная ссылка на каноническую страницу.
<link rel="canonical" href="https//ilyagorbachev.com/page"/>
Наиболее популярное исполнение. Работает как в Яндексе, так и в Google.
HTTP-заголовок
Указать канонический адрес файлов сайта (и страниц) можно с помощью заголовка ответа сервера Link, содержащего rel=canonical:
Link: <https://ilyagorbachev.com/file.pdf>; rel="canonical"
Способ поддерживается как Яндексом, так и Google.
XML карта сайта
Google учитывает ссылки на страницы в используемом файле XML карты сайта для выбора канонической страницы. Поэтому указав все канонические адреса страниц в файле (и исключив все неканонические) мы можем получить тот же результат, что и при использовании canonical в HTML-теге.
Проблема только в том что Яндекс не учитывает XML карту сайта при определении канонической страницы. Это подтвердили его представители.
Canonical для пагинации
Часто тег canonical используют для страниц пагинации, устанавливая его с самих страниц пагинации на основную страницу.
Метод сложно назвать абсолютно правильным, так как могут быть проблемы с обходом роботом Google товаров, ссылки на которые размещены на страницах пагинации.
Гораздо лучше уникализировать мета-теги страниц пагинации так, чтобы они не мешали ранжированию основной страницы.
Кроссдоменный Canonical
Поисковые системы Яндекс и Google по-разному воспринимают кроссдоменные canonical. Google их учитывает и может склеить. А в Яндексе кроссдоменные canonical игнорируются, даже если речь идёт о страницах поддомена того же сайта.
Автореферентный Canonical
Использование самореферентного canonical (когда страница ссылается сама на себя) рекомендуется в Google и не имеет значения для Яндекса. Для Google это сигнал, снимающий неопределенность в отношении того является ли страница конечным узлом в цепи вектора каноничности.
Проверка
Проверить HTML-тег можно вручную через инструменты разработчика (на странице зажимаем CTRL+U, а затем через CTRL+F ищем слово “canonical”), либо используя расширение для браузера ("SEO META in 1 CLICK" и т.п.).

Проверить HTTP-заголовок можно через сервис bertal.ru. Выберите Googlebot или Yandexbot и обязательно подключите опцию «Показать HTML-код страницы», в противном случае вы можете получить не те заголовки ответа сервера что получают поисковые роботы.
Для массовой проверки лучше использовать программу Screaming Frog SEO Spider (или её украинский аналог - Netpeak Spider).
Настройка популярных CMS
Настройка Canonical на Joomla
Данная CMS славится своими дублями, логичным путем исправления которых является настройка canonical.
Вручную указать нужный тег link rel=”canonical” для страниц сайта на CMS Joomla можно установив плагин “Custom Canonical”. После установки рядом с полями для указания мета-тегов появится поле для указания адреса страницы для canonical.
В результате canonical появится на всех версиях страницы в Joomla: с динамическими URL и со статическим URL в статье, меню и категории.
Настройка Canonical на WordPress
Для того чтобы добавить Canonical сайту на WordPress наиболее простой вариант - установить плагин Yoast SEO. После установки при создании страницы или записи, нажмите на “Изменить сниппет” и укажите требуемый ярлык, это и будет локальный URL-адрес страницы. Он же будет указан в теге link rel=”canonical”.
Yoast - один из самых удобных SEO-плагинов для CMS WordPress, он в меру гибкий и имеет весь базовый функционал мета-тегов. Главное не лениться их заполнять.
Настройка Canonical для товаров Bitrix
С настройкой в Bitrix не должно возникнуть проблем если следовать официальным рекомендациям.
Настройка Canonical на OpenCart для страниц пагинации
Настроить вывод тега link rel=“canonical” на страницах пагинации категорий для CMS OpenCart можно разместив в файле catalog/controller/product/category.php в функции info()
после строки $this->load->model('tool/image');
вставить следующий код:
if (isset($this->request->get['page'])) {
$page = $this->request->get['page'];
$pathx = explode('_', $this->request->get['path']);
$pathx = end($pathx);
$this->document->addLink($this->url->link('product/category', 'path=' . $pathx ), 'canonical');
} else {
$page = 1;
}
Для того чтобы настроить canonical для страниц пагинации производителей, нужно в файле catalog/controller/product/manufacturer.php (в том же месте что и для категорий) добавить код:
if (isset($this->request->get['manufacturer_id'])) {$this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical');}
Какие нетипичные случаи использования rel=“canonical” вам встречались?
Продвигал основные сайты таких компаний как ВТБ, Альфа-Банк, Газпром АГНКС, Технопарк и BMW Борисхоф.
Спикер конференций Optimization в Сколково, Merge в Иннополисе, SEO без воды и многих других.