Например, ошибки в формате языкового кода или неполные ссылки могут привести к тому, что поисковые системы не смогут правильно распознать язык или регион страницы, что даже может вызвать конкуренцию между мультиязычными страницами за трафик и упущение целевой аудитории.
В этой статье, с практической технической точки зрения, собраны 7 наиболее распространённых ошибок в настройке hreflang. Рекомендуется регулярно проверять их с помощью инструментов, чтобы избежать снижения эффективности глобальной SEO-оптимизации из-за мелких ошибок.

Ошибки в формате языкового или регионального кода
Например, использование заглавных букв (например, EN-US
) или опечатки (например, написание zh-CN
как zh-CH
) могут помешать поисковым системам правильно распознать целевой регион страницы или даже привести к игнорированию метки как недействительной.
Даже если код кажется правильным (например, использование es-ES
вместо es
), избыточная информация может усложнить логику сопоставления.
Влияние может быть значительным — например, поисковый трафик из Испании может быть ошибочно направлен на португалоязычную страницу.
Правила кодов по стандарту ISO
- Код языка: необходимо использовать строчные буквы в соответствии со стандартом ISO 639-1 (например,
en
, es
, zh
), только двухбуквенные сокращения. - Код региона: необязателен, используется в соответствии со стандартом ISO 3166-1 заглавными буквами (например,
US
, GB
, CN
), указываются только коды стран или регионов. - Комбинированный формат: язык и регион разделяются дефисом, например,
en-US
(американский английский), zh-CN
(упрощённый китайский).
Исключения:
- При указании только языкового кода (например,
fr
) страница предназначена для всех пользователей, говорящих на этом языке, без ограничения по региону. - Для традиционного китайского следует использовать
zh-Hant
(традиционный китайский) или zh-Hant-TW
(традиционный китайский для Тайваня), а не zh-TW
, чтобы избежать неправильного восприятия как упрощённого китайского в Тайване.
Типичные ошибки и их последствия
Ошибка 1: путаница с регистрами букв
- Примеры ошибок:
EN-us
(код языка заглавными, код региона строчными), Zh-cn
(первая буква языка заглавная). - Последствия: поисковые системы могут полностью игнорировать такой тег, страница не будет соответствовать целевой аудитории.
Ошибка 2: опечатки или вымышленные коды
- Примеры ошибок:
pt-BZ
(правильный код Бразилии — BR
), eu
(баскский язык как eu
, но некоторые поисковые системы могут не поддерживать редкие языки). - Последствия: редкие языки или некорректные коды могут помешать правильной индексации и привести к потере трафика на страницы по умолчанию.
Ошибка 3: избыточные или некорректные комбинации
- Примеры ошибок:
es-ES
(испанский + Испания, обычно достаточно es
), en-US-UK
(некорректное объединение нескольких регионов). - Последствия: избыточные коды могут сбить поисковики с толку, предпочтение отдается более простым страницам-конкурентам.
Рекомендуемые инструменты и способы проверки
- Google Hreflang Testing Tool: Введите URL для проверки корректности разметки (необходимо использовать вместе с Search Console).
- Screaming Frog: Сканирование сайта, фильтрация hreflang-тегов и массовый экспорт ошибок (поддерживается в платной версии).
- Hreflang Validator (сторонний инструмент): Бесплатная онлайн-проверка с подсветкой ошибок в формате и конфликтующих ссылок.
Практические шаги для исправления
Проверьте текущие коды: Для сайтов на WordPress можно использовать плагины (например, Yoast SEO) или напрямую просмотреть исходный код страницы, чтобы найти тег <link rel="alternate" hreflang="..." />
.
Массовая замена неправильных кодов:
- Если вы используете многоязычный плагин (например, WPML), напрямую измените формат “языкового кода” в настройках языка.
- При ручном редактировании убедитесь, что формат на всех страницах一致ен (например, глобально заменить
EN
на en
).
Добавление регионального кода (по желанию):
- Добавляйте только в случае необходимости регионального разделения (например,
en-GB
для пользователей из Великобритании), в остальных случаях используйте только языковой код (например, fr
).
Повторная проверка:Используйте инструменты для повторной проверки, чтобы убедиться, что исправленные страницы возвращают код состояния 200 и не содержат ошибок при сканировании.
Неиспользование полного абсолютного URL
Многие владельцы сайтов ошибочно считают, что относительные пути (например, /de/page
) или опущение протокола (например, example.com/de
) упрощают настройку, но это может привести к серьёзным проблемам.
Например, если страница доступна по протоколам http
и https
, отсутствие протокола может привести к тому, что поисковые системы воспримут их как разные страницы, что приведет к распылению ссылочного веса.
Кроме того, если сайт использует субдомены или вложенные каталоги, отсутствие единообразного использования абсолютных URL может вызвать путаницу в определении пути и сделать теги hreflang неэффективными (например, смешивание URL для мобильной и настольной версий сайта).
Определение и необходимость абсолютного URL
Абсолютный URL должен включать протокол (http://
или https://
), полное доменное имя и путь (например, https://www.example.com/de/page
).
Почему это важно:
- Поисковым системам нужно четко различать страницы. Относительный путь (например,
/de/page
) может быть воспринят как любая версия сайта (http или https), что приведет к дублированию контента. - При использовании субдоменов или вложенных директорий отсутствие абсолютного URL может привести к неправильному определению принадлежности страниц (например,
de.example.com/page
и www.example.com/de/page
могут восприниматься как разные страницы).
Типичные проблемные случаи:
- Страницы доступны как по HTTP, так и по HTTPS, но в hreflang отсутствует указание протокола, что приводит к распылению ссылочного веса.
- Контент общий для мобильной и десктопной версии, но структура URL различается (например,
m.example.com/de
и example.com/de
), при этом нет абсолютных URL для их связи.
Распространенные ошибки и их последствия
Ошибка 1: Относительный путь или отсутствие протокола
Неверные примеры:
<link hreflang="de" href="/de/page" />
(относительный путь)<link hreflang="es" href="www.example.com/es/page" />
(без https://
)
Последствия:
- Поисковики могут воспринять
/de/page
как http://example.com/de/page
, хотя реальная страница доступна только по HTTPS, в результате чего тег hreflang не сработает. - Версии HTTP и HTTPS будут восприниматься как разные страницы, что приведет к дублированию контента и распылению ссылочного веса.
Ошибка 2: Несогласованность субдоменов
- Неверный пример: основной сайт использует
https://example.com/fr/page
, а французская подстраница — другой URL.
https://fr.example.com/page
не указывает на абсолютные URL-адреса в связанных hreflang.Последствия: Поисковые системы не могут связать поддомен с основными страницами сайта, что может привести к перенаправлению франкоязычных пользователей на страницу по умолчанию.Ошибка 3: Нестандартизированные динамические параметры
- Пример ошибки:
<link hreflang="ja" href="https://example.com/page?lang=ja" />
(с параметрами отслеживания) - Последствия: Поисковые системы могут считать такие страницы разными (например,
?lang=ja
и ?lang=ja&utm=ads
), что приведет к неполному охвату hreflang.
Методы проверки с помощью инструментов
- Google Search Console:
Проверьте в отчете по охвату наличие ошибок “дублированные страницы” или “отсутствие hreflang”, чтобы найти неполные URL. - Screaming Frog:
После сканирования сайта отфильтруйте теги hreflang
и проверьте, являются ли все атрибуты href
абсолютными URL (фильтр: //example.com
или /path
). - Sitebulb:
В отчете по международному SEO-аудиту автоматически указываются “неполные hreflang URL” с рекомендациями по исправлению.
Решения и практические шаги
CMS-системы (например, WordPress):
Настройка плагинов:
Если вы используете плагины вроде Yoast SEO, включите опцию “Создавать абсолютные URL” в настройках мультиязычности (обычно нужно отключить “относительные пути”).
Массовая замена в базе данных:
С помощью SQL-команд или плагинов (например, Better Search Replace) замените href="/
на href="https://www.example.com/
.
Ручная правка кода:
В HTML или серверной логике убедитесь, что все ссылки hreflang используют полные URL, например:
Настройки сервера:
- Принудительная стандартизация протокола: с помощью
.htaccess
или конфигурации Nginx автоматически перенаправляйте http
на https
, чтобы избежать смешанного контента. - Канонизация URL: установите 301 редирект между разными вариантами одного пути (например,
/de
и /de/
) для обеспечения единственного абсолютного URL.
Отсутствие самоссылочной hreflang-метки
Например, если французская страница содержит ссылки только на английскую и испанскую версии, но не включает hreflang="fr"
, указывающий на саму себя,
поисковая система может не распознать язык страницы, что приведет к её неправильной классификации для пользователей, говорящих на французском.
Роль и необходимость самоссылочного тега hreflang
Самоссылочный тег означает, что страница должна указывать hreflang-ссылку на саму себя (например, французская страница должна включать <link rel="alternate" hreflang="fr" href="ссылка на саму страницу"/>
).
Основные функции:
- Четко указывает поисковым системам язык и регион страницы, предотвращая ошибки при определении контента.
- Формирует замкнутую сеть между всеми языковыми версиями, обеспечивая правильное распределение SEO-веса между страницами.
Последствия отсутствия:
- Поисковые системы могут воспринять страницу как «язык не указан» и автоматически отнести её в основную языковую директорию, что приведёт к потере целевого трафика.
- В условиях конкуренции между разными языками (например, если страницы на английском и испанском не ссылаются сами на себя), может возникнуть проблема внутреннего дублирования контента.
Частые ошибки и разбор случаев
Ошибка 1: Неверное использование hreflang на одностраничном сайте
- Сценарий: Страница имеет только одну языковую версию, но добавлены hreflang-ссылки на несуществующие версии на других языках.
- Пример последствий: Страница англоязычного сайта добавляет
hreflang="en"
на саму себя и ошибочно добавляет hreflang="es"
на несуществующую испанскую страницу, что приводит к путанице в поисковых системах.
Ошибка 2: Ошибки в настройках мультиязычного плагина
- Пример сценария: При использовании плагина WPML не активирована опция «Автоматически добавлять самоссылки hreflang».
- Последствия: В результирующих тегах указаны только ссылки на другие языковые версии, отсутствует ссылка на текущую страницу.
Ошибка 3: Неполная загрузка тегов на динамических страницах
- Пример сценария: На страницах, рендерящихся через JavaScript (например, React/Vue), теги hreflang не добавляются корректно в секцию
<head>
. - Последствия: Поисковые роботы могут не распознать динамически сгенерированные самоссылки hreflang.
Инструменты и методы проверки
Шаг 1: Ручная проверка исходного кода
- Откройте исходный код страницы с помощью
Ctrl+U
, найдите hreflang="xx"
и проверьте наличие тега, указывающего на текущий URL (где xx — языковой код страницы).
Шаг 2: Проверка через Google Search Console
- Вставьте URL страницы в инструмент «Проверка URL», затем откройте отчёт «Международное таргетирование» — если появится сообщение «Отсутствует самоссылка hreflang», значит проблема есть.
Шаг 3: Использование инструмента Hreflang Validator
- Введите URL страницы — инструмент покажет все hreflang-ссылки, а отсутствующие самоссылки будут отмечены красным предупреждением.
Решения и пошаговые инструкции
Исправление в CMS (на примере WordPress):
Настройка плагинов:
- Если используете Yoast SEO: включите опцию «Добавлять самоссылки hreflang» в расширенных настройках.
- Если используете WPML: перейдите в «Настройки языка» → «SEO-параметры» и активируйте «Включить самоссылки».
Ручное исправление (для статических сайтов или пользовательского кода):
Добавьте следующий код в секцию <head>
(пример для страницы на французском языке):
Исправление динамически отображаемых страниц (например, React):
В логике серверного рендеринга (SSR) динамически создаётся тег ссылки на текущий язык страницы:
Принцип замкнутой связи и его важность
Основное правило hreflang — все связанные страницы должны ссылаться друг на друга, чтобы образовать полную замкнутую связь. Например:
- Немецкая страница (
de
) должна ссылаться на английскую (en
), французскую (fr
) и другие языковые версии; - Английская и французская страницы также должны ссылаться обратно на немецкую.
Почему это важно:
- Передача SEO веса: Замкнутые связи помогают поисковым системам понять, что страницы на разных языках являются равнозначными, предотвращая размывание веса.
- Предотвращение дублирования контента: При односторонних ссылках (например, английская страница ссылается на немецкую, но та не ссылается обратно) поисковые системы могут расценить их как независимые страницы и наложить санкции за дублированный контент.
Исключения:
- Страницы на одном языке (например, только на английском) не требуют замкнутой связи, но должна быть ссылка на саму себя.
- Региональные версии (например,
en-US
и en-GB
) должны ссылаться друг на друга, но не обязаны связываться с другими языками.
Распространённые случаи разрыва связей и их последствия
Сценарий 1: Добавлена новая языковая версия без обновления старых страниц
- Пример: На новостном сайте добавлена японская страница (
ja
), но на старых английских и китайских страницах отсутствуют hreflang-ссылки на японскую страницу. - Последствия: Японская страница становится “изолированной”, поисковые системы индексируют только связанные страницы на других языках.
Сценарий 2: Ошибка в логике CMS-плагина
- Пример: Плагин для многоязычности WordPress (например, Polylang) при массовом создании страниц не добавляет новые языковые ссылки в старый контент автоматически.
- Последствия: Частично нарушаются связи между страницами, пользователи не могут переключиться на новые языковые версии со старого контента.
Сценарий 3: Динамические параметры нарушают связь
- Пример: URL испанской страницы содержит параметры (например,
?lang=es
), но на других страницах эти параметры в hreflang не указаны. - Последствия: Поисковые системы рассматривают такую страницу как несвязанную с другими языковыми версиями.
Инструменты для проверки и методы диагностики
Инструмент 1: Screaming Frog
- После сканирования перейдите на вкладку “Hreflang”, отфильтруйте “Missing Reciprocal Links” (отсутствующие обратные ссылки).
- Действие: Экспортируйте список ошибок и определите группы URL, не образующие замкнутой связи.
Инструмент 2: Sitebulb
- В отчёте “Международный SEO-аудит” проверьте предупреждение “Unreciprocated hreflang links” (недостающие обратные hreflang-ссылки), чтобы сразу увидеть разорванные страницы и отсутствующие языковые версии.
Инструмент 3: DeepCrawl
- Настройте собственные правила для мониторинга связей между многоязычными страницами и получайте автоматические отчёты о новых разрывах каждую неделю.
Решения и практические шаги
Решение 1: Массовая корректировка через CMS-плагин (например, Shopify)
В настройках многоязычного плагина (например, Langify) включите опцию “Автоматически связывать все языковые версии”.
В разделе «Настройки шаблона» убедитесь, что логика тега hreflang включает цикл по всем языковым версиям:
Решение 2: Ручное исправление кода (статический сайт)
Создайте таблицу соответствий для каждой языковой версии (например, в Excel), где перечислены все группы URL, которые нужно связать между собой.
Добавьте теги в страницу согласно этой таблице, например:
Также синхронизируйте hreflang-теги на немецкой и французской страницах, чтобы они содержали ссылки на английскую страницу.
Решение 3: Автоматизация на стороне сервера (например, Nginx)
Динамически генерируйте hreflang-теги с помощью обратного прокси и правил сопоставления:
Конфликт с тегами Canonical
Например, если немецкая страница товара содержит тег Canonical, указывающий на главную английскую страницу, поисковые системы будут считать немецкую страницу копией английской и не будут показывать её немецким пользователям.
Более частая проблема заключается в том, что многие CMS по умолчанию указывают Canonical-тегами все языковые версии на главную страницу (например, x-default
), из-за чего другие языковые версии не индексируются отдельно.
Причина конфликта и правила приоритета
Порядок приоритета обработки тегов hreflang и Canonical поисковыми системами:
Приоритет у Canonical: если страница A указывает тегом Canonical на страницу B, поисковики будут считать A копией B, даже если на A есть hreflang — он будет проигнорирован.
Сценарии, когда hreflang не работает:
- Французская страница указывает Canonical на английскую страницу → французская страница не будет показана пользователям во Франции.
- Все многоязычные страницы имеют общий Canonical на главную страницу → все языковые версии считаются дублированным контентом.
Исключение из правила:
- Если Canonical указывает на саму себя (то есть
<link rel="canonical" href="URL текущей страницы"/>
), hreflang будет работать корректно.
Типичные ошибки и их последствия
Ошибка 1: Конфликт настроек плагинов мультиязычности по умолчанию
- Пример: В плагине Yoast SEO для WordPress по умолчанию канонический тег (Canonical) для многоязычных страниц указывает на страницу на основном языке. Например, для немецкой страницы тег Canonical будет таким:
<link rel="canonical" href="https://example.com/en/page"/>
. - Последствия: Немецкая страница считается дубликатом английской страницы и не отображается в поисковой выдаче на немецком языке, что приводит к потере более 50% трафика.
Ошибка 2: Влияние динамических параметров
- Пример: URL-адреса с параметрами (например,
example.com/page?lang=de
) имеют Canonical-ссылку на версию без параметров (example.com/page
), при этом последняя не настроена с hreflang. - Последствия: Немецкие страницы с параметрами не индексируются, и пользователи видят только страницу на языке по умолчанию.
Ошибка 3: Отсутствие отдельного указания региональных вариантов
- Пример: Страница
en-US
имеет Canonical-ссылку на общую английскую страницу (en
), из-за чего поисковые системы не рассматривают американскую английскую страницу как самостоятельную ценную страницу. - Последствия: Пользователи из США могут быть перенаправлены на страницу
en
(например, британский английский), что ухудшает локализованный опыт.
Инструменты для проверки и методы диагностики
Инструмент 1: Google Search Console
- Откройте отчет “Покрытие”, отфильтруйте вкладку “Исключенные” по категориям “Дубликаты страниц” или “Отправлено, но не индексировано”, чтобы проверить, есть ли проблемы с hreflang из-за конфликтов Canonical.
Инструмент 2: Screaming Frog
- После сканирования сайта отфильтруйте страницы, содержащие одновременно теги hreflang и Canonical, проверьте, указывают ли они на другую страницу (а не на себя).
- Экспортируйте данные и отфильтруйте строки с условием:
Canonical != Self-URL
.
Инструмент 3: DeepCrawl
- Настройте пользовательские правила оповещения, чтобы получать предупреждения при несоответствии между hreflang и Canonical.
Планы исправления и практические шаги
План 1: Корректировка настроек плагина CMS (например, Yoast SEO)
- Перейдите в настройки мультиязычности и отключите опцию “Canonical-ссылка на основную страницу”.
- В расширенных настройках включите опцию “Создавать отдельный Canonical для каждой языковой версии”.
План 2: Ручное исправление кода
Внутри <head>
убедитесь, что Canonical-ссылка указывает на саму страницу, например:
План 3: Серверная настройка (например, Nginx)
Динамическое формирование Canonical-ссылки для текущей языковой версии:
Например, если динамическая страница не загружается полностью из-за тайм-аута сервера, теги hreflang в <head>
могут отсутствовать;
Или если мобильная страница возвращает временный редирект 302 вместо статуса 200, поисковые системы могут игнорировать разметку;
Некоторые правила CDN или файрвола могут блокировать запросы от поисковых роботов, из-за чего страницы на определенных языках не будут доступны.
Например, одна и та же испанская страница может иметь несколько URL с разными параметрами (например, /es/page?ref=facebook
и /es/page?ref=email
), которые поисковики рассматривают как отдельные страницы, что приводит к дублированию контента.