Hreflang — это HTML-тег, который говорит поисковику: «у этой страницы есть версии на других языках, вот ссылки на них». Без hreflang Google и Яндекс часто показывают «не ту» версию пользователю: американцу — русскую, а русскоязычному москвичу — английскую. Конверсия с такой выдачи падает в разы. Правильная настройка hreflang решает проблему за час работы. В этой статье разберём синтаксис, типовые ошибки, разницу между x-default и конкретным языком, и почему Яндекс относится к hreflang иначе, чем Google.
Синтаксис hreflang
В `<head>` каждой страницы прописываете теги вида `<link rel="alternate" hreflang="ru" href="https://domain.com/ru/page">`. Один такой тег для каждой языковой версии страницы. Например, если у вас 2 языка (RU и EN), на каждой странице должно быть минимум 2 hreflang-тега — один для RU, один для EN. На странице EN-версии — те же 2 тега, ссылающиеся на обе версии. Это правило взаимности: если страница A ссылается на B как на alternate, страница B должна ссылаться на A.
Что такое x-default и зачем он
`hreflang="x-default"` — специальное значение, которое говорит «эта версия для всех остальных пользователей, чей язык не указан явно». Если у вас сайт на RU и EN, для китайского или испанского пользователя без hreflang Google не знает, какую показать. С x-default Google показывает указанную версию (обычно EN как «универсальный»). Site Metrics Tool использует x-default на EN-версии. Без x-default Google для пользователей, не подходящих под RU и EN, использует автоматическую логику, которая часто работает плохо.
Где размещать hreflang
Есть три места, любое валидно: первое — в `<head>` HTML страницы (наиболее распространённый вариант, проще для отладки); второе — в HTTP-заголовке `Link: ` (используется для не-HTML файлов, например PDF); третье — в XML sitemap (через `xhtml:link rel="alternate"`). Выбирайте одно место и используйте последовательно — Google не любит, когда часть hreflang в HTML, часть в sitemap. Самый удобный вариант для большинства команд — HTML head, потому что его можно увидеть через View Source и легко отдебажить.
Типовые ошибки в hreflang
- Нарушение взаимности: страница A ссылается на B, B на A не ссылается. Google игнорирует такие теги.
- Использование `lang="ru-RU"` когда у вас просто `<html lang="ru">` — несоответствие сбивает.
- Использование `country-code` (например, `ru-RU`) когда не нужно — лучше просто `ru`. `country-code` нужен только если у вас разные версии для разных стран на одном языке.
- Указание href с redirect-ом — Google пройдёт по редиректу и заменит на финальный URL, но это неэффективно. Указывайте сразу финальный URL.
- Указание href на страницу, отдающую 404 или noindex. Google такие hreflang игнорирует.
- Отсутствие x-default. Не критично, но это бесплатная оптимизация для нетипичных пользователей.
Как Яндекс относится к hreflang
Яндекс долго не поддерживал hreflang официально. С 2022 года Яндекс начал учитывать hreflang, но в основном для определения языка страницы, а не для выбора версии для пользователя. У Яндекса для геотаргетинга используется собственный механизм через Webmaster (раздел «Региональность»). Практический вывод: hreflang ставите для Google (это критично), а в Яндекс.Вебмастере дополнительно настраиваете региональность для каждой страны. Без второго шага Яндекс может показать «не ту» версию российскому пользователю.
Как проверить корректность настройки
Первая проверка — Google Search Console → International Targeting → Language. Здесь Google показывает обнаруженные hreflang-теги и ошибки в них (нарушение взаимности, неверный код, недоступный URL). Вторая — Hreflang Tags Testing Tool (есть несколько онлайн), который вводите URL и видите все теги и связи. Третья — наш бесплатный валидатор Meta Tags Checker (`/tools/meta-tags-checker`): вводите URL, и в отчёте есть секция «hreflang» с разбором всех тегов на странице.
Частые вопросы
Сколько hreflang-тегов нужно на странице?
По одному на каждую языковую версию плюс x-default. Если 2 языка — минимум 2 тега, рекомендуется 3 (RU + EN + x-default). Если 5 языков — 6 тегов.
Нужен ли hreflang, если у меня один язык?
Нет, не нужен. Hreflang имеет смысл только когда у вас 2+ языковые версии одного и того же контента.
Что делать, если переведена не вся страница?
Hreflang работает на уровне URL, не контента. Если страница есть в RU и EN — указывайте hreflang. Если только в RU — не указывайте на EN. Не указывайте hreflang на страницу с автопереводом — Google это распознаёт и понижает доверие.