Тег hreflang: синтаксис, правила и частые ошибки
Что такое теги hreflang, зачем они многоязычному сайту, точный синтаксис, x-default, как они работают вместе с canonical и какие ошибки заставляют Google их игнорировать.
Обновлено 24 сентября 2026 г. · 5 мин чтения
Сайт переведён, все языки открываются. Но Google упорно отправляет русскоязычных посетителей на английские страницы или индексирует только один язык. Обычно причина — отсутствующий или сломанный hreflang.
В этом руководстве — что делает hreflang, по каким правилам работает и какие ошибки заставляют Google его игнорировать. Чтобы проверять свой сайт по ходу чтения, воспользуйтесь нашей бесплатной проверкой мультиязычного SEO.
Что такое hreflang
hreflang — это атрибут тега <link>, который сообщает поисковикам: «эта страница есть и на других языках, вот по этим адресам». Тогда Google показывает каждому пользователю версию на его языке и считает версии одной группой, а не конкурирующими страницами.
Типичный блок, который размещается в <head> каждой языковой версии:
<link rel="alternate" hreflang="en" href="https://example.com/en/pricing/" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/pricing/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />
hreflang — сильный сигнал, а не команда. Нарушите одно правило — и его проигнорируют.
Зачем он нужен
Без hreflang обычно происходит три вещи:
- В поиске показывается не тот язык. Посетитель из Германии попадает на русскую страницу, ничего не понимает и уходит.
- Версии склеиваются. Google может сгруппировать почти одинаковые страницы и показывать только одну, так что остальные языки теряют видимость.
- Новые рынки остаются незаметными. Конкуренты с правильной настройкой забирают позиции, ради которых вы переводили сайт.
Отдельно про Яндекс: он тоже поддерживает hreflang, так что правильная разметка работает для обеих поисковых систем.
Правила
Взаимность
Если английская страница ссылается на русскую, русская должна ссылаться обратно на английскую. Иначе Google отбрасывает эту пару. Самое простое решение — выводить одинаковый блок на каждой версии.
Полные адреса
Всегда указывайте полный адрес с протоколом и доменом: https://example.com/ru/, а не /ru/. Он должен точно совпадать с рабочими адресами, включая https и www.
Ссылка на себя
Каждая страница включает в блок саму себя: русская страница указывает hreflang="ru" со своим собственным адресом.
Корректные коды ISO
Язык — это код ISO 639-1 (en, ru, de), по желанию с дефисом и регионом по ISO 3166-1 (ru-RU, ru-KZ, en-GB). Один только регион недопустим. Самые частые ошибки:
| Неверно | Верно |
|---|---|
en-UK | en-GB |
ua | uk (украинский, а не Великобритания) |
by | be (белорусский) |
kz | kk (казахский) или ru-KZ (русский для Казахстана) |
jp | ja |
cn | zh или zh-CN |
ru_RU | ru-RU (дефис, а не подчёркивание) |
С неверным кодом этот тег просто отбрасывается. Путаница кодов стран и языков (ua, by, kz) особенно часто встречается на русскоязычных сайтах.
x-default
x-default говорит Google, какую страницу показывать, если ни один из ваших языков не подходит пользователю. Это не строго обязательно, но без него Google будет угадывать. Добавьте его в блок на каждой языковой версии, как и остальные строки.
Три способа внедрить hreflang
- В
<head>HTML. Самый распространённый способ, его проще всего проверить. - В XML-карте сайта (sitemap). Каждый
<url>перечисляет свои альтернативы элементамиxhtml:link. Удобно для больших сайтов: всё в одном файле. - В HTTP-заголовке
Link. Для файлов не в HTML, например PDF, где нет<head>.
Выберите один способ. Смешивать можно, но если они противоречат друг другу, сигналы конфликтуют.
hreflang и canonical
Именно здесь ломается большинство многоязычных сайтов. Canonical говорит: «это предпочтительный адрес этой страницы». Hreflang говорит: «эти другие адреса — та же страница на других языках». Это ответы на разные вопросы.
Правило: у каждой языковой версии canonical указывает на неё саму.
<!-- На странице https://example.com/ru/pricing/ -->
<link rel="canonical" href="https://example.com/ru/pricing/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/pricing/" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />
Если canonical русской страницы указывает на английскую, Google считает русскую страницу дублем, следует canonical и игнорирует hreflang. Переводы — не дублированный контент, поэтому canonical на другой язык ничего не защищает.
Не забудьте html lang
Атрибут <html lang="ru"> указывает язык самой страницы. Он не заменяет hreflang, но должен совпадать с кодом, который вы используете для этой страницы в блоке. Русская страница с lang="en" посылает противоречивые сигналы.
Типичные ошибки
- Нет обратных ссылок между некоторыми парами языков.
- Относительные адреса или адреса, которые перенаправляют или отдают 404.
- canonical на исходный язык на каждой переведённой странице.
- hreflang на сайте, где все языки живут по одному адресу (переключение через JavaScript или
?lang=). Указывать просто не на что.
Как проверить свой hreflang
Откройте переведённую страницу, посмотрите исходный код (Ctrl+U или Cmd+Option+U) и найдите hreflang и canonical. Затем откройте один из указанных адресов и убедитесь, что он ссылается обратно.
Уже после нескольких страниц это становится долго. Быстрее прогнать страницу через нашу бесплатную проверку мультиязычного SEO. Она проверяет hreflang в head, HTTP-заголовке и sitemap (коды, полные адреса, ссылку на себя, x-default, дубли), сверяет его с html lang, проверяет canonical и открывает до шести языковых версий, чтобы убедиться, что они загружаются, ссылаются обратно и указывают свой язык. Всё, что выходит за рамки hreflang, — в нашем чек-листе аудита мультиязычного SEO.
Как Lantis работает с hreflang
Прописывать hreflang вручную на сайте из 50 страниц на четырёх языках — значит поддерживать в синхронном состоянии сотни тегов. Lantis отдаёт каждый язык по отдельному адресу (папка вроде /ru/) и автоматически добавляет hreflang для каждого языка и x-default, правильный html lang и canonical на саму страницу — на Framer, Webflow, WordPress, Shopify или любом сайте одной строкой кода. Переводит ИИ, есть визуальный редактор и глоссарий.
Стоимость — от €3 в месяц за язык (€2,50 начиная с двух языков, €2 с десяти), первые 100 переводов бесплатно и без карты. Во Framer установите плагин Lantis. Пошаговые руководства: Framer и Webflow.
Частые вопросы
hreflang — это фактор ранжирования?
Не напрямую. Он определяет, какую языковую версию Google показывает каждому пользователю, а это повышает кликабельность на каждом рынке и не даёт версиям склеиваться.
Нужен ли x-default?
Очень желательно. Без него Google приходится угадывать, что показывать людям, чей язык вы не поддерживаете. Направьте его на основной язык или страницу выбора языка.
Использовать ru-RU или просто ru?
Используйте ru, если у вас одна русская версия для всех. Регионы вроде ru-RU и ru-KZ добавляйте, только если для каждой страны есть отдельная версия, например с разными ценами или условиями доставки.
Также на других языках English · Français · Deutsch · Italiano · Português · हिन्दी · 日本語 · 한국어 · Türkçe · Bahasa Indonesia · العربية