hreflang

hreflang

Также: Языковые альтернативы, rel alternate hreflang

hreflang — HTML-атрибут, который указывает язык связанного ресурса. В техническом SEO его используют вместе с rel="alternate", чтобы объединить эквивалентные языковые или региональные URL и помочь поисковой системе выбрать подходящую версию.

Спецификация HTML описывает hreflang как язык ресурса, указанного в ссылке. [5] В документации Google сочетание rel="alternate", hreflang и адреса страницы сообщает поиску, что несколько URL являются локализованными вариантами одного материала. [1] Такая связь служит подсказкой поисковой системе: она не переводит текст, не делает страницу доступной для обхода и не гарантирует её показ.

Кратко

  • Разметка связывает соответствующие версии одного материала, а не любые страницы на разных языках. [1, 2]
  • lang описывает язык текста внутри HTML-документа, а hreflang — язык ресурса по ссылке. [3, 5]
  • Для Google каждая версия должна ссылаться на себя и на другие варианты; связи между двумя страницами должны работать в обе стороны. [1]
  • x-default обозначает запасной адрес для пользователей, которым не подходит ни одна указанная языковая или региональная версия. [1, 2]
  • Требования Google и Яндекса к способу передачи разметки различаются, поэтому реализацию проверяют отдельно для каждого поисковика. [1, 2]

Происхождение и развитие

Атрибут hreflang существовал до появления современных инструкций по международному SEO. Рекомендация W3C HTML 4.0, впервые выпущенная 18 декабря 1997 года и редакционно обновлённая 24 апреля 1998 года, уже описывала его для элементов ссылок: атрибут сообщал язык ресурса, на который ведёт href. [5] Эта дата подтверждает присутствие атрибута в стандарте, но не назначает одного изобретателя практики локализации сайтов.

Позднее менялась система самих языковых меток. RFC 5646, опубликованный в сентябре 2009 года как часть BCP 47, закрепил структуру меток языка и заменил RFC 4646. В метке могут последовательно появляться основной язык, письменность и регион; регистр букв не меняет её смысл. [4]

10 апреля 2013 года Google объявил значение x-default для международных входных страниц и страниц выбора страны. [6] Историческая публикация теперь предупреждает, что отдельные сведения могли устареть, поэтому текущее применение x-default и остальных вариантов нужно сверять с действующей документацией поисковика. [1, 6]

Суть и механизм

У локализованного материала есть группа эквивалентных URL. На каждом адресе разметка перечисляет участников этой группы и указывает, для какого языка или сочетания языка и региона предназначен каждый вариант. Поисковик сопоставляет эти сведения со своими сигналами и может выбрать подходящий URL для пользователя. [1, 2]

Атрибут lang решает другую задачу. Запись <html lang="ru"> объявляет основной язык текста документа; это помогает программам обработки текста, в том числе средствам синтеза речи. Она не сообщает адрес английского перевода. [3] Google отдельно поясняет, что не определяет язык страницы ни по lang, ни по hreflang: для этого используются алгоритмы анализа содержания. [1]

Языковая метка — это код вроде ru, en-GB или zh-Hant. Общая модель BCP 47 допускает компоненты языка, письменности и региона. [4] Но поисковик может поддерживать только часть допустимых меток. Например, Google требует код языка и разрешает дополнить его регионом или в отдельных случаях письменностью; один код страны без языка недопустим. [1] Поэтому валидность по RFC и поддержка конкретной системой — две разные проверки.

Виды и способы передачи

Разметку можно различать по назначению адреса:

  • языковой вариант, например en, относится ко всем пользователям указанного языка без регионального уточнения;
  • языково-региональный вариант, например en-GB, уточняет территорию;
  • вариант с письменностью, например zh-Hant, различает систему письма, если поисковик поддерживает такую метку;
  • x-default служит запасным входом, когда остальные варианты не соответствуют настройкам пользователя. [1, 4]

Вторая классификация — способ передачи поисковику. Google считает равноправными HTML-элементы в head, HTTP-заголовок Link и записи XML sitemap; одновременное использование всех трёх способов не даёт дополнительного преимущества в поиске и усложняет сопровождение. [1] Яндекс на дату проверки описывает элементы link в head и отдельно сообщает, что sitemap для языковых версий больше не поддерживается. [2]

Как применять на практике

Учебный пример: у редакции есть русская, английская и турецкая версии одной инструкции, а также страница выбора языка. В head каждой из четырёх страниц размещают одинаковый набор:

html <link rel="alternate" hreflang="ru" href="https://example.com/guide/"> <link rel="alternate" hreflang="en" href="https://example.com/en/guide/"> <link rel="alternate" hreflang="tr" href="https://example.com/tr/guide/"> <link rel="alternate" hreflang="x-default" href="https://example.com/language/">

Здесь каждый адрес полный, каждая языковая страница указывает на себя, а один и тот же набор создаёт обратные связи. x-default ведёт на нейтральную страницу выбора языка. Google требует полный URL и двусторонние связи; альтернативы могут находиться на разных доменах. [1] Яндекс также разрешает разные домены, поддомены и каталоги и требует перечислять альтернативы на каждой версии. [2]

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

Google и Яндекс

Проверка Google Яндекс
HTML-разметка link в корректно сформированном head. [1] link в head. [2]
Другие способы HTTP-заголовок или sitemap равноправны HTML. [1] Sitemap для языковых версий больше не поддерживается. [2]
Связи Каждая версия включает себя; пары должны ссылаться друг на друга. [1] На каждой версии перечисляются все альтернативные версии. [2]
Разные домены Допустимы. [1] Допустимы домены, поддомены и каталоги. [2]
x-default Запасная страница для неподходящих языковых настроек. [1] Страница с автоматическим определением или выбором языка. [2]

Как проверить реализацию

Сначала составляют матрицу: строки — реальные URL, столбцы — ожидаемые языковые варианты. Для полного набора из N страниц каждая строка содержит N связей, поэтому проверяется N × N записей. В учебном примере четыре страницы дают 4 × 4 = 16 ожидаемых элементов link. Это счётчик полноты разметки, а не показатель поисковой эффективности.

Затем для каждой записи проверяют пять условий: URL открывается; ведёт на смысловой эквивалент; метка поддерживается нужным поисковиком; полный набор присутствует на целевой странице; x-default действительно ведёт на запасной вход. Для Google дополнительно можно выбрать один способ передачи и убедиться, что HTML, HTTP-заголовок или sitemap не расходятся между собой. [1]

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

Ошибки и ограничения

Первая распространённая ошибка — заменить hreflang атрибутом lang. Первый описывает связанный ресурс, второй — язык текста текущего документа. [3, 5] Вторая — указать только код страны: Google ожидает сначала код языка. [1]

Третья ошибка — поставить ссылку только в одном направлении. Google может проигнорировать такую пару, поскольку целевая страница не подтверждает связь. [1] Ещё одна проблема — смешать разные способы передачи и обновлять их независимо: формально допустимые HTML и sitemap начинают перечислять разные группы.

Наконец, hreflang не обещает позиции, трафик или индексацию. Он сообщает отношение между URL, а доступность страницы, качество перевода, канонический адрес и остальные условия поиска проверяются отдельно. [1]

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

Нужны ли обратные ссылки?

Для Google — да: если страница A указывает B как альтернативу, B должна указывать A. В полном HTML-наборе каждая версия также перечисляет себя. [1]

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

lang объявляет язык текста в текущем HTML-документе. hreflang описывает язык ресурса по ссылке и вместе с rel="alternate" связывает локализованные URL. [3, 5]

Для чего нужен `x-default`?

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

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

Да. И Google, и Яндекс допускают размещение локализованных вариантов на разных доменах. Важны полные адреса, соответствие содержания и согласованный набор связей. [1, 2]

Связанные термины

Источники

  1. Google. (n.d.). Tell Google about localized versions of your page. Google Search Central. https://developers.google.com/search/docs/specialty/international/localized-versions (дата обращения: 24.10.2026). ↑ а б в г д е ж з и к л м н о п р с т у ф х ц ч ш
  2. Яндекс. (б. г.). Индексирование локализованных страниц // Помощь Вебмастеру. https://yandex.ru/support/webmaster/ru/yandex-indexing/locale-pages.html (дата обращения: 24.10.2026). ↑ а б в г д е ж з и к л м н
  3. W3C Internationalization. (n.d.). Declaring language in HTML. https://www.w3.org/International/questions/qa-html-language-declarations (дата обращения: 24.10.2026). ↑ а б в г
  4. Phillips, A., & Davis, M. (Eds.). (2009, September). RFC 5646: Tags for Identifying Languages. RFC Editor. https://www.rfc-editor.org/rfc/rfc5646 (дата обращения: 24.10.2026). ↑ а б в
  5. World Wide Web Consortium. (1998, April 24). HTML 4.0 Specification (revised recommendation; original release December 18, 1997), §§ 12.1.5, 12.2. https://www.w3.org/TR/1998/REC-html40-19980424/ (дата обращения: 24.10.2026). ↑ а б в г д
  6. Google. (2013, April 10). Introducing “x-default hreflang” for international landing pages. Google Search Central Blog. https://developers.google.com/search/blog/2013/04/x-default-hreflang-for-international-pages (дата обращения: 24.10.2026). ↑ а б

Служебный блок

Версия
2.0
Факты проверены
Подготовка
Редакция Медиатрона
Публикация
утверждена владельцем издания 4 ноября 2026 г.

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

Нашли ошибку? info@mediatrone.ru