Проверка hreflang

Проверяйте hreflang на одном URL или по всему набору страниц: коды языков и регионов, самоссылку, дубли, x-default, ответные ссылки, а также альтернативы, которые редиректят, отдают ошибку или стоят с noindex.

Что делает

По всему набору

Ответные ссылки и подтверждение пар требуют всех страниц набора: проверка сравнивает, что страница A пишет о странице B, с тем, что B отвечает в ответ. Эти проверки работают с данными сканирования, например с экспортом All Hreflang из Screaming Frog, а не с одной страницей. Они также смотрят на цели альтернатив: отвечает ли каждая кодом 200, индексируется ли она и совпадает ли с её каноническим URL.

  • Отсутствующие ответные ссылки и неподтверждённые пары
  • Альтернативы, которые редиректят, отдают 4xx или 5xx либо стоят с noindex
  • Альтернативы, которые не являются каноническим вариантом страницы
  • Альтернативы, на которые не ведёт ни одна внутренняя ссылка

Один URL

hreflang-check загружает одну страницу, идёт по редиректам и читает альтернативные ссылки в её HTML. Он проверяет каждый код языка, письменности и региона, находит повторяющиеся значения и смотрит, ссылается ли страница на себя и есть ли x-default. Альтернативы он не запрашивает, поэтому это быстрая первая проверка до полного сканирования.

  • Коды языка, письменности и региона по ISO 639-1, ISO 15924 и ISO 3166-1
  • Самоссылка и повторяющиеся значения
  • Наличие x-default
  • Страница с 4xx или 5xx отмечается как ошибка, а не как чистый результат

Расположение

Ссылка hreflang засчитывается, только если парсер читает её внутри head. Нативное сканирование сравнивает положение каждой альтернативной ссылки и отмечает те, что оказались в body, часто из-за битого тега выше в head. Исправьте этот тег, и аннотация заработает.

  • Альтернативные ссылки вне head отмечаются
  • Регистр не важен: en-us и en-US — одно и то же значение
  • Частые ошибки вроде en-UK находятся

Три шага — один сохранённый скан

  1. Проверьте один URL в живом режиме

    hreflang-check загружает страницу, идёт по редиректам и читает альтернативные ссылки в HTML. Проверяются коды, самоссылка, дубли и x-default.

  2. Проверьте набор по сканированию

    Ответные ссылки, битые или редиректящие цели и цели с noindex требуют всех страниц набора. Эти проверки идут по всему нативному скану — или по импортированному экспорту All Hreflang через seohead sf run, — а не по одной странице.

  3. Исправьте пары и проверьте снова

    Каждая находка называет страницу и альтернативу, к которой она относится. Исправьте аннотацию на сайте и запустите проверку заново.

Проверки в этой возможности

ПроверкаЧто значитКритичностьДоказательство
HREFLANG_MISSING_RETURN_LINKДругая страница называет этот URL в своём hreflang, а эта страница в ответ не ссылается на неёImportantИсходная страница и альтернатива, которая не ссылается в ответ (сканирование)
HREFLANG_BROKEN_TARGETАльтернативный URL отвечает статусом 3xx, 4xx или 5xxImportantURL цели и её код статуса (сканирование)
HREFLANG_NOINDEX_TARGETАльтернативный URL содержит директиву noindexImportantURL цели и сигнал noindex (сканирование)
HREFLANG_INVALID_CODEЗначение языка или региона не является корректным кодом ISO 639-1, ISO 15924 или ISO 3166-1, например en-UKImportantИсходное значение hreflang и страница, на которой оно стоит (один URL: 'malformed hreflang code')
HREFLANG_MISSING_SELF_REFERENCEУ страницы есть альтернативы, но ни одна из них не ведёт на её собственный URLImportantURL страницы и список её альтернатив (один URL: 'page does not self-reference')
HREFLANG_MULTIPLE_ENTRIESОдна и та же пара языка и региона встречается на странице больше одного разаImportantПовторяющееся значение и его href (один URL: 'duplicate hreflang')
HREFLANG_MISSING_XDEFAULTВ наборе нет запасного варианта x-default для пользователей, чей язык не совпадает ни с одной альтернативойTipСтраница и её список альтернатив (один URL: 'no x-default alternate')
Ещё в реестре проверок
HREFLANG_ERRORHREFLANG_INCONSISTENT_CONFIRMATIONHREFLANG_NOT_CANONICALHREFLANG_UNLINKED_TARGETHREFLANG_OUTSIDE_HEAD

Одна команда

bash
seohead hreflang-check --url https://example.com/en/

Сначала установите: руководство по установке. Каждая команда работает и как MCP-инструмент для ИИ-агентов.

Что нужно

  • URL одной страницы для hreflang-check
  • Сканирование или экспорт All Hreflang из Screaming Frog для проверок всего набора страниц
  • Ключи API не нужны

Ограничения

  • Проверка одного URL не запрашивает альтернативы, поэтому не видит их статус-коды, noindex и ответные ссылки
  • Она читает только элементы link в HTML, а hreflang в sitemap и в HTTP-заголовках Link не смотрит
  • Проверки по набору страниц выполняются по экспортам hreflang из Screaming Frog. Нативное сканирование данные hreflang не сохраняет
  • Корректный код не доказывает, что страница написана на этом языке

Вопросы

Проверяет ли проверка одного URL каждую альтернативу?
Нет. Она читает собственные альтернативные ссылки страницы и проверяет их коды, дубли, x-default и самоссылку. Каждую альтернативу она не запрашивает, поэтому битые, редиректящие и noindex-цели и отсутствующие ответные ссылки нужно проверять сканированием.
Меняет ли она что-нибудь на моём сайте?
Нет. Проверка отправляет только read-only GET-запросы. На сайт ничего не записывается.
Какие коды языка считаются корректными?
Код языка по ISO 639-1, при необходимости с письменностью по ISO 15924, затем регион по ISO 3166-1 alpha-2 или UN M.49. Регистр не важен: en-us и en-US — одно и то же значение. en-UK отклоняется, потому что код страны — GB.
Читает ли она hreflang из sitemap или HTTP-заголовков?
Проверка одного URL читает только элементы link в HTML-ответе. Hreflang, объявленный в sitemap или в HTTP-заголовке Link, эта команда не читает.
Что будет, если страница отдаёт ошибку?
Проверка показывает HTTP-статус и сообщает, что аннотаций для проверки нет. Страница с 4xx или 5xx никогда не выглядит как чистый результат.
Является ли отсутствие x-default ошибкой?
Это самая мягкая находка. x-default — запасной вариант для пользователей, чей язык не совпадает ни с одной альтернативой. Он полезен, но не обязателен, поэтому в реестре проверок он оценивается как замечание, ниже проблем, которые ломают аннотацию.

Что ещё посмотреть

Проверьте на своём сайте