Canonical — в переводе с английского канонический, то есть принятый за образец, эталонный. У web-мастеров это слово имеет свое утилитарное назначение: в HTML-коде оно указывает на приоритетную для индексации страницу, контент которой частично или полностью дублируется в других документах на сайте. Попробуем разобраться с логикой применения тега canonical.
Что такое rel canonical
Чтобы объяснить на пальцах, что такое тег «рел каноникал», нужно начать с базовых терминов из словарика юного HTML-щика.
Атрибут rel (от англ. relationship — взаимосвязь) определяет отношения между текущей страницей и документом, на который ведет ссылка под атрибутом href.
В свою очередь, атрибут href (от англ. hypertext reference — гиперссылка) сообщает, о какой ссылке вообще идет речь, т. е. задает адрес документа.
Rel с помощью разных атрибутов сообщает поисковому роботу, что ему делать с указанной далее ссылкой. Например:
<link rel="nofollow" href="https://site.ru/page1" /> → Команда поисковому боту не переходить по ссылке.
<link rel="canonical" href="https://site.ru/page1" /> → Команда боту расценивать страницу по ссылке приоритетной при индексации.
Именно каноническую страницу поисковик будет выводить на SERP (страницу выдачи). Правда, это не совсем команда, а, скорее, пожелание. Поисковик волен его проигнорировать и посчитать приоритетной любую из дублирующихся страниц.
Часто canonical называют meta-тегом, т.к. он прописывается в контейнере <head> и передает уточняющую информацию краулеру, но, строго говоря, это не тег, а значение атрибута rel, который прописывается для тега <link>.
Зачем вообще нужны эти заморочки с каноническими ссылками? Атрибут каноникал решает проблему с дублями страниц, которые негативно отражаются на продвижении сайта:
- тормозят индексацию;
- сжирают краулинговый бюджет (лимит на индексацию документов);
- понижают позиции в выдаче;
- подменяют релевантную страницу, по которой ведется продвижение;
- снижают эффективность ссылочного профиля сайта.
Чтобы как-то навести порядок с дублями, в 2009 г. команда Google дала возможность web-мастерам канонизировать URL определенной страницы. Как это было, читайте здесь: Specify your canonical | Google Search Central Blog.
Настройка канонических документов не только обеспечивает приоритет при индексировании и избавляет от проблем с совпадающими кусками контента, но и передает ссылочную массу со всех дублей на основной адрес.
Когда нужна канонизация
Атрибут rel canonical помогает закрывать от индексации дубли. Ситуации, когда на различающихся URL оказывается одинаковый контент, чаще всего возникают по трем причинам.
HTTP:// и HTTPS:// протоколы
Сравните 4 URL:
- http://www.site.ru
- http://site.ru
- https://www.site.ru
- https://site.ru
С точки зрения робота это 4 разных сайта, но для пользователя, с какого бы адреса он ни зашел, не будет никакой разницы. Это классический случай, когда на пустом месте поисковый алгоритм может обнаружить дубли, поэтому нужно указать ему canonical URL.
Важно! Если вы работаете по SSL-протоколу, каноническим нужно назначить адрес HTTPS, т.к. защищенный домен — это важный фактор ранжирования.
Генерирование дублей CMS
Сейчас даже самый скромный интернет-магазин предлагает покупателям возможность настроить параметры выбора товара.
Например, мы продаем садового гнома. Основная его категория в каталоге — «Садовые фигуры», но к 8 марта мы решили предложить гнома в разделе «Подарок маме». И вот у нас уже 2 URL на одну позицию:
- https://site.ru/sadovie_figuri/gnom-001/
- https://site.ru/podarok_mame/gnom-001/
Таких категорий может быть очень много: «Садовые гномы до 50 см», «Фигуры для сада производства Франции» и т.п. И все это дубли исходной карточки нашего гнома-001 на различающихся URL. Чтобы поисковик не запутался и не пессимизировал сайт из-за кучи дублирующегося контента на разных адресах, нужно присвоить приоритетному URL атрибут rel со значением canonical.
По такому принципу CMS генерируют дублирующиеся страницы везде, где возможна сортировка позиций по различным параметрам: цене, популярности, отзывам, прочим фильтрам (цвет, размер, сезон, бренд и т.п.). Сюда же можно отнести адреса с динамическими GET-параметрами и UTM-метками для отслеживания рекламных кампаний или переходов из соцсетей.
Пагинация
Пагинация — это распределение большого массива данных по страницам. Она существенно облегчает работу пользователя с большими объемами информации и увеличивает скорость загрузки сайта. Без пагинации страница сайта с каталогом товаров или библиотекой статей будет разворачиваться этаким бесконечным манускриптом.
Пагинация реализуется разными способами. Обычно это или список с номерами страниц, или буквенный каталог, или цифры, задающие диапазон отображаемых карточек.
Так реализована пагинация в блоге студии Диус: на каждой странице размещается по 40 карточек статей, нажав на цифру 2 (3, ...), пользователь попадает на следующую страницу библиотеки.
Пагинация делает удобным взаимодействие с сайтом, но переходы между страницами провоцируют формирование дублей. Чтобы этого избежать, можно использовать canonical одним из двух способов:
- Создаем глобальную страницу-свиток «Показать все» и указываем ее как rel=canonical для всех страниц пагинации. Метод рекомендует Google, но он эффективен только для небольших каталогов. В больших интернет-магазинов страница с тысячами карточек будет грузиться долго и мучительно, а скорость загрузки — важнейший фактор ранжирования.
- Каждую из всех имеющихся страниц пагинации назначаем канонической в отношении самой себя. Минус метода — на всех этих страницах метатеги Title и Description не будут различаться, а это боль и страшный сон для SEO-специалистов.
Правила формирования канонических страниц
Чаще всего канонической назначается первоисходая страница, где с самого начала был опубликован дублирующийся в дальнейшем контент. Прописывая для тега <link> атрибут rel=canonical, нужно соблюдать определенные правила.
- Каноническая ссылка ведет на реальную страницу на том же домене (а для Яндекса на том же поддомене) и имеет код ответа 200.
- На страницу приходится только одна каноническая ссылка.
- Для приоритетной страницы указывается rel canonical на нее же: так робот понимает, что она тут за главную.
- Для основного URL не может быть запрета на индексацию в служебном файле robots.txt.
- Все дубли ссылаются на один и тот же link canonical, иначе бот проигнорирует указания.
- Цепочки канонических URL запрещены: если Вася признает царем Петю, то Петя может считать царем только себя любимого. В группе дублей приоритетная страница может быть только одна.
- В теге href прописывается абсолютный адрес ссылки: URL целиком по формуле https://site.ru/page1. Относительные адреса, обрезающие вид протокола и название домена, не рекомендуются.
Как правильно настроить канонизацию
Путь настройки canonical зависит от характера дублирующихся документов и от способа управления содержимым сайта.
Вручную в HTML-коде
Характер дублей: HTML-документы.
Где руками прописывать атрибут rel=canonical, мы уже выяснили: выбираем приоритетную страницу и даем указания боту в HTML-коде в контейнере <head> по формуле: <link rel="canonical" href="https://site.ru/page1" />. После остается ввести эту команду на все дубли.
В плагине CMS
Характер дублей: HTML-документы.
На большинстве популярных движков — в базовой комплектации или в виде отдельного плагина — предусмотрен функционал для автоматической настройки канонизации. Например:
- для WordPress плагин Yoast SEO;
- для OpenCart модуль Uni SeoPro;
- для Joomla версии 3+ встроенный модуль SEF: в код /index.php?option прописывается rel="canonical" с приоритетным человекопонятным URL.
В заголовке HTTP
Характер дублей: документы не в формате HTML.
Часто возникает ситуация, когда статью с инструкциями оформляют PDF-форматом для удобного скачивания или распечатки. Так на сайте появляются два документа с одинаковым контентом. Если вам нужно закрыть дубль файла формата .pdf, .doc, .kml, .ppt, .odp или другого не HTML-формата, у которого нет контейнера <head>, можно прописать rel="canonical" в заголовке HTTP, применив служебные файлы .htaccess или PHP. Вносить директивы получится только при наличии доступа к серверным настройкам.
На запрос дубля сервер должен отдавать адрес первоисточника.
Внесение команды в HTTP-заголовок через PHP:
header ( ‘Link: <http://www.site.ru/page-01.html>; rel="canonical"’ );
Внесение команды в HTTP-заголовок через .htaccess:
<Files “manual.pdf”>
<IfModule mod_headers.c>
Header set Link ‘<http://www.site.ru/page-01.html>;rel="canonical"’
</IfModule>
</Files>
В файле Sitemap
Характер дублей: HTML-документы. Карта сайта создается для ускорения индексации и не заменяет указание canonical в коде.
Google настаивает, что в Sitemap нужно указывать только канонические ссылки. Соответственно, все URL в XML-файле поисковики будут по умолчанию считать приоритетными при индексировании.
Через 301 редирект
Характер дублей: зеркала сайта, устаревшие данные.
Перенаправить трафик и передать вес на основную страницу с дублей можно, настроив 301 редирект. Способ актуален для следующих ситуаций:
- у ресурса сменился домен;
- страница навсегда переехала на новый URL;
- контент на странице устарел, но имеет хороший ссылочный профиль и приводит трафик;
- для 404 ошибки.
Подробно об этом мы писали в статье 301 редирект — как сделать перенаправление с одной страницы на другую.
Ошибки настроек canonical
Ошибки канонизации сводят всю кропотливую работу на нет: поисковые роботы просто игнорируют некорректные рекомендации. Перечислим самые распространенные траблы.
- На странице больше одной каноникал-ссылки. Поисковый бот не будет разбираться, что вы там имели в виду и проигнорирует все.
- Конфликт canonical URL при разных способах настройки каноничности. Если вы настраиваете каноничность для одного документа разными способами (в контейнере <head>, в HTTP-заголовке или в XML-файле), нужно следить, чтобы он везде указывал на одну и ту же ссылку.
- Цепочка канонических ссылок. Страница, которая указывается в дублях как основная, не может иметь настроек каноничности ни на какую другую, кроме себя самой. У основной страницы не может быть никаких других приоритетов: она сама себе канон.
- Атрибут rel="canonical" потерялся за границами контейнера <head>. В HTML rel canonical прописывается только внутри блока <head>, где сосредоточены добрые советы от web-мастеров ботам Яндекса и Google. Вне этого контейнера указание каноничности не имеет силы.
- Каноном объявляется первая страница пагинации. Если рекомендованные способы настройки каноничности для страниц пагинации вам по каким-то причинам не подходят, лучше вообще обойтись без canonical и запретить их индексацию, оставив возможность боту переходить по ссылкам с помощью настройки метатега <meta name=“robots” content=“noindex, follow” />.
- Настройка 301 редиректа не по назначению. Rel canonical по сути похож на 301 редирект, но это не взаимозаменяемые вещи:
- 301 редирект перекидывает на другой URL любого заглянувшего: не только поискового бота, но и живых посетителей;
- rel canonical перекидывает на другой URL только бота и все плюшки со страницы, в остальном неканоническая страница нормально открывается, собирает трафик, живет своей жизнью, но не индексируется.
- Канонический URL недоступен для индексирования. Вся кропотливая работа может оказаться бессмысленной, если приоритетный URL будет закрыт для индексации. В этом случае бот проиндексирует то, что ему заблагорассудится.
Проверка настроек canonical
Для контроля канонических ссылок удобен многофункциональный инструмент комплексной SEO-проверки Screaming Frog SEO Spider Website Crawler. Если вам нужно проверить меньше 500 URL, будет достаточно бесплатной версии. За безлимитную лицензию придется платить £149.00 в год. Отчет Canonical доступен во вкладке Canonicals.
В Google Search Console есть свой инструмент для анализа URL. Подробнее о работе с инструментом читайте в справке суппорта Google здесь.
В Yandex отчет по canonical находится в панели Вебмастера во вкладке «Индексирование» → «Страницы в поиске». При корректной настройке каноничности дубли страниц исчезают из поиска и попадают в список «Исключенные страницы».
Когда Яндекс-бот находит какие-то нестыковки, он присылает уведомление с разъяснениями, что не так и как это исправить. Но известны случаи технических сбоев, когда web-мастера получали странные послания, что «у важных страниц изменился атрибут rel canonical», хотя никаких манипуляций с канонизацией перед этим не проводилось.
Выводы
Rel canonical — эффективное оружие в войне с дублями — неизбежными, но такими опасными для ранжирования сайта. На первый взгляд, работа по настройке канонических страниц кажется запутанной и сложной. Но, если понять логику переадресации поискового бота на приоритетную страницу, то все оказывается не так страшно. Главное, следовать рекомендациям и не допускать критических ошибок.
Комментарии