Коротко
Что такое rel=canonical и зачем он нужен
Одна и та же страница бывает доступна по разным адресам: с параметрами в ссылке, с меткой рекламной кампании, в версии для печати, в нескольких разделах каталога. Яндекс в таком случае может счесть страницы дублями, объединить их в группу и выбрать для показа в поиске одну, "наиболее информативную и релевантную поисковым запросам". Эту страницу он называет канонической. Дублями Яндекс признаёт только страницы в рамках одного сайта.
Если выбор оставить роботу, в выдаче может оказаться не та страница, которую вы хотели. По справке Яндекса, нужная страница может пропасть из поиска, адрес документа в поиске может поменяться (это усложняет статистику в веб-аналитике), а робот дольше обходит сайт. Google пишет, что канонический URL представляет страницу в результатах поиска. Страницы с идентичным контентом в некоторых случаях не считаются ошибкой и не нарушают правила Google о спаме, но неудобны пользователям и усложняют отслеживание эффективности.
Атрибут rel="canonical" сообщает поисковику, какой адрес вы считаете основным. Google отмечает, что как правило указывать канонические URL не требуется: без указания он определит версию сам. Указывать имеет смысл, когда важно, какой именно адрес окажется в выдаче.
Поисковик может выбрать другую страницу
Яндекс формулирует прямо: робот воспринимает указание на канонический адрес как рекомендацию и может проигнорировать его в нескольких случаях. Google пишет, что даже при указанной вами канонической странице может выбрать другую - по той или иной причине. Гарантий он не даёт: URL будет учитываться, но выбор не обещан.
Мы советуем не рассчитывать на один тег. Google называет сочетание нескольких способов фактором, который повышает вероятность выбора указанного URL. Поэтому согласуйте с тегом внутренние ссылки, редиректы и карту сайта.
Как указать канонический адрес
В справках обеих систем два основных способа. HTTP-заголовок - это служебная строка, которую сервер отправляет вместе со страницей; он нужен, когда в коде файла нельзя разместить элемент, например у PDF.
| Яндекс | ||
|---|---|---|
Элемент link в коде страницы | добавляется в код неканонической страницы | в раздел head каждой копии (head - начало кода страницы со служебными данными); принимается только там |
HTTP-заголовок Link | пример с PDF-файлом, доступным по двум адресам | подходит для любых документов, в том числе PDF; только полные адреса; по словам Google, поддерживается только для веб-поиска |
| Вид адреса | полный адрес (с протоколом и доменом) в пределах одного домена | полные адреса; относительные (без домена) поддерживаются, но не рекомендуются |
| Карта сайта (sitemap) | в справке Яндекса как способ указать канонический адрес не описана | возможна, но сигнал слабее, чем у rel="canonical" |
Пример из справки Яндекса. Страница доступна по адресам www.example.com/pages?id=2 и www.example.com/blog, а предпочитаемый адрес - /blog. Тогда в код страницы /pages?id=2 добавляют элемент link с двумя атрибутами: rel со значением canonical и href с полным адресом основной страницы.
rel="canonical" href="http://www.example.com/blog"Для файла, который доступен по нескольким адресам, сервер должен передавать заголовок. Пример для PDF из справки Яндекса:
Link: <http://www.example.com/offer/file.pdf>; rel="canonical"Если вы работаете в конструкторе или готовой системе управления сайтом, поле для этого элемента часто есть в настройках SEO страницы или в плагине. Проверьте результат в исходном коде страницы.
Страница, на которой стоит rel="canonical" с адресом другой страницы, считается неканонической. По справке Яндекса, если указание принято, такая страница пропадёт из результатов поиска. На саму каноническую страницу Google советует тоже добавить такой элемент, указывающий на неё саму. Яндекс считает это допустимым: если атрибут указывает на ту же страницу, робот посчитает её канонической.
Google принимает элемент только в head, поэтому мы советуем ставить его именно туда. В справке Яндекса про head ничего не сказано.
Как поставить и проверить: по шагам
Найдите дубли
В Яндекс Вебмастере откройте «Индексирование», затем «Страницы в поиске» и «Исключённые страницы». Фильтр со статусом «Удалено: Дубль» покажет страницы, которые робот уже объединил с другими. Если дубли появились из-за GET-параметров (части адреса после знака «?»), об этом придёт уведомление на странице «Диагностика сайта». В Google Search Console похожие данные есть в отчёте об индексировании страниц.Выберите основной адрес для каждой группы
Яндекс советует ориентироваться на удобство посетителей. Например, для раздела с похожими товарами подойдёт страница каталога, с которой посетитель сможет перейти к остальным.Выберите способ
Если лишние адреса пользователям не нужны, мы советуем постоянный редирект (сравнение способов - в следующем разделе). Если страницы должны остаться доступными, ставьтеrel="canonical". Для файлов вроде PDF используйте HTTP-заголовок.Укажите один полный адрес
Адрес должен включать протокол и домен и вести на страницу того же сайта. Для одной страницы указывайте один канонический адрес и не стройте цепочки, где канонический адрес сам ссылается на другой.Согласуйте остальные сигналы
Google просит не указывать разные URL в качестве канонических разными способами: например, в карте сайта один адрес, а в атрибуте другой. Для Google внутренние ссылки на сайте тоже должны вести на канонические адреса. Мы советуем сверить с выбранным адресом ссылки в меню и содержимое карты сайта (см. статью про sitemap.xml).Подождите обхода и проверьте
Робот узнаёт об изменениях при обходе сайта. Сроки и места проверки описаны в разделе «Как проверить результат».
Когда canonical не сработает
Яндекс перечисляет случаи, когда он не учтёт канонический адрес:
- неканонические страницы на момент обхода полнее отвечают на запрос пользователя, и их контент существенно отличается от канонических;
- канонический адрес недоступен роботу: перенаправляет на другую страницу или закрыт от индексирования. Тогда вместо него в поиске может участвовать неканоническая страница, если она доступна роботу;
- указан адрес в другом домене или поддомене;
- указано несколько канонических адресов;
- указана цепочка: для
example.com/1канонический адресexample.com/2, а дляexample.com/2указанexample.com/3.
Эти пять случаев описаны в справке Яндекса. Google в справке Search Console пишет, что дублирующая страница должна быть похожа на каноническую, а если указанный URL не похож на текущую страницу, Google его не выберет. Об остальных ситуациях (адрес с редиректом, закрытая страница, несколько адресов) в документах Google прямых правил нет. Мы советуем не создавать их и для Google.
Если страницу, на которую ведёт rel="canonical", закрыть директивой в файле robots.txt (он задаёт правила обхода сайта роботами) или метатегом, Яндекс не сможет её учесть. О том, как устроены правила обхода, читайте в статье как составить robots.txt.
Canonical, редирект или Clean-param: что выбрать
Не для каждого вида дублей подходит rel="canonical". Ниже сводка по справке Яндекса. Clean-param - директива в файле robots.txt, которая велит роботу не учитывать указанные параметры в адресах.
| Ситуация | Что советует Яндекс |
|---|---|
| Контент доступен на разных URL | редирект с кодом 301 (постоянный переход; в поиске останется цель редиректа), либо канонический адрес, либо запрет Disallow в robots.txt |
Дубль главной, например / и /index.php | редирект 301 или канонический адрес |
| Адрес со слешем (косой чертой в конце) и без | редирект 301; rel="canonical" в этом случае не рекомендуется, он может игнорироваться |
| Переезд с HTTP на HTTPS | редирект 301 или 302; Яндекс пишет, что rel="canonical" для таких переездов больше не поддерживается |
Смена адреса на домен с www или без | rel="canonical" на каждой странице старого сайта, ведущий на аналогичную страницу нового, воспринимается как переход на новый главный адрес; для надёжности Яндекс советует редирект |
| Адреса различаются GET-параметрами или метками UTM (метки рекламных кампаний) | директива Clean-param в robots.txt; если файл менять нельзя - канонический адрес. Большинство UTM-меток Яндекс удаляет автоматически |
Google в рекомендациях ставит редирект первым в списке способов и называет его явным признаком, но оговаривает: постоянный редирект подходит, только если вы решили прекратить показ копии страницы. Элемент rel="canonical" Google тоже называет явным признаком. Подробнее о выборе между 301 и 302 читайте в статье про редиректы 301 и 302.
Теперь о закрытии дублей от индексации. Яндекс допускает Disallow или метатег noindex (запрет индексирования, который ставят в код страницы) для страниц-дублей. Google для выбора канонической страницы использовать noindex не рекомендует: страница будет полностью заблокирована в поиске. Не рекомендует он и robots.txt для этой цели: Google может индексировать URL, запрещённые в robots.txt, без их контента.
Как проверить результат
В Яндекс Вебмастере. Откройте «Индексирование», «Страницы в поиске», блок «Исключённые страницы». Дубль там отображается со статусом «Дубль» (в выгрузке архива - DUPLICATE). Статус «Неканоническая» (NOT_CANONICAL в выгрузке) значит, что страница проиндексирована по каноническому адресу, указанному в атрибуте rel="canonical". Если адрес указан неверно, атрибут нужно исправить или удалить: робот отследит изменения автоматически.
Сроки. По справке Яндекса, страница, которая не должна участвовать в поиске, исключается в течение трёх недель после посещения сайта роботом, а на больших сайтах процесс дольше. Отдельного срока именно для учёта canonical в справке нет.
В Google Search Console. Откройте инструмент проверки URL и раздел «Индексирование страниц»: там есть поле «Каноническая страница, выбранная Google» и поле со страницей, которую указали вы. Google оговаривает, что эти данные берутся из результатов индексирования; проверка опубликованной версии страницы каноническую страницу не показывает. В отчёте об индексировании два похожих статуса означают разное:
- «Страница является копией. Канонический вариант не выбран пользователем»: Google не показывает копии страниц, и это не считается ошибкой. Если он выбрал неверную страницу, отметьте правильную как каноническую.
- «Страница является копией. Канонические версии страницы, выбранные Google и пользователем, не совпадают»: вы указали один URL, а Google считает, что другой больше подходит. Проиндексирована страница, выбранная Google; сверьте содержимое двух страниц и сигналы, о которых шла речь выше.
Google пишет, что после устранения проблем с контентом может удерживать страницы в кластере копий (группе похожих страниц) до двух недель. Срока именно для смены canonical в документах нет.
Частые ошибки
- Указать адрес с редиректом, закрытый от индексации адрес, адрес другого домена или поддомена, несколько адресов или цепочку: все эти случаи Яндекс перечисляет как не учитываемые.
- Использовать относительный адрес вместо полного. Яндекс просит полный путь, Google относительный не рекомендует.
- Указать фрагмент после знака «#»: Google, как правило, фрагменты URL не поддерживает.
- Задавать разные канонические адреса разными способами: в
link, в заголовке и в карте сайта. - Вести внутренние ссылки на дубли, хотя канонический адрес уже выбран (по требованию Google ссылки должны вести на канонические адреса).
- Менять элемент скриптом на странице. Google не рекомендует так делать и советует задавать его в исходном HTML. Если без скрипта не обойтись, значение должно совпадать с тем, что в HTML, а других таких элементов на странице быть не должно. У Яндекса про скрипты в этом контексте в справке не сказано.
- Ставить
rel="canonical"вместо редиректа при переезде на HTTPS: Яндекс пишет, что для такого случая атрибут больше не поддерживается. - Ждать результата сразу. Яндекс называет срок до трёх недель после обхода для исключения дубля, Google - до двух недель для пересмотра кластера копий.
С чего продолжить
Когда основные адреса выбраны, проверьте остальное, что влияет на обход: файл robots.txt, карту сайта и редиректы. Общую картину работ над сайтом описывает обзор SEO-продвижения.
О Head Promo
Head Promo - агентство поискового маркетинга. Подробнее об услуге - на странице SEO-продвижения на нашем сайте.
Хотите, чтобы специалисты посмотрели ваш сайт?
Получить бесплатный экспресс-аудитЧастые вопросы
Частые вопросы
Источники
- Яндекс Вебмастер. Канонический адрес страницы: https://yandex.ru/support/webmaster/ru/robot-workings/canonical
- Яндекс Вебмастер. Дублирование страниц: https://yandex.ru/support/webmaster/ru/robot-workings/double
- Яндекс Вебмастер. Страницы в поиске: https://yandex.ru/support/webmaster/ru/service/searchable
- Google Search Central. Как указать канонический URL с помощью rel="canonical" и другими способами: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Google Search Central. Что такое нормализация URL: https://developers.google.com/search/docs/crawling-indexing/canonicalization
- Google Search Central. Как решить проблемы с нормализацией страниц: https://developers.google.com/search/docs/crawling-indexing/canonicalization-troubleshooting
- Google Search Central. Основы поисковой оптимизации сайтов на JavaScript: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Справка Search Console. Отчёт об индексировании страниц: https://support.google.com/webmasters/answer/7440203
- Справка Search Console. Инструмент проверки URL: https://support.google.com/webmasters/answer/9012289
- Head Promo: https://head-promo.ru/