Каноническая ссылка (canonical) для многоязычных сайтов
Правильное использование canonical на мультиязычных сайтах: каждая языковая версия должна указывать на себя, а не на другой язык.
На мультиязычных сайтах каждая языковая версия страницы должна иметь self-referencing canonical (ссылаться на саму себя). Это позволяет сохранить индексацию всех языковых вариантов, а связь между ними обеспечивается через hreflang. Указывать canonical на другую языковую версию — ошибка, которая может привести к деиндексации.
Self-referencing canonical для языковых версий
При использовании hreflang для указания языковых и региональных альтернатив важно, чтобы каждая версия страницы имела canonical-ссылку на саму себя. Это означает, что на https://example.com/en/page должен быть <link rel="canonical" href="https://example.com/en/page" />, а на русской версии — такой же ссылка на русскую. Такой подход сообщает Google, что каждая языковая версия является основным (каноническим) вариантом для своего языка.
Пример правильной реализации
<!-- На https://example.com/en/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />
<!-- На https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/ru/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />Обратите внимание: canonical указывает на ту же страницу, на которой он размещён. hreflang связывает две версии.
Чего делать нельзя
<!-- ОШИБКА: русская версия ссылается на английскую -->
<!-- На https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />Такая конфигурация заставит Google считать, что русская страница — всего лишь дубликат английской. В результате русская версия будет исключена из индекса, и вы потеряете весь трафик из русскоязычного сегмента.
Исключения
Существует всего несколько ситуаций, когда допустимо указать canonical на другую языковую версию:
- Контент полностью идентичен (не переведён) — например, на сайте есть две языковых версии, но для некоторых страниц перевод отсутствует, и они показывают одну и ту же английскую статью. Временное решение — указать canonical на основной язык.
- Временная версия до перевода — вы создали русскую страницу, но она ещё не заполнена. Пока идёт перевод, можно указать canonical на английскую. Но как только перевод готов — canonical должен стать self-referencing.
Как проверить
Вы можете проверить canonical с помощью curl или браузерных инструментов. Например, для русской страницы:
curl -I https://example.com/ru/page | grep -i canonicalОжидаемый вывод: Link: <https://example.com/ru/page>; rel="canonical". Если вы видите другой URL (особенно на другом языке) — это ошибка, которую нужно исправить.
Частые вопросы
Обсудим ваш проект?
Расскажите о целях и сайте — предложу формат работы и следующий шаг.