Руководство

Ошибки hreflang, которые ломают международное SEO

Почти все сломанные настройки hreflang объясняются десятью ошибками, и большинство из них не подаёт признаков. Разбираем, как заметить и исправить каждую.

Автор: Редакция WebDoctor·30 июля 2026·5 мин чтения


Большинство проблем с hreflang сводится к десяти ошибкам: нет обратных ссылок, нет ссылки на саму себя, неверные коды языка или региона, относительные URL, указание на неканонические страницы, отсутствующий x-default, смешение способов внедрения, частичное покрытие, заблокированные альтернативные версии и попытка лечить с помощью hreflang дублирующийся контент. У каждой — понятный симптом и конкретное исправление.

Что hreflang делает на самом деле

hreflang сообщает поисковым системам, какую языковую или региональную версию страницы показать конкретному пользователю. Он подменяет URL в результатах — и больше ничего. Это не буст ранжирования. Страница с безупречной разметкой всё равно должна заслужить свою позицию сама.

Как выглядит корректный набор hreflang

Три версии — английская, испанская и запасная — записанные как элементы link в head каждой из этих страниц:

<link rel="alternate" hreflang="en" href="https://example.com/page/">
<link rel="alternate" hreflang="es" href="https://example.com/es/pagina/">
<link rel="alternate" hreflang="x-default" href="https://example.com/page/">

То же отношение, выраженное в XML-карте сайта, где urlset обязан объявить пространство имён xhtml:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/page/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/page/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/pagina/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page/"/>
  </url>
</urlset>

Испанская страница несёт точно такой же набор. Эта симметрия и есть весь механизм, а большинство ошибок ниже — способы её нарушить.

1. Нет обратных ссылок

Любое отношение hreflang двунаправленно. Если A указывает на B, то B обязана указывать в ответ на A, иначе аннотация считается неподтверждённой и игнорируется. Симптом: версии никогда не подменяются в выдаче, а Search Console сообщает об отсутствии обратных тегов. Исправление: генерируйте один и тот же полный набор для каждой страницы группы, а не односторонний список.

2. Нет ссылки на саму себя

Каждая страница обязана содержать запись hreflang для собственного URL. Без неё набор неполон, а системы отбрасывают наборы, которые не сходятся. Исправление: добавьте самоссылку — тогда группа из трёх языков несёт три записи на всех трёх страницах.

3. Неверные коды языка и региона

Значение языка должно быть кодом ISO 639-1, а необязательный регион — кодом ISO 3166-1 Alpha 2. Регион никогда не может стоять сам по себе. Три классические ошибки: en-UK вместо en-GB; путаница между zh-CN (китайский в Китае) и zh-Hans (это субтег письменности, а не региона); изобретение языка из названия страны — например, uk для Британии, тогда как это украинский. Некорректные значения отбрасываются без предупреждения.

4. Относительные URL

Значения hreflang должны быть полными абсолютными URL, включая протокол. Значение вида /es/pagina/ недопустимо, и запись пропускается. Симптом: аннотации, которые выглядят правильно в вашем шаблоне, но нигде не регистрируются. Исправление: всегда выводите https://example.com/es/pagina/ — то же правило действует для значений loc в карте сайта.

5. Ссылки на неканонические, редиректящие или закрытые noindex URL

hreflang и canonical обязаны не противоречить друг другу. Canonical каждой страницы указывает на неё саму, а каждое значение hreflang — на канонический URL другой версии. Аннотация URL, который редиректит, канонизируется на другой адрес или закрыт noindex, отправляет противоречивые инструкции, и конфликт обычно разрешается отбрасыванием ваших аннотаций. Исправление: убедитесь, что каждый URL в группе отдаёт 200, индексируется и канонизируется сам на себя.

6. Отсутствующий или неправильно использованный x-default

x-default отмечает запасной вариант для пользователей, чей язык вы не покрываете: страницу выбора языка, глобальную посадочную страницу или вашу основную версию. Симптом: посетители из непокрытых локалей попадают на произвольную версию. Исправление: назначьте один настоящий запасной вариант и повторите его по всей группе.

7. Смешение способов внедрения

Есть три допустимых места для hreflang: элементы link в HTML-head, HTTP-заголовки Link и аннотации xhtml:link в XML-карте сайта. Работает любой из них. Проблемы начинаются, когда сайт наполовину реализует два: в head перечислены два языка, а в карте сайта — четыре. Выберите один способ и доведите его до полноты.

8. Разметка только главной страницы

hreflang — сигнал уровня страницы, а не настройка уровня сайта. Разметка главной ничего не даёт 500 карточкам товаров под ней. Симптом: для каждого рынка верная главная, а страницы глубже — не на том языке. Исправление: сопоставьте каждой странице её настоящие эквиваленты, а там, где эквивалента нет, лучше не указывать этот язык вовсе, чем ссылаться на приблизительное соответствие.

9. Блокировка альтернативной версии, из-за которой её нельзя обойти

Отношение подтверждается, только если обе страницы доступны для загрузки. Запрет языковой папки в robots.txt или гео-редиректы, отбрасывающие краулеров, ломают проверку обратной ссылки. Исправление: держите каждый аннотированный URL доступным для обхода и достижимым без редиректа.

10. Ожидание, что hreflang решит проблему дублей

hreflang управляет региональными и языковыми вариантами. Он не устраняет почти одинаковые страницы и не заменяет теги canonical. Две почти идентичные английские страницы — одна для США, другая для Австралии — по-прежнему конкурируют друг с другом; hreflang лишь говорит, для какого рынка предназначена каждая. Настоящим дублям нужна канонизация или объединение.

Какой способ внедрения выбрать

СпособКогда подходитГлавный минус
Элементы link в headHTML-страницы, немного языков, сайты на шаблонахРазметка растёт как квадрат числа языков и грузится при каждом открытии страницы
HTTP-заголовок LinkФайлы не в HTML, например PDF, где нет head, который можно правитьНе виден в исходном коде, требует настройки сервера или CDN, легко потерять при переезде
xhtml:link в XML-карте сайтаБольшие сайты и много языков; оставляет разметку страниц лёгкойСложнее проверить выборочно, а карта сайта обязана оставаться валидной и актуальной, иначе устаревает весь набор

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

Как убедиться, что hreflang работает

Проверяйте в обе стороны. Запросите страницу A, прочитайте её набор аннотаций, затем запросите каждый названный в нём URL и убедитесь, что все перечисляют тот же набор, включая себя. Исходный код покрывает HTML-способ, заголовки ответа — второй, карта сайта — третий. Любая асимметрия и есть ошибка.

Там, где Search Console предлагает для вашего ресурса отчёт по международному таргетингу, он перечисляет ошибки hreflang — отсутствующие обратные теги, неизвестные коды языка, — и это самый быстрый способ увидеть проблемы в масштабе. Отчёт отстаёт от ваших выкладок, поэтому относитесь к нему как ко второму мнению. О нижележащих сбоях на уровне обхода — редиректах, 404 и блокировках в robots.txt, которые кладут наборы аннотаций, — читайте руководство по ошибкам карты сайта.

hreflangмеждународное SEO

Frequently asked questions

Нужен ли hreflang, если сайт только на одном языке?
Нет. Сайту на одном языке с единственной версией каждой страницы нечего подменять. hreflang начинает окупаться только тогда, когда вы публикуете один и тот же контент для разных языков или регионов и хотите, чтобы поисковые системы отдавали каждой аудитории нужную версию.
Допустимо ли значение en-UK?
Нет. Языковая часть использует ISO 639-1, а региональная — ISO 3166-1 Alpha 2, где Великобритании соответствует GB. Пишите en-GB. Некорректные коды отбрасываются молча, поэтому аннотация вроде бы присутствует в исходном коде, но никогда не срабатывает.
Улучшает ли hreflang позиции в выдаче?
Напрямую — нет. Он меняет то, какой URL показан, а не то, насколько высоко этот URL ранжируется. Но косвенный выигрыш реален: пользователи, попадающие на версию на своём языке, реже уходят и лучше конвертируются, а вы перестаёте конкурировать с собственными региональными страницами.
Что будет, если не указать x-default?
Ничего не сломается. Поисковые системы сами подставят версию, которую сочтут ближайшей для пользователей вне перечисленных вами локалей. x-default позволяет принять это решение самостоятельно — указать на страницу выбора языка или на главную глобальную страницу, а не оставлять всё на волю случая.
Можно ли использовать hreflang и canonical на одной странице?
Да, и нужно. Canonical каждой версии указывает на неё саму, а hreflang — на остальные версии. Ошибка — канонизировать все языковые версии на один URL: это говорит системам, что остальные индексировать не нужно, и отменяет ваши аннотации.

Запустить проверку

Читайте также