Hreflang для международного SEO

Hreflang для международного SEO
ГеннадийВедущий SEO-специалист, Seo-Gen
SEO продвижение30.10.202615 мин.
Материал подготовлен командой Seo-Gen

Когда сайт работает с несколькими языками или странами, одной переведённой версии страниц недостаточно. Поисковой системе нужно сообщить, какие URL относятся к одной группе и для какой аудитории предназначена каждая версия.

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

Что такое hreflang и зачем он нужен для международного SEO?

Hreflang используют на мультиязычных и мультирегиональных сайтах, где один материал, категория, товар или услуга имеют несколько локальных версий. Например, интернет-магазин может иметь украинскую страницу для Украины, польскую для Польши и английскую для пользователей из других стран.

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

Как Google использует hreflang?

Google рассматривает hreflang как связь между альтернативными версиями одной страницы. Если пользователь ищет товар на английском языке из Великобритании, поисковая система может выбрать URL с en-GB, а для пользователя из США использовать страницу с en-US.

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

Когда hreflang действительно нужен?

Разметка нужна, если один проект обслуживает несколько языков или рынков. Типичный случай – мультиязычный сайт, где один и тот же раздел доступен на украинском, английском, польском и немецком языках.

Hreflang также нужен, когда язык одинаковый, а рынки разные. Например, страницы для США и Великобритании могут быть написаны на английском, но отличаться валютой, доставкой, ценами, условиями покупки и локальной семантикой.

Основные сценарии применения:

  • сайт полностью переведён на несколько языков, а каждой исходной странице соответствует несколько локализованных URL;
  • один язык используется для разных стран, но коммерческие условия, контакты или ассортимент отличаются;
  • отдельные языковые версии размещены на разных доменах, поддоменах или в подпапках;
  • международный интернет-магазин использует разные валюты, доставку и цены для каждого рынка;
  • часть контента переведена, а часть страниц остаётся общей для нескольких стран.

Hreflang следует ставить между эквивалентными страницами. Не стоит связывать через него разные услуги, товары или статьи только потому, что они посвящены похожей теме.

Когда hreflang не нужен?

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

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

Ответы на ваши вопросы

Как писать hreflang правильно?

Hreflang указывают через <link rel="alternate">, где отдельно задают язык или язык с регионом и полный адрес соответствующей страницы. Например:

<link rel="alternate" hreflang="uk" href="https://example.com/uk/page/" />.

Каждая локализованная страница должна содержать собственный URL и ссылки на остальные версии. Между страницами необходимо сохранить взаимные связи, иначе часть разметки может быть проигнорирована поисковой системой.

Что означает параметр hreflang?

Параметр hreflang сообщает, для какого языка или сочетания языка и региона предназначен альтернативный URL. Например, en означает английский язык без региональной привязки, а en-US – английский для пользователей из США.

Язык указывается первым, регион добавляется при необходимости. Для украинской версии используют uk, поскольку UA относится к коду страны и не является языковым кодом.

Где нужно размещать hreflang?

Для HTML-страниц теги обычно размещают внутри <head>. Также Google поддерживает передачу тех же данных через HTTP headers и XML Sitemap.

Эти способы считаются равнозначными для Google Search. Выбирать следует тот вариант, которым проще управлять на конкретном сайте, а не дублировать одну разметку во всех трёх местах.

Нужно ли добавлять hreflang на текущую страницу?

Да, текущая страница должна быть включена в собственную группу hreflang. Например, украинский URL указывает на украинскую, английскую и польскую версии, включая ссылку на самого себя.

То же правило действует для остальных локализаций. Такой self-reference входит в рекомендации Google для всех способов внедрения.

Чем hreflang отличается от canonical?

Hreflang связывает языковые и региональные варианты одной страницы. Canonical используется для выбора предпочтительного URL среди одинаковых или очень похожих страниц.

Если локализованные версии должны индексироваться отдельно, обычно каждая из них имеет собственный canonical. Отправлять canonical всех языков на один URL без причины не следует.

Что такое hreflang x-default?

x-default обозначает резервный вариант страницы для пользователей, которым не соответствует другая языковая или региональная версия. Чаще всего это глобальная главная страница либо экран выбора страны.

Google рекомендует использовать это значение для fallback-сценариев. Добавлять x-default во все группы без реальной резервной страницы необязательно.

Какой hreflang использовать для украинского языка?

Для украинского языка используется значение uk. Например:

<link rel="alternate" hreflang="uk" href="https://example.com/uk/" />.

Значение ua использовать вместо языка нельзя. Код страны и код языка решают разные задачи, поэтому украинскую языковую версию обозначают именно через uk.

Можно ли использовать hreflang для разных доменов?

Да, альтернативные версии могут находиться на разных доменах. Например, одна страница может располагаться на основном международном домене, а другая – на отдельном национальном.

Главное условие сохраняется: URL должны входить в одну логическую группу и ссылаться друг на друга. Google прямо указывает, что альтернативным страницам необязательно находиться в пределах одного домена.

Как писать hreflang правильно?

Как писать hreflang правильно?

Чтобы понять, как писать hreflang, достаточно разобрать базовую строку разметки. В HTML она выглядит так:

<link rel="alternate" hreflang="uk" href="https://example.com/uk/page/" />

Такой тег сообщает поисковой системе, что указанный URL является украинской альтернативной версией текущей страницы. В разметке одновременно используются rel, параметр hreflang и адрес страницы в href.

Из каких параметров состоит тег hreflang?

Каждая строка содержит три основных элемента. rel="alternate" указывает на альтернативную версию документа, hreflang задаёт язык или сочетание языка и региона, а href содержит полный адрес соответствующей страницы.

Пример для нескольких локализаций:

<link rel="alternate" hreflang="uk" href="https://example.com/uk/service/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/service/" />
<link rel="alternate" hreflang="pl" href="https://example.com/pl/service/" />

Для href лучше использовать абсолютный URL с протоколом и доменом. Google прямо требует полностью квалифицированные адреса для альтернативных версий.

Что означает rel="alternate"?

Значение alternate показывает, что ссылка ведёт на альтернативный вариант текущего документа. В связке с hreflang поисковик понимает, что речь идёт о языковой или региональной версии страницы.

Каждая локализованная версия должна содержать свой набор таких ссылок. Если на сайте есть украинская, английская и польская страницы одной услуги, все три URL должны быть связаны между собой.

Что означает параметр hreflang?

Значение hreflang определяет язык, а при необходимости ещё и регион. Например, hreflang="en" означает английский язык независимо от страны, а hreflang="en-GB" уточняет, что страница предназначена для англоязычной аудитории Великобритании.

Первым всегда идёт код языка. Код страны можно добавить вторым через дефис, но использовать страну без языка нельзя. Google поддерживает языковые коды ISO 639-1 и региональные коды ISO 3166-1 Alpha-2.

Что указывается в href?

В href записывают абсолютный URL соответствующей языковой или региональной версии. Лучше указывать конечный адрес, который сразу отвечает кодом 200 и не проходит через цепочку редиректов.

Например:

href="https://example.com/en/catalog/"

Вариант /en/catalog/ для hreflang использовать не следует. Полный адрес упрощает обработку разметки и исключает неоднозначность при работе с несколькими доменами.

Как указывать язык и страну в hreflang?

Как указывать язык и страну в hreflang?

При базовой локализации достаточно указать язык. Если одной языковой версии соответствует несколько разных рынков, к языку можно добавить регион.

Такой подход особенно полезен для стран, где используется один язык, но различаются цены, валюта, ассортимент, контакты или правила доставки.

Коды языков ISO 639-1

Для языка используют двухбуквенный код стандарта ISO 639-1. Для украинской версии нужен uk, для английской – en, для польской – pl, для немецкой – de.

ЯзыкЗначение hreflang
Украинскийuk
Английскийen
Польскийpl
Немецкийde
Французскийfr

Частая ошибка украинских сайтов – значение ua. UA является кодом страны, а код украинского языка в hreflang – uk.

Коды регионов ISO 3166-1 Alpha-2

Если страницу нужно связать с конкретным рынком, после языка добавляют код региона. Например, en-US относится к английскому языку для США, а en-GB – к английской версии для Великобритании.

HreflangНазначение
en-USанглийский для США
en-GBанглийский для Великобритании
de-DEнемецкий для Германии
fr-CAфранцузский для Канады
pl-PLпольский для Польши

Код региона пишут после языка через дефис. Самостоятельное значение вроде US, GB или UA не соответствует формату hreflang.

Нужно ли всегда указывать регион?

Нет, во многих случаях достаточно общего языкового кода. Если английская страница подходит пользователям из разных стран, значение en будет логичнее, чем привязка к одному рынку.

При наличии нескольких региональных версий можно добавить общую страницу для остальных пользователей этого языка. Например, вместе с en-US, en-GB и en-CA может использоваться вариант en без привязки к стране. Google рекомендует такой подход для географически неуказанной аудитории одного языка.

Что такое x-default в hreflang?

x-default задаёт резервный URL для пользователей, которым не подходит ни одна из явно указанных языковых или региональных версий. Чаще всего его ставят на глобальную главную страницу или страницу выбора страны и языка.

Пример:

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

Такой URL можно использовать как fallback, если сайт не имеет локализации для языка пользователя. Google рекомендует x-default для подобных сценариев, но не требует добавлять его в каждую группу hreflang.

Когда использовать x-default?

Практический вариант – международный магазин с украинской, польской, немецкой и английской версиями. Пользователь с языком, для которого отдельной страницы нет, может попадать на общий международный раздел или экран выбора страны.

x-default также подходит для глобальной главной страницы, где посетитель самостоятельно выбирает регион. Его не следует воспринимать как замену общей языковой версии, если такая страница уже предусмотрена структурой сайта.

Как настроить hreflang на сайте?

Как настроить hreflang на сайте?

Google поддерживает три способа передачи информации об альтернативных страницах: HTML, HTTP headers и XML Sitemap. С точки зрения поисковой системы эти методы равнозначны, поэтому дублировать одну группу одновременно во всех трёх местах ради усиления сигнала не требуется.

Выбор зависит от архитектуры проекта. Обычному корпоративному сайту часто подходит HTML, для PDF удобнее HTTP headers, а крупному магазину с десятками тысяч локализованных URL может быть проще управлять группами через sitemap.

Hreflang в HTML-коде страницы

Теги добавляют внутрь корректного <head>. Каждая версия страницы должна содержать весь набор альтернатив, включая ссылку на саму себя.

<link rel="alternate" hreflang="uk" href="https://example.com/uk/service/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/service/" />
<link rel="alternate" hreflang="pl" href="https://example.com/pl/service/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/service/" />

Если таких языков много, объём блока заметно увеличивается. Поэтому на крупных проектах иногда удобнее хранить связи централизованно в XML Sitemap.

Hreflang через HTTP headers

HTTP-заголовки подходят для документов, у которых нет HTML <head>. Типичный пример – PDF-файл, который опубликован в нескольких языковых версиях.

Пример:

Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/de/file.pdf>; rel="alternate"; hreflang="de"

Принцип остаётся тем же: каждая версия должна входить в группу, а URLs должны быть полными. Этот способ обычно требует контроля на уровне сервера или приложения.

Hreflang в XML Sitemap

На больших сайтах альтернативные URL можно указать в XML Sitemap. Для каждого основного адреса внутри <url> добавляют xhtml:link со всеми версиями.

<url>
  <loc>https://example.com/en/service/</loc>
  <xhtml:link rel="alternate"
              hreflang="en"
              href="https://example.com/en/service/" />
  <xhtml:link rel="alternate"
              hreflang="uk"
              href="https://example.com/uk/service/" />
</url>

Такой вариант удобен, когда генерация карты сайта уже связана с базой страниц и локализаций. Главное – обновлять sitemap вместе с URL, иначе после миграции или удаления страниц в ней останутся старые связи.

Какой способ реализации hreflang выбрать?

Для стандартного сайта проще начать с HTML. Если проект содержит большое количество языков или миллионы URL, XML Sitemap может снизить объём технической разметки внутри каждой страницы.

МетодКогда подходитПреимуществоЧто учитывать
HTMLобычные сайтылегко проверить в кодеблок растёт с количеством языков
HTTP headersPDF и другие не-HTML файлыработает без <head>нужен серверный контроль
XML Sitemapкрупные проектыцентрализованное управлениенужно синхронизировать карту с URL

Одновременно внедрять все три метода без технической необходимости не стоит. Чем больше источников генерируют hreflang, тем выше риск, что после обновления сайта они начнут расходиться.

Какие правила hreflang нельзя нарушать?

Какие правила hreflang нельзя нарушать?

Рабочая разметка строится как целая группа, а не как отдельная ссылка с одной страницы на другую. Для каждой локализации нужно проверить собственную ссылку, обратные связи, доступность URL и отсутствие противоречий с другими SEO-тегами.

На практике большая часть ошибок появляется после миграций, изменений структуры или запуска нового языка. Поэтому hreflang стоит проверять одновременно с canonical, HTTP status и индексируемостью страниц.

Каждая страница должна ссылаться сама на себя

Украинская страница должна содержать hreflang="uk" со своим адресом, английская – hreflang="en" со своим. При этом каждая из них также перечисляет остальные версии группы.

Google прямо указывает, что языковая версия должна перечислять саму себя и другие альтернативы. Такая self-referencing hreflang помогает сохранить однозначную структуру группы.

Hreflang должен быть взаимным

Если украинский URL содержит ссылку на английский, английский URL должен ссылаться обратно на украинский. Такие обратные ссылки часто называют return links или reciprocal links.

Google проверяет эту взаимность. Если две страницы не ссылаются друг на друга, соответствующие аннотации могут быть проигнорированы.

Графическая схема группы:

Украинская версия ←→ Английская версия
        ↕                   ↕
        └────→ Польская ←───┘

Каждая страница участвует в одной группе и содержит собственный URL. При добавлении новой локализации связи нужно обновить на всех соответствующих страницах.

Все hreflang должны вести на рабочие индексируемые URL

Альтернативная версия должна быть доступной для обхода и индексации. Если ссылка ведёт на удалённую страницу, редирект, закрытый URL или документ с noindex, структура становится противоречивой.

При аудите группы проверяют HTTP 200, meta robots, доступность для Googlebot, конечный URL и отсутствие лишних перенаправлений. Дополнительно стоит проверить, соответствует ли содержимое страницы заявленному языку.

Как hreflang должен работать вместе с canonical?

Canonical и hreflang выполняют разные задачи. Canonical помогает определить предпочтительный URL среди дублей, а hreflang связывает локализованные варианты, которые должны оставаться доступными в поиске.

Для полноценной украинской, английской и польской версии обычно используют self-canonical на каждой странице. Ошибка возникает, когда все локализации canonical-ссылкой отправляют на одну языковую страницу, хотя должны индексироваться отдельно.

Ведущий SEO-специалист — Геннадий

Я проверяю hreflang как группу связанных URL, а не как отдельный тег в исходном коде. Чаще всего синтаксис написан правильно, но одна версия отсутствует, обратная ссылка потеряна после миграции или canonical указывает на другой язык. Поэтому при аудите я всегда смотрю одновременно hreflang, canonical, HTTP-коды, индексируемость и соответствие страниц друг другу.

Hreflang и структура международного сайта

Hreflang и структура международного сайта

Разметка не требует единственного формата URL. Языковые версии могут находиться в подпапках, поддоменах или на отдельных национальных доменах, если такая структура соответствует задачам проекта.

Выбор архитектуры делают отдельно от hreflang. После этого для каждой группы страниц создают понятное соответствие между всеми языковыми и региональными вариантами.

Подпапки, поддомены или отдельные домены?

Распространённые варианты выглядят так:

СтруктураПример
Подпапкаexample.com/uk/
Поддоменuk.example.com
Отдельный доменexample.ua

Hreflang способен связывать все эти форматы. Google не требует, чтобы альтернативные URL располагались на одном домене.

Для SEO важнее стабильная структура, корректная индексация и единая логика формирования локализованных страниц. Если URL меняются, вместе с ними нужно обновлять hreflang и canonical.

Почему перевод и локализация – не одно и то же?

Перевод меняет язык текста, а локализация учитывает особенности конкретного рынка. На коммерческом сайте могут отличаться валюта, цены, единицы измерения, контактные данные, доставка, способы оплаты и юридическая информация.

Поэтому две страницы на английском языке могут иметь разные региональные версии. Например, одна предназначена для США, а другая для Великобритании, хотя большая часть текста у них остаётся похожей.

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

Большинство проблем связано не со сложностью синтаксиса, а с несогласованностью URL. Один неправильный адрес внутри большой группы способен нарушить связи сразу между несколькими локализациями.

Удобнее проверять ошибки таблицей, особенно при массовом аудите интернет-магазина или сайта с десятками языков.

ОшибкаПочему возникаетКак исправить
ua вместо ukпутают страну и языкиспользовать uk
только US или GBуказан регион без языкаписать en-US, en-GB
нет обратной ссылкиверсии обновлены не одновременновосстановить reciprocal link
отсутствует self-referenceтекущий URL исключён из группыдобавить собственную версию
ссылка ведёт на 404URL удалён или изменёнзаменить рабочим адресом
ссылка ведёт через 301остался старый URLуказать конечную страницу
URL закрыт noindexконфликт настроек индексациипроверить назначение страницы
canonical ведёт на другой языкневерная шаблонная логиканастроить canonical для локальной версии

После миграции такие ошибки особенно часты. Старые URL остаются в шаблоне или sitemap, хотя сами страницы уже перенаправляются на новую структуру.

Как проверить hreflang на сайте?

Как проверить hreflang на сайте?

Сначала можно открыть исходный HTML и найти rel="alternate". Для небольшой группы этого достаточно, чтобы проверить коды, полный набор локализаций и собственную ссылку страницы.

Для крупного проекта ручной проверки недостаточно. Нужен SEO-краулер, который соберёт hreflang со всех индексируемых URL и покажет отсутствие return links, неверные языковые коды, ссылки на редиректы и другие технические расхождения.

Проверка всех языковых URL

Для каждой группы следует проверить одинаковый набор параметров. Такой подход удобнее разовых исправлений отдельных тегов, потому что показывает целостность международной структуры.

Минимальный список проверки:

  • каждая языковая версия присутствует в группе и содержит self-referencing ссылку;
  • между альтернативными URL настроены взаимные связи без пропущенных страниц;
  • используются корректные языковые и региональные коды;
  • все адреса полностью указаны и отвечают кодом 200;
  • canonical не конфликтует с локализованной версией;
  • страницы доступны поисковому роботу и не закрыты от индексации;
  • x-default ведёт на подходящую резервную страницу, если он используется.

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

Когда проводить повторную проверку?

Аудит нужен после запуска нового языка, миграции, изменения slug, перехода на другую CMS или массовой перестройки каталога. Любая операция, которая меняет адреса страниц, способна оставить старые URL в hreflang.

Также стоит повторять проверку после изменений шаблонов и генераторов sitemap. На крупных сайтах разметка обычно создаётся автоматически, поэтому одна ошибка в логике может затронуть тысячи страниц одновременно.

Пример правильного hreflang для мультиязычного сайта

Допустим, страница услуги существует на украинском, английском и польском языках. Для пользователей без подходящей локализации сайт использует общую страницу выбора языка.

В <head> каждой из трёх локализованных страниц будет находиться одинаковый набор:

<link rel="alternate" hreflang="uk"
      href="https://example.com/uk/seo/" />
<link rel="alternate" hreflang="en"
      href="https://example.com/en/seo/" />
<link rel="alternate" hreflang="pl"
      href="https://example.com/pl/seo/" />
<link rel="alternate" hreflang="x-default"
      href="https://example.com/" />

Украинская страница содержит ссылку на себя и остальные версии. То же правило применяется к английскому и польскому URL, поэтому связи внутри группы остаются взаимными.

Чек-лист настройки hreflang

Чек-лист настройки hreflang

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

ПроверкаТребование
Языковой кодISO 639-1
РегионISO 3166-1 Alpha-2
URLполный адрес с протоколом
Self-referenceприсутствует
Return linkприсутствует
HTTP status200
Indexabilityразрешена
Canonicalне конфликтует
x-defaultдобавлен при необходимости
Локализациисоответствуют друг другу

После проверки одной страницы нужно пройти остальные URL группы. Исправление только исходной версии не решает проблему, если альтернативные страницы продолжают отдавать старый набор hreflang.

Корректный hreflang строится вокруг четырёх вещей: правильных языковых кодов, полной группы альтернативных URL, взаимных ссылок и отсутствия конфликтов с canonical и индексированием. Если эти правила заложены в шаблон сайта, новые языки можно добавлять без ручной правки каждой страницы.

Для международного проекта разметку стоит проверять после миграций, запуска новых регионов и изменения структуры URL. Если на сайте уже есть несколько языковых версий, технический SEO-аудит hreflang поможет найти пропущенные связи, устаревшие адреса и ошибки шаблонной генерации до того, как они затронут большой раздел сайта.