Блог

Что такое hreflang: полное руководство с примерами ошибок

В этой статье: что такое hreflang, зачем он нужен, как правильно прописать атрибуты для разных структур URL, типичные ошибки и способы их проверить.
Мультиязычный сайт без hreflang — это сайт, который предоставляет Google самому решать какую версию показывать каждой аудитории. Google часто ошибается, и в итоге в поиске будет только одна страница. Правильно настроенный hreflang убирает эту неопределённость.
Это связано с тем, что если страницы на разных языках содержат одно и то же, то Google просто увидит дублирование и будет показывать в поиске только одну из них. Метатеги hreflang позволяют указать язык и регион для каждой страницы, гарантируя, что пользователь увидит нужную версию.

Что такое hreflang и зачем он нужен

hreflang — это HTML-атрибут, который указывает Google какие страницы являются переводами друг друга, и для какого языка и региона предназначена каждая версия.
Без hreflang Google может:
  • Показывать русскую версию пользователям из Германии
  • Считать переводы дублированным контентом
  • Не показывать языковые версии в соответствующих региональных выдачах
С hreflang Google знает: вот страница на немецком для Германии, вот на французском для Франции, вот английская для всех остальных. С его помощью можно задать разные версии для одного языка, но разных регионов. Также можно указать несколько языков для одной страны, например, английский и французский для Канады (en-CA и fr-CA). Это необходимо для правильной локализации: например, в Канаде даже на французском языке цены будут указаны в канадских долларах, тогда как во Франции — в евро. Такое разграничение критически важно для корректного отображения контента пользователям.

Как выглядит hreflang

Атрибут добавляется в секцию <head> каждой страницы:
<link rel="alternate" hreflang="en" href="https://mysite.com/en/about/" />
<link rel="alternate" hreflang="de" href="https://mysite.com/de/about/" />
Ключевые части:
  • rel="alternate" — указывает что это альтернативная версия
  • hreflang="ru" — код языка по ISO 639-1
  • href — полный URL версии (включая протокол и домен)
  • hreflang="x-default" — версия по умолчанию, если ни одна другая не подходит

Коды языков и регионов

Формат атрибута: язык или язык-СТРАНА.
Только язык: hreflang="en" — для всех англоязычных пользователей независимо от страны.
Язык + страна: hreflang="en-US" — для английского языка в США, hreflang="en-GB" — для Великобритании.
Когда использовать страну: если у вас разный контент для одного языка в разных странах. Например, цены в долларах для США и в фунтах для Великобритании — это разные версии и разные hreflang.
Если контент одинаковый для всех носителей языка, достаточно только кода языка без страны.

Взаимность: правило которое нарушают чаще всего

Каждая страница должна содержать hreflang на все языковые версии, включая саму себя. Это критическое правило: если у вас три языка, каждая страница на каждом из них обязана ссылаться на все три версии. Это создает замкнутую экосистему, позволяющую Google видеть все варианты и понимать их взаимосвязь.
Правильно: на русской странице есть ссылки на немецкую, английскую и на саму себя. На немецкой — на русскую, английскую и на саму себя. На английской — на русскую, немецкую и на саму себя.
Неправильно: на русской и немецкой есть ссылки на английскую, но на английской нет ответных ссылок. Google считает такую реализацию некорректной и может игнорировать.
<!-- Пример правильного набора hreflang -->
<link rel="alternate" hreflang="de" href="https://mysite.com/de/about/" />
<link rel="alternate" hreflang="ru" href="https://mysite.com/ru/about/" />
<link rel="alternate" hreflang="en" href="https://mysite.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://mysite.com/en/about/" />

x-default: версия для остальных

hreflang="x-default" — это специальное значение для страницы, которая показывается пользователям когда ни одна другая версия не подходит. Обычно это версия на основном языке сайта (как правило, русская или английская).
Если у вас русская и казахская версии без английской, x-default можно указать на одну из них — или не использовать вовсе. Это не обязательный атрибут, но рекомендованный Google.

Варианты реализации

Помимо тегов в <head>, hreflang можно указать:
Через HTTP-заголовки. Для PDF и других ресурсов, не являющихся HTML-страницами — это единственный вариант.
Через карту сайта. Вместо атрибутов на каждой странице — один sitemap, в который для каждой ссылки добавлены варианты этой же страницы на других языках. Удобно для больших сайтов.
Все три варианта равнозначны для Google — выбирайте тот, который проще поддерживать. Кстати, Multify автоматически добавляет нужные метатеги как в HTML-код страниц, так и в карту сайта.
Не хотите прописывать hreflang вручную?
Multify генерирует hreflang автоматически для всех страниц при добавлении любого языка.
Попробовать бесплатное демо →

Типичные ошибки

По данным исследования Ahrefs (374 756 доменов), 67% сайтов, использующих hreflang, имеют хотя бы одну ошибку реализации.

Ошибка 1: Нет взаимных ссылок

Это самая частая ошибка. Проверьте: каждая страница каждой версии содержит hreflang на все остальные версии? Если нет — поисковые системы могут некорректно интерпретировать структуру вашего сайта.

Ошибка 2: Неправильный URL

hreflang требует абсолютного URL с протоколом: https://mysite.com/en/about/, не /en/about/. Относительные пути не работают.
Также важна согласованность: если canonical URL со слешем в конце (/about/), то и в hreflang должен быть слеш. Если без — без.

Ошибка 3: Несуществующая версия

В hreflang указана ссылка на страницу которой нет. Например, не все товары переведены, но атрибуты прописаны на все. Google обнаружит 404 и заметит несоответствие.
Если какая-то страница не имеет перевода — не указывайте hreflang на несуществующую версию. Лучше вовсе не указывать, чем указать неправильно.

Ошибка 4: Дублирование на одной странице

Два атрибута с одинаковым hreflang на одной странице. Бывает при ручной поддержке разметки или при конфликте плагинов. Google берёт первый, второй игнорирует.

Ошибка 5: Неправильный код языка

hreflang="kk" — правильный код для казахского языка (согласно списку ISO 639-1). Нельзя использовать kz, так как это код региона, а не языка. Аналогично для армянского: hy — правильный код языка, а am — это код региона. Помните, что hreflang требует именно языковые коды, вернее, в отличие от форматов вроде ru-RU, которые могут сбить с толку.

Ошибка 6: hreflang на 301-редиректе

Если страница с hreflang перенаправляет на другую, Google следует редиректу и теряет атрибут. hreflang должен быть на финальной странице, не на промежуточной.

Как проверить

Hreflang Testing Tool. Показывает ошибки: страницы с неверными атрибутами, отсутствующие обратные ссылки. Хороший инструмент, но минус в том, что страницы нужно загружать вручную.
Screaming Frog или Ahrefs. Сканирование всего сайта. Screaming Frog бесплатно сканирует до 500 URL и показывает все hreflang атрибуты с проверкой взаимности.
Помимо инструментов для проверки, важно понимать, что техническое SEO требует комплексного подхода. Оптимизация hreflang — лишь часть работы по настройке мультиязычной структуры сайта.

hreflang и Tilda

Tilda не добавляет hreflang самостоятельно. Варианты по факту ограничены:
Вручную через HTML-блок. Добавить теги <link> в блок с кодом. При изменении структуры сайта обновлять вручную. Не подходит для динамических страниц каталога или блога. Для небольших сайтов — приемлемо.
Через Multify. Прокси генерирует hreflang автоматически для всех страниц всех языковых версий, включая страницы товаров и статьи в блоге. При добавлении языка атрибуты появляются сразу везде. Взаимность соблюдается автоматически.
При ручной поддержке hreflang на сайте с 50 страницами и 3 языками — это 150 наборов атрибутов. Каждое добавление страницы или языка требует обновления во всех версиях. Это то, что автоматизация закрывает полностью.
Добавим hreflang без ручной работы
Попробуйте Multify с автоматической генерацией hreflang при любых изменениях сайта.
Оставить заявку →
2026-04-14 01:35