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 и Яндекс
| Проверка | Яндекс | |
|---|---|---|
| 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`?
Для чего нужен `x-default`?
Связанные термины
Источники
- 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). ↑ а б в г д е ж з и к л м н о п р с т у ф х ц ч ш
- Яндекс. (б. г.). Индексирование локализованных страниц // Помощь Вебмастеру. https://yandex.ru/support/webmaster/ru/yandex-indexing/locale-pages.html (дата обращения: 24.10.2026). ↑ а б в г д е ж з и к л м н
- W3C Internationalization. (n.d.). Declaring language in HTML. https://www.w3.org/International/questions/qa-html-language-declarations (дата обращения: 24.10.2026). ↑ а б в г
- 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). ↑ а б в
- 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). ↑ а б в г д
- 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