Clew

ГлавнаяИнструментыSEOГенератор hreflang

Генератор и проверка hreflang

Укажите языковые версии страницы — инструмент соберёт полный взаимный набор ссылок в трёх форматах: теги в <head>, XML Sitemap и HTTP-заголовок. Вкладка проверки найдёт ошибки в уже размеченной странице: en_US вместо en-US, en-UK, относительные адреса, дубли.

● Бесплатно, без регистрацииОбновлено:

Где лежат версии
Набор языков
Шаблон заполнит строки по домену, пути и структуре; дальше адреса можно поправить вручную.
Версии страницы
Код — язык ISO 639-1 (ru, en, kk) и при необходимости страна ISO 3166-1 через дефис (pt-BR, en-GB).

—

 

Версий— 
Языков— 
x-default— 
Доменов— 

    HTML — в <head> каждой версии

    XML Sitemap

    HTTP-заголовок — для PDF и других не-HTML файлов

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

    Расчёт идёт в вашем браузере — введённые данные никуда не отправляются.

    Как пользоваться

    1. Опишите структуруУкажите домен, путь страницы и где живут версии — в подпапках или на поддоменах. Выберите набор языков или добавьте строки вручную.
    2. Проверьте коды и адресаИнструмент подсветит en_US, en-UK, коды стран без языка, дубли и относительные адреса и подскажет правильный вариант.
    3. Скопируйте один из форматовТеги — в <head> каждой версии, Sitemap — в карту сайта, HTTP-заголовок — для PDF и других файлов. Набор одинаков для всех версий.
    4. Проверьте готовую страницуВставьте её HTML во вкладку «Проверка страницы»: инструмент извлечёт ссылки, найдёт ошибки и перенесёт исправленный набор в генератор.

    Что такое hreflang и зачем он нужен

    hreflang — способ сообщить поисковику, что у страницы есть версии на других языках или для других стран. Google использует эти ссылки, чтобы показать пользователю подходящую версию: русскоязычному — /tarify, англоязычному — /en/pricing. Прямым фактором ранжирования атрибут не является: он помогает выбрать, какой из адресов показать.

    Google поддерживает три равнозначных способа разметки:

    HTML, в <head>: <link rel="alternate" hreflang="ru" href="https://site.ru/tarify" /> <link rel="alternate" hreflang="en" href="https://site.ru/en/pricing" /> <link rel="alternate" hreflang="x-default" href="https://site.ru/tarify" /> HTTP-заголовок (для PDF и других не-HTML файлов): Link: <https://site.ru/en/pricing>; rel="alternate"; hreflang="en", … XML Sitemap: в каждом <url> — <xhtml:link rel="alternate" hreflang="…" href="…"/> для всех версий, включая саму страницу

    Значение атрибута — код языка по ISO 639-1, при необходимости дополненный кодом страны по ISO 3166-1 alpha-2 через дефис: ru, en-GB, pt-BR. Особое значение x-default обозначает страницу для всех остальных: выбор языка или основную версию.

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

    hreflang: как правильно

    Взаимность и самоссылка

    Главное правило из документации Google: ссылки должны быть взаимными. Если английская версия указывает на русскую, русская обязана указывать на английскую; иначе поисковик может проигнорировать разметку. Кроме того, каждая версия перечисляет саму себя. Проще всего размещать на всех версиях один и тот же полный набор — именно его собирает генератор.

    Коды

    • Язык указывается всегда; страна — только вместе с языком. hreflang="BY" — ошибка, нужно be-BY или ru-BY.
    • Разделитель — дефис. en_US встречается в локалях программ, но в hreflang правильно en-US.
    • Великобритания — GB, а не UK: код uk означает украинский язык.
    • Язык без региона работает как запасной вариант для всех стран. Если есть en-GB и en-US, добавьте en для англоязычных пользователей из остальных стран.

    hreflang и canonical

    Каждая языковая версия должна быть канонической сама для себя. Частая ошибка — поставить на всех переводах rel="canonical" на русскую страницу: так вы сообщаете, что переводы — дубли, и поисковик может их не показывать. Canonical указывает на страницу того же языка, а связь между языками описывает hreflang. Адреса в hreflang должны совпадать с каноническими: без лишних параметров, с тем же протоколом и слешем на конце.

    Адреса

    Нужны полные URL с протоколом и доменом: https://site.ru/en/, а не /en/. Версии могут жить на разных доменах — hreflang работает между доменами. Страницы в наборе должны открываться с кодом 200 и не быть закрыты от индексации.

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

    Яндекс поддерживает атрибут hreflang и описывает его в справке Вебмастера как способ указать языковые версии страницы. Базовые правила те же, что у Google, но детали и приоритеты различаются, поэтому для проектов с заметной долей трафика из Яндекса сверяйтесь с его актуальной справкой.

    Национальные домены, поддомены или подпапки

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

    • Национальные домены (site.kz, site.de) — самый явный сигнал страны, но каждый домен нужно покупать, поддерживать и развивать отдельно.
    • Поддомены (en.site.ru) — просто разнести по разным серверам; связь с основным сайтом для пользователя менее очевидна.
    • Подпапки (site.ru/en/) — проще всего в поддержке: один хост, общая история домена. Для SaaS обычно самый практичный вариант.
    • Параметры в адресе (?lang=en) Google не рекомендует: по ним трудно понять, какая версия перед пользователем.

    Какой бы вариант вы ни выбрали, не перенаправляйте пользователей автоматически по IP или языку браузера. Робот может не увидеть остальные версии, а человек — не попасть на ту, которую искал. Лучше показать заметный переключатель языка и дать hreflang подсказать поисковику нужный адрес.

    Частые ошибки в hreflang

    • Нет обратных ссылок. Разметку добавили только на основную версию — переводы на неё не ссылаются.
    • Нет самоссылки. Страница перечисляет все версии, кроме себя.
    • Неверные коды: en_US, en-UK, ua вместо uk, трёхбуквенные коды вроде rus, код страны без языка.
    • Относительные адреса и адреса с параметрами отслеживания или #фрагментами.
    • Canonical на другой язык. Переводы объявлены дублями основной версии.
    • Версии закрыты от индексации в robots.txt или мета-тегом noindex — ссылка ведёт на страницу, которую поисковик не может использовать.
    • Один код — два адреса. Два разных URL с hreflang="en" в одном наборе.
    • Непереведённые страницы. Английская версия с русским текстом — не языковая версия, а дубль.
    • Разметка в нескольких местах с расхождениями: в HTML один набор, в Sitemap — другой.

    Источники

    1. Google Search Central. Tell Google about localized versions of your page — developers.google.com/search/docs/specialty/international/localized-versions.
    2. Google Search Central. Managing multi-regional and multilingual sites — developers.google.com/search/docs/specialty/international/managing-multi-regional-sites.
    3. ISO 639-1:2002. Codes for the representation of names of languages — Part 1: Alpha-2 code; список кодов — loc.gov/standards/iso639-2.
    4. ISO 3166-1. Codes for the representation of names of countries — iso.org/iso-3166-country-codes.html.
    5. RFC 5646 (BCP 47). Tags for Identifying Languages. IETF, 2009.
    6. Sitemaps.org. Sitemap protocol — sitemaps.org/protocol.html.
    7. Яндекс Вебмастер. Справка — yandex.ru/support/webmaster.

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

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

    На каждой языковой версии разместите полный набор ссылок link rel="alternate" с атрибутом hreflang: на все версии, включая саму страницу, и при желании x-default. Код — язык ISO 639-1 и при необходимости страна ISO 3166-1 через дефис, адреса — полные URL. Генератор собирает такой набор автоматически.

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

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

    Как правильно: en-UK или en-GB?

    en-GB. В hreflang используются коды стран ISO 3166-1, а у Великобритании код GB. Код uk означает украинский язык, поэтому en-UK — ошибка.

    Можно ли указать только страну, например hreflang="RU"?

    Нет. Язык обязателен, страна добавляется к нему через дефис. hreflang="ru" — русский язык, а для русскоязычной версии для Казахстана нужен ru-KZ.

    Где лучше размещать hreflang: в HTML или в Sitemap?

    Google считает способы равнозначными. Теги в head удобны для небольших сайтов, Sitemap — для больших, где не хочется утяжелять каждую страницу, HTTP-заголовок — для PDF и других не-HTML файлов. Выберите один способ и не допускайте расхождений.

    Нужен ли canonical вместе с hreflang?

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

    Учитывает ли hreflang Яндекс?

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

    Ещё в разделе «SEO»

    Открыть подборку →

    Подсказки, туры и чеклисты, эффект которых видно в цифрах.

    Попробовать Clew бесплатноКак это работаетFree — бесплатно навсегда · Pro и Business — 14 дней без карты

    Туры, попапы и онбординг в эпоху ИИ

    7 паттернов с числом шагов, правилами текста и метриками, что меняет ИИ, чек-лист перед публикацией. PDF, 2 страницы. Что внутри гайда →