КлиентЛабОбсудить проект
SEO03.10.2026·обновлено 11.10.2026·15 мин

Hreflang: настройка для мультиязычного сайта в Google и Яндексе

Карта мира в синих, зелёных и жёлтых тонах, многоязычный сайт и hreflang
Фото: Andrew Stutesman, Unsplash
Содержание
  1. Что такое hreflang и какую задачу он решает на самом деле
  2. Главное для рунета: как hreflang работает в Яндексе и чего он там не решает
  3. Как Google выбирает языковую версию: взаимные ссылки, кластер и x-default
  4. Синтаксис: разбираем рабочую разметку строка за строкой
  5. Языковые и региональные коды: где ошибаются чаще всего
  6. Три способа внедрения и как выбрать свой
  7. Какую URL-структуру выбрать: подпапки, поддомены или отдельные домены
  8. Отдельный случай: ru для России, Казахстана и Беларуси
  9. Внедрение на практике: 1С-Битрикс, WordPress, Tilda, Shopify
  10. Hreflang, canonical и noindex: правила совместимости
  11. Частичная локализация и большие каталоги: когда переведено не всё
  12. Георедиректы по IP: почему они ломают индексацию и чем их заменить
  13. Чек-лист аудита: как за час проверить мультиязычный сайт
  14. Топ-10 ошибок из наших аудитов
  15. Инструменты проверки: что смотреть и где
  16. Связка с платным трафиком: Google Ads и Яндекс Директ
  17. Сколько ждать результата и как измерить его в заявках
  18. Частые вопросы
  19. Что сделать на этой неделе

Почти все русскоязычные материалы по hreflang пересказывают справку Google и обходят главный вопрос российского бизнеса: понимает ли этот атрибут Яндекс. Отвечаем сразу: да, Яндекс поддерживает hreflang в HTML-разметке страницы, но не через файл Sitemap, а региональность в выдаче по-прежнему задаётся для хоста целиком.

Статья для экспортёров на Google Ads, компаний с ru/en-версиями и бизнеса с продажами в Казахстан, Беларусь, Узбекистан. Мы ведём SEO и платный трафик с 2012 года, поэтому смотрим на языковые версии как на канал заявок, а не как на красивую разметку в head.

Честное предупреждение: hreflang настройка для мультиязычного сайта не даёт роста трафика. Это страховка от показа неправильной версии. Если путаницы версий нет, задача спокойно подождёт.

Что такое hreflang и какую задачу он решает на самом деле

Hreflang подсказывает поисковику: у страницы есть версии на других языках и для других стран, вот их адреса. Задача ровно одна: немец из поиска попадает на /de/, а не на русскую страницу.

Иллюстрация: одна страница и её языковые версии, к каждой ведёт стрелка от своего сегмента глобуса

Чего hreflang не делает

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

В деньгах эффект выглядит как снижение отказов на входе из поиска и рост конверсии локальных версий. Суммарный трафик может не измениться, вырастет его качество. Без разметки живут сайты с одним языком и одним регионом.

Главное для рунета: как hreflang работает в Яндексе и чего он там не решает

Яндекс поддерживает разметку локализованных страниц: в справке Вебмастера описан элемент link с атрибутами rel="alternate" и hreflang в head, коды языка по ISO 639-1, коды региона по ISO 3166-1 или ISO 3166-2:RU для регионов России и значение x-default. Отличий от Google два. Первое: вариант через файл Sitemap Яндекс больше не поддерживает, нужна разметка в HTML. Второе: hreflang подсказывает, какую языковую версию показать, но регион для ранжирования Яндекс берёт из настроек хоста.

Что настраивать дополнительно

  • Региональность в Вебмастере: раздел «Представление в поиске», пункт «Региональность», плюс карточка в Яндекс Бизнесе. Регион привязывается к хосту, а не к папке.
  • Следствие: разную региональность подпапками не развести, нужны поддомены или отдельные домены.
  • Гигиена: атрибут lang в html и заголовок Content-Language. Для Google это не сигнал, язык он определяет по видимому тексту; атрибут нужен браузерам, скринридерам и переводчикам.
  • Переключатель языка обычными ссылками, cookie для повторных визитов, никаких редиректов для ботов.

Рабочая схема

ru-версия на основном домене, регион «Россия» в Вебмастере, вся семантика под Яндекс. Версии en и de в подпапках или на поддоменах с hreflang под Google. Закрывать международные версии от Яндекса не нужно, достаточно развести семантику. Если en-версия мешает по латинице или брендовым запросам, решение через разные хосты, а не через noindex по языку.

Как Google выбирает языковую версию: взаимные ссылки, кластер и x-default

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

Если страница A указывает на B, а B на A не указывает, связь не подтверждена и пара отбрасывается. URL только абсолютные, с протоколом: относительные пути и смешанный http/https ломают кластер чаще всего. x-default задаёт версию для тех, чей язык и регион не покрыты.

Сигналы версий не объединяются: ссылки на /de/ не усиливают /ru/. Связи включаются только после переобхода всех страниц кластера, то есть недели, а не дни.

Синтаксис: разбираем рабочую разметку строка за строкой

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

Исходный код главной страницы ikea.com: десятки строк link rel=alternate hreflang для языковых и региональных версий
Исходный код ikea.com, снято 11.10.2026. У одной страницы десятки строк hreflang: на каждую пару «язык-регион» своя ссылка, и каждая версия ссылается на все остальные
<link rel="alternate" hreflang="ru" href="https://site.ru/" />
<link rel="alternate" hreflang="en" href="https://site.ru/en/" />
<link rel="alternate" hreflang="ru-KZ" href="https://kz.site.ru/" />
<link rel="alternate" hreflang="x-default" href="https://site.ru/en/" />

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

Ломается чаще всего: подчёркивание вместо дефиса, лишние пробелы в значении, страна без языка, ссылки на редиректы и 404, разметка в body. Ссылка на страницу с noindex или чужим canonical обнуляет связь.

Языковые и региональные коды: где ошибаются чаще всего

Формат один: язык по ISO 639-1 либо язык-регион, где регион по ISO 3166-1 alpha-2. Регион без языка невозможен, hreflang="kz" трактуется как язык, а не как Казахстан.

Актуальные для наших проектов коды: ru, ru-RU, ru-KZ, ru-BY, ru-UZ, uk-UA, kk-KZ, en, en-US, en-GB, de, de-DE, de-AT.

Четыре кода, которых не существует: kz вместо kk для казахского, en-UK вместо en-GB, ru_RU через подчёркивание, голый код страны. Регистр технически не важен, но единый стиль упрощает аудит. Чем меньше кодов, тем меньше точек отказа.

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

Способов три: теги в head, HTTP-заголовок Link и XML-sitemap. Выбор зависит от размера кластера и типа файлов.

СпособКогда применятьСлабое место
Теги в headДефолт до нескольких тысяч страницРаздувает HTML при десятке локалей
Заголовок LinkPDF, DOCX и другие файлыПравится в nginx или бэкенде, не видно в коде
XML-sitemapКрупные каталоги, централизованная правкаЯндекс не читает, неудобно проверять глазами

Ориентир перехода на sitemap: от 5-10 тысяч страниц в кластере или от 10 локалей. Совмещать технически можно, но при расхождении наборов получите конфликт сигналов. Держите один источник истины.

Какую URL-структуру выбрать: подпапки, поддомены или отдельные домены

Вариантов три: подпапка site.ru/en/, поддомен en.site.ru, отдельный домен site.de. Для Google разница невелика, для Яндекса принципиальна, потому что регион привязывается к хосту.

КритерийПодпапкаПоддоменccTLD
Авторитет доменаВесь в одном местеДелится частичноКопится с нуля
Региональность в ЯндексеОтдельно не задатьСвоя для хостаСвоя
Стоимость внедрения и поддержкиМинимальнаяСредняяВысокая
Доверие локальной аудиторииСреднееСреднееМаксимум

Наш выбор по умолчанию: подпапка на основном домене. Поддомен берём, если нужна своя региональность в Яндексе или отдельные юрлицо и контакты. Отдельный домен, если en-направление по сути другой бизнес. Чего не делать: версии через ?lang=en и разные CMS без единого шаблона разметки.

Отдельный случай: ru для России, Казахстана и Беларуси

Дублями для Google это не станет: ru-RU и ru-KZ со взаимной разметкой читаются как региональные версии. Но при контенте, совпадающем до символа, Google оставит в выдаче одну версию и выберет её сам, hreflang от схлопывания не защищает.

Отдельную версию оправдывают валюта и цены, локальный телефон и адрес, юрлицо и реквизиты, условия доставки. Украинский и казахский это другие языки (uk, kk), им нужен реальный перевод, а не ru-страница с подменённой валютой.

Трезвая оценка: нет цен в тенге и местного номера, значит одна общая страница с пометкой о работе по СНГ даст больше. Для Яндекса такие версии всё равно придётся разводить по хостам.

Внедрение на практике: 1С-Битрикс, WordPress, Tilda, Shopify

Общее правило для любой CMS: разметка генерируется из одного места по данным о связях версий. Руками проставленный hreflang на 200 страницах развалится в первый же месяц.

  1. 1С-Битрикс. Многосайтовость, когда структура и ассортимент разные или нужна отдельная региональность в Яндексе. Языковые разделы внутри одного сайта, когда страницы соответствуют 1:1. Связь версий по символьному коду или свойству элемента, вывод в header.php через Asset::getInstance()->addString() с проверкой наличия перевода. Подводные камни: SEF-правила и слэш в конце, кеш шаблонов, дубли из-за index.php.
  2. WordPress. WPML и Polylang формируют hreflang сами. Остаётся проверить вывод, отключить дублирующий блок из Yoast или Rank Math и проследить страницы без перевода.
  3. Tilda и конструкторы. Блок с HTML-кодом в head на каждой странице, поддержка ручная. На 50 страницах и больше это узкое место, закладывайте регламент правок.
  4. Shopify. Встроенные Markets генерируют разметку автоматически: проверьте домены или подпапки локалей и правильный primary locale.

Hreflang, canonical и noindex: правила совместимости

Канонический тег каждой языковой версии указывает на саму себя. Задачи у тегов разные: canonical про дубли внутри одного языка, hreflang про выбор языка, один другой не заменяет.

Три типовых конфликта: canonical всех локалей на основной язык (en-версия исчезает из индекса, это самая дорогая ошибка), страница кластера под noindex (связь не работает, остальные версии теряют часть сигнала), hreflang на URL с редиректом по слэшу или протоколу (Google по цепочке не идёт).

И ещё раз: ссылочный вес между версиями не передаётся. На этом ожидании строится половина неверных прогнозов.

Частичная локализация и большие каталоги: когда переведено не всё

Ставить разметку сейчас, но только на реально опубликованные переводы. Кластер собирается динамически: нет перевода, нет строки.

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

В каталогах внедряем hreflang сначала на категориях, карточки подключаем по мере перевода. Если версии должны правильно показываться и в Яндексе, разметку держим в head целиком: в sitemap её выносят только проекты, которым нужен один Google. Для Яндекса при этом оставляем теги в head хотя бы на приоритетных страницах: вариант через Sitemap он не читает. Про машинный перевод честно: Google его не запрещает, но неотредактированный текст плохо конвертит и рискует оценкой низкого качества. Порядок обратный: сначала нормальный текст на приоритетных страницах, потом разметка.

Георедиректы по IP: почему они ломают индексацию и чем их заменить

Жёсткий редирект по IP ломает индексацию: робот Google ходит в основном с американских адресов и видит одну версию, остальные в индекс не попадают. Второй эффект: пользователь из России в поездке не может открыть ru-версию, отказы растут.

Совмещать редирект и hreflang формально можно, по факту они воюют друг с другом. Замена: баннер-подсказка «Похоже, вы из Казахстана, открыть версию для КЗ?» с явной ссылкой и возможностью остаться.

Если редирект снять нельзя: только 302, только для первого визита, с исключением ботов по user-agent и прямым доступом по URL. Переключатель языка делаем обычными ссылками a href на абсолютные адреса.

Чек-лист аудита: как за час проверить мультиязычный сайт

Часа хватает, если проверять шаблон, а не отдельные страницы. Восемь шагов, которые мы проходим на каждом аудите.

  1. 5 мин: исходный код главной и внутренней страницы каждой локали, найти блок hreflang и самоссылку.
  2. 10 мин: взаимность на трёх парах, перейти по каждому href и найти обратную ссылку.
  3. 5 мин: прогнать все href на код ответа, нужен только 200.
  4. 5 мин: сверить canonical каждой версии, должен указывать на себя.
  5. 10 мин: проверить коды локалей, искать kz, en-UK, ru_RU и опечатки.
  6. 10 мин: Search Console, «Проверка URL» по одной странице каждой локали: проиндексирована ли она и какой канонический адрес выбрал Google. Отчёт по международному таргетингу закрыт, ошибки hreflang консоль не показывает, взаимность проверяем краулером.
  7. 5 мин: Яндекс.Вебмастер, региональность хоста и отсутствие случайных запретов индексации.
  8. 10 мин: проверить отсутствие редиректа по IP через VPN или curl.

В отчёт фиксируем URL, тип ошибки, приоритет, оценку потерь.

Топ-10 ошибок из наших аудитов

Список по убыванию ущерба. Сначала правим то, что выбивает страницы из индекса, потом то, что мешает выбору версии, потом косметику.

  1. Canonical всех локалей на основной язык: международный трафик обнуляется.
  2. Нет самоссылки: кластер не собирается ни для одной версии.
  3. Жёсткий редирект по IP поверх разметки: индексируется одна версия из пяти.
  4. Односторонние ссылки: в выдаче появляется чужая локаль.
  5. Hreflang ведёт на редиректы (слэш, http, www): тихая поломка, в коде всё «есть».
  6. Неверные коды локалей: строка просто отбрасывается.
  7. Относительные URL в href: разметка не работает.
  8. Вставка через JS или GTM: нестабильно, часто не попадает в индексируемый HTML.
  9. Разметка на страницы-заглушки: отказы и жалобы на качество локали.
  10. Разные блоки на страницах одного кластера после ручных правок: ошибка копится незаметно.

Инструменты проверки: что смотреть и где

Рабочих инструментов четыре. Отдельного отчёта по hreflang в Яндекс.Вебмастере нет, поэтому разметку проверяем внешними средствами. Смотрим так.

  • Google Search Console: отчёт по индексированию и проверка URL. Отсутствие обратной ссылки правим в текущем спринте, из индекса страницы от этого не выпадают.
  • Screaming Frog: вкладка Hreflang, фильтры Missing Return Links, Inconsistent Language & Region Return Links, Non-200 Hreflang URLs.
  • Онлайн-валидаторы: разовый контроль одной страницы после правок.
  • curl и devtools: заголовки Link и Content-Language, поведение при разных IP.

Регламент: полный аудит раз в квартал, точечная проверка после каждого релиза, затрагивающего шаблоны.

Связка с платным трафиком: Google Ads и Яндекс Директ

Правило первое: объявление ведёт на URL нужной локали напрямую. Редирект по IP на посадочной это потеря бюджета и расхождение данных о конверсиях.

В Google Ads с сентября 2026 года языковые настройки поисковых кампаний не применяются: система сама сопоставляет язык объявления и посадочной с языком запроса и пользователя. Из-за этого заблуждения en-кампании собирают нецелевые клики. Схема: отдельная кампания на локаль, геотаргетинг, объявления и посадочные строго на языке этой локали, UTM с меткой локали. Иначе CPL по рынкам не посчитать.

Яндекс Директ требует, чтобы язык объявления соответствовал стране таргетинга: для России русский, для Казахстана русский или казахский, остальные языки с полным дублированием. Посадочную подбираем под язык объявления. Для проверки спроса на новом рынке быстрее лендинг, мультиязычный сайт делаем, когда рынок подтверждён. Параллельно жить можно, но лендинг закрываем от индексации.

Сколько ждать результата и как измерить его в заявках

Ошибки уровня canonical и noindex отражаются после переобхода: от 1-2 недель на небольшом сайте до 1-3 месяцев на крупном каталоге. Ускорить можно только переобходом: актуальный sitemap, проверка URL в GSC, перелинковка между локалями.

Метрики по порядку появления: доля страниц локали в индексе, доля визитов из «своей» страны на «свою» локаль, отказы на входных страницах, конверсия в заявку, стоимость обращения по рынку. Суммарный трафик и средние позиции метриками успеха не являются.

Главный график: сегмент «страна пользователя и локаль посадочной» до и после. Критерий приоритета: меньше 5% визитов на чужую локаль, задача не срочная; от 20% вы теряете заявки прямо сейчас.

Частые вопросы

Яндекс понимает hreflang?

Да, в HTML-разметке страницы: элемент link с rel="alternate" и hreflang в head. Вариант через файл Sitemap Яндекс не поддерживает. Регион для ранжирования при этом задаётся хосту в Вебмастере, поэтому разную региональность подпапками не развести.

ru в Яндексе, en в Google: подпапки или разные домены?

Чаще подпапка: дешевле, авторитет в одном месте. Отдельный хост нужен для своей региональности в Яндексе, своих контактов или если en это другой бизнес.

Версии на Казахстан и Беларусь с тем же текстом: будут дубли?

Нет при корректной взаимной разметке, но идентичный контент Google схлопнет до одной версии. Разделяйте, когда отличаются цены, валюта, контакты и доставка.

Битрикс: многосайтовость или языковые разделы?

Зависит. Многосайтовость при разной структуре или отдельной региональности, разделы при соответствии 1:1. Вывод через Asset::getInstance()->addString(), связи по свойству элемента.

Переведена часть страниц: ставить сейчас или ждать?

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

Hreflang склеивает дубли и передаёт вес?

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

Можно оставить редирект по IP вместе с hreflang?

Технически да, практически они конфликтуют: робот увидит одну версию. Замена, баннер-подсказка с явной ссылкой и возможностью остаться.

Что значит «Альтернативная страница без hreflang» в GSC?

Такого статуса в текущей Search Console нет: односторонние связи показывал закрытый отчёт по международному таргетингу. Сейчас их находят краулером (в Screaming Frog фильтр Missing Return Links). Критичность средняя, из индекса не выбивает, чиним шаблон, а не отдельные URL.

Нужен ли x-default при двух версиях?

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

Сколько Google переиндексирует кластер?

Зависит от объёма: от 1-2 недель на небольшом сайте до 1-3 месяцев на каталоге. Ускоряют sitemap, проверка URL и перелинковка локалей.

Мультиязычный сайт или лендинги под Google Ads?

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

Можно выкатить локали машинным переводом?

Нежелательно. Запрета нет, но неотредактированный текст плохо конвертит и рискует оценкой низкого качества. Сначала перевод услуг, цен и контактов.

Как связать локали с геотаргетингом Google Ads?

Отдельная кампания на локаль: гео, объявления и посадочные на языке этой локали, без редиректов. Языковая настройка поисковой кампании с сентября 2026 года не применяется, язык Google определяет сам, UTM обязательны.

Сломается ли что-то, если разметка и в head, и в sitemap?

Нет, если данные совпадают. Риск в расхождении наборов: получите конфликт сигналов. Держите один источник истины.

Что сделать на этой неделе

  1. Проверить, что canonical всех локалей указывает сам на себя.
  2. Проверить самоссылки и взаимность на трёх парах страниц.
  3. Прогнать все href из разметки на код ответа 200.
  4. Снять или смягчить редирект по IP.
  5. Задать региональность хостов в Яндекс.Вебмастере.

Отложить без сожалений можно x-default при двух версиях, перенос разметки в sitemap на небольшом сайте и региональные подверсии под страны, где нет локальных цен и телефона. Ориентир по трудозатратам: базовая настройка на одной CMS это порядка 4-8 часов разработки плюс аудит, каталог с частичным переводом отдельный проект.

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

Материалы по теме

ДД
Дмитрий Дмитриев
Head of SEO / Founder KlientLab · в интернет-маркетинге с 2012 года

Специализируюсь на белом поисковом продвижении, AEO/GEO в нейросетях и сквозной аналитике для B2B и медицины.

Остались вопросы по теме статьи?

Напишите нам: проанализируем ваш сайт и подскажем, как применить описанные решения на практике.

Разберём проект до созвона

Заполните бриф: сайт, ниша, задача и конкуренты. Посмотрим спрос и текущие кампании заранее, чтобы прийти с цифрами.

Заполнить бриф
Читайте также