Техаудит и индексация

Настроить hreflang для мультиязычных сайтов

Бонус

Зачем настраивать hreflang

Hreflang — это HTML-атрибут, который указывает поисковым системам, какая языковая или региональная версия страницы предназначена для какой аудитории. Если сайт существует на нескольких языках или ориентирован на разные страны, hreflang помогает поисковику показать пользователю правильную версию: немцу — немецкую, французу — французскую, русскоязычному пользователю из Украины — украинскую версию на русском языке.

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

Яндекс поддерживает hreflang и учитывает его при определении региональности страницы. Google (ограничен в РФ с 2022 года, но по-прежнему релевантен для международных проектов) активно использует hreflang для определения языковых версий и таргетинга по странам.

Если ваш сайт существует только на одном языке и ориентирован на одну страну — hreflang вам не нужен. Эта инструкция для мультиязычных сайтов или сайтов, нацеленных на несколько регионов/стран.

Пошаговая инструкция

Шаг 1. Определите, нужен ли hreflang вашему сайту

Hreflang нужен в следующих случаях:

  • Сайт на нескольких языках: ru/en/de/fr — каждая страница существует в нескольких языковых версиях.
  • Сайт для нескольких стран на одном языке: например, русскоязычный сайт для России (ru-RU) и русскоязычный для Казахстана (ru-KZ) — контент похож, но цены, контакты, условия доставки различаются.
  • Комбинация: сайт на русском для России, на русском для Казахстана, на английском для всех остальных.

Hreflang НЕ нужен, если:

  • Сайт только на одном языке для одной страны.
  • Разные языковые версии находятся на разных доменах, не связанных между собой.
  • Контент на разных языках не является переводом друг друга — это разные сайты.

Шаг 2. Разберитесь с форматом hreflang

Атрибут hreflang указывается в формате языкового кода ISO 639-1 (двухбуквенный) и опционально — кода страны ISO 3166-1 Alpha-2:

  • ru — русский язык (любая страна).
  • en — английский язык (любая страна).
  • ru-RU — русский язык, Россия.
  • ru-KZ — русский язык, Казахстан.
  • en-US — английский язык, США.
  • en-GB — английский язык, Великобритания.
  • de-AT — немецкий язык, Австрия.

Важно: код языка в нижнем регистре, код страны — в верхнем. Разделитель — дефис. Использовать код страны без языка нельзя: hreflang="RU" — ошибка.

Шаг 3. Добавьте hreflang-теги на страницы

Есть три способа указать hreflang. Выберите один — не нужно использовать все три одновременно.

Способ 1: HTML-тег link в head (рекомендуемый).

На каждой странице в <head> добавьте теги для всех языковых версий этой страницы, включая текущую:

<link rel="alternate" hreflang="ru" href="https://site.ru/uslugi/" />
<link rel="alternate" hreflang="en" href="https://site.ru/en/services/" />
<link rel="alternate" hreflang="de" href="https://site.ru/de/dienstleistungen/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/en/services/" />

Этот набор тегов должен быть одинаковым на всех трёх версиях страницы (русской, английской, немецкой).

Способ 2: HTTP-заголовок Link.

Для страниц, где невозможно добавить HTML (PDF-файлы, документы):

Link: <https://site.ru/uslugi/>; rel="alternate"; hreflang="ru",
      <https://site.ru/en/services/>; rel="alternate"; hreflang="en",
      <https://site.ru/en/services/>; rel="alternate"; hreflang="x-default"

Способ 3: XML-sitemap.

Для крупных сайтов с тысячами страниц — указать hreflang в sitemap.xml. Формат:

<url>
  <loc>https://site.ru/uslugi/</loc>
  <xhtml:link rel="alternate" hreflang="ru" href="https://site.ru/uslugi/" />
  <xhtml:link rel="alternate" hreflang="en" href="https://site.ru/en/services/" />
  <xhtml:link rel="alternate" hreflang="x-default" href="https://site.ru/en/services/" />
</url>

Для WordPress рекомендую способ 1 (HTML-теги) — он проще в реализации и отладке.

Шаг 4. Настройте x-default

Тег hreflang="x-default" указывает версию страницы для пользователей, которые не попадают ни под одну из указанных языково-региональных пар. Это страница-по-умолчанию.

Обычно x-default указывают на:

  • Английскую версию (если сайт международный).
  • Страницу выбора языка/региона (если такая есть).
  • Основную языковую версию сайта.

X-default не обязателен, но настоятельно рекомендован. Без него поисковик сам решит, какую версию показать пользователю из неопределённого региона — и может угадать неправильно.

Шаг 5. Настройте hreflang в WordPress через плагин

Если сайт на WordPress и мультиязычность реализована через плагин, hreflang обычно настраивается автоматически.

WPML (WordPress Multilingual Plugin):

  1. Перейдите в «WPML» → «Языки» → «Настройки SEO».
  2. Убедитесь, что опция «Генерировать hreflang-теги» включена.
  3. WPML автоматически добавит hreflang для всех переведённых страниц, включая x-default.
  4. Проверьте, что все страницы переведены — если у страницы нет перевода, hreflang для этого языка не будет создан.

Polylang:

  1. Polylang добавляет hreflang автоматически для связанных переводов.
  2. Перейдите в «Языки» → «Настройки» и убедитесь, что языки настроены с правильными кодами.
  3. Для каждой записи/страницы свяжите переводы через интерфейс Polylang в редакторе.
  4. X-default по умолчанию указывает на основной язык. Можно изменить через фильтр pll_the_languages.

Без мультиязычного плагина (ручная реализация):

Если мультиязычность реализована на уровне подпапок (/en/, /de/) или субдоменов (en.site.ru) без плагина, добавьте hreflang-теги через functions.php или custom-плагин. Каждая пара «оригинал — перевод» должна быть связана в коде.

Шаг 6. Проверьте обязательные правила hreflang

Hreflang работает только при соблюдении строгих правил:

  • Двустороннее подтверждение (взаимность). Если страница A указывает hreflang на страницу B, то страница B обязана указывать hreflang обратно на страницу A. Без взаимного подтверждения тег будет проигнорирован.
  • Самоссылка обязательна. Каждая страница должна указывать hreflang на саму себя. Русская версия должна содержать hreflang="ru" со ссылкой на себя.
  • Абсолютные URL. В href используйте полные URL с протоколом: https://site.ru/uslugi/, а не /uslugi/.
  • Каноничные URL. Hreflang должен указывать на каноничный URL страницы (тот же, что в теге canonical). Если canonical и hreflang указывают на разные URL — конфликт, и теги будут проигнорированы.
  • Корректные коды языков. Используйте только валидные ISO-коды. ua — неправильно (это код страны), правильно: uk (украинский язык) или ru-UA (русский язык для Украины).

Шаг 7. Валидируйте hreflang

После настройки обязательно проверьте корректность тегов:

  • Screaming Frog: просканируйте сайт, перейдите на вкладку «Hreflang». Здесь отображаются все hreflang-теги, найденные на сайте, а также ошибки: отсутствие самоссылок, невзаимные ссылки, неканоничные URL, неправильные языковые коды.
  • Hreflang Tags Testing Tool (technicalseo.com/tools/hreflang/) — онлайн-инструмент для быстрой проверки hreflang на отдельной странице.
  • Ручная проверка: откройте исходный код страницы (Ctrl+U) и найдите теги rel="alternate" hreflang. Убедитесь, что набор тегов одинаков на всех языковых версиях.

Проверяйте не только главную страницу, но и внутренние: услуги, статьи, категории. Ошибки часто возникают на конкретных страницах, а не глобально.

Шаг 8. Настройте структуру URL для языковых версий

Для мультиязычных сайтов есть три подхода к организации URL:

  • Подпапки (рекомендую): site.ru/en/, site.ru/de/. Весь ссылочный вес на одном домене, простота управления, стандартный подход.
  • Субдомены: en.site.ru, de.site.ru. Технически каждый субдомен — отдельный сайт для поисковика. Ссылочный вес не наследуется. Не рекомендую без весомых причин.
  • Отдельные домены: site.com, site.de, site.fr. Максимальный региональный таргетинг, но максимальная сложность управления и развития каждого домена с нуля.

Для большинства бизнесов в России и СНГ подпапки — оптимальный вариант. Один домен, один SSL-сертификат, один ссылочный профиль, простое управление через WordPress с плагином мультиязычности.

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

  • Отсутствие взаимности. Страница на русском ссылается на английскую, но английская не ссылается обратно. Поисковик игнорирует такой hreflang. Обе стороны должны подтверждать связь — это фундаментальное требование.
  • Забытая самоссылка. Каждая страница должна включать hreflang-тег на саму себя. Без самоссылки набор тегов считается неполным и может быть проигнорирован.
  • Неправильные языковые коды. Частые ошибки: ua вместо uk для украинского языка, jp вместо ja для японского, cz вместо cs для чешского. Проверяйте коды по стандарту ISO 639-1.
  • Hreflang на неканоничный URL. Если canonical указывает на https://site.ru/uslugi/, а hreflang — на http://site.ru/uslugi/ (без https), поисковик увидит конфликт. URL в hreflang и canonical должны совпадать.
  • Отсутствие x-default. Без x-default поисковик не знает, какую версию показать пользователям из стран, не покрытых вашими hreflang-тегами. Добавляйте x-default всегда.
  • Ссылки на несуществующие страницы. Hreflang указывает на URL, который отдаёт 404 или редиректит. Все URL в hreflang-тегах должны быть живыми и возвращать код 200.
  • Путать hreflang с geo-таргетингом. Hreflang не заменяет настройку региона в Яндекс Вебмастере или таргетинга в GSC. Это дополнительный сигнал, а не единственный инструмент регионального SEO.
  • Добавлять hreflang для непереведённых страниц. Если статья существует только на русском — не нужно создавать hreflang-тег для английской версии, которой нет. Hreflang указывается только для реально существующих переводов.

Что проверить в итоге

  • На каждой странице присутствуют hreflang-теги для всех языковых версий этой конкретной страницы, включая самоссылку.
  • Тег hreflang="x-default" указан и ведёт на основную или англоязычную версию.
  • Соблюдена взаимность: если страница A ссылается на B, то B ссылается на A.
  • Все URL в hreflang-тегах абсолютные, с корректным протоколом (https).
  • URL в hreflang совпадают с URL в canonical-тегах.
  • Языковые коды соответствуют стандарту ISO 639-1, региональные — ISO 3166-1 Alpha-2.
  • Все URL из hreflang-тегов возвращают код 200, ни один не ведёт на 404 или редирект.
  • Screaming Frog на вкладке «Hreflang» не показывает ошибок: нет невзаимных ссылок, отсутствующих самоссылок, неканоничных URL.
  • В Яндекс Вебмастере и GSC нет предупреждений о проблемах с hreflang.
  • Для непереведённых страниц hreflang-теги отсутствуют — нет ссылок на несуществующие версии.

Нужна помощь с внедрением?

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

Обсудить проект

Кто ведёт проект

Александр Тригуб — частный SEO-специалист. В поисковом маркетинге с 2010 года, предприниматель с 2001-го. В SEO пришёл из собственного бизнеса — знаю, как устроены продажи не из учебников, а из собственной выручки и расходов.

  • Специализация: медицина, B2B, e-commerce и локальные услуги — ниши, где каждый лид стоит дорого.
  • Подтверждённый опыт: 500+ видео-аудитов в разных тематиках, 1092 заказа (рейтинг 4.9 / 5). Отзывы · Видео-аудиты.
  • Профили с отзывами: 728 отзывов на Kwork (4.9★) · Profi.ru (5.0★) · ORCID 0009-0009-0106-6136.
  • Формат: работаю напрямую, один специалист на проект — без менеджеров и субподрядных цепочек.
  • Отчётность: KPI по лидам и деньгам. Ежемесячный план/факт, а не PDF на 50 страниц.
15+лет в маркетинге
500+видео-аудитов
1092заказов
4.9★728 отзывов