hreflang і html lang не узгоджуються щодо мови сторінки

У звітіHreflang self-reference contradicts html lang

hreflang_html_lang_mismatch · Потребує перегляду

Коротка відповідь

Це з’являється, коли запис hreflang, який сторінка дає сама собі, називає одну мову, а її <html lang> — іншу, як-от hreflang="fr" на сторінці з позначкою lang="en". Перегляньте, яку мову має описувати кожна декларація, і виправте ненавмисну відмінність.

Серйозність: Низька. Перегляньте це за нагоди: зазвичай це одне налаштування шаблону, а Google не використовує жоден із цих тегів, щоб визначити мову сторінки.

Чому це важливо

W3C радить завжди оголошувати типову мову тексту сторінки атрибутом lang на елементі <html>. hreflang повідомляє пошуковим системам, яка адреса обслуговує яку мову, тож відмінність між власним записом сторінки та її lang потребує перегляду.

Що зробити

  1. Перегляньте знахідку: у ній показано <html lang> сторінки, її власні записи hreflang і базову мову кожного.
  2. Перевірте, якою мовою написано сторінку.
  3. Виправте атрибут lang або запис hreflang — зазвичай у шаблоні, який його задає.

Коли залишити як є: якщо сторінка навмисно поєднує мови й обидві декларації свідомі, можна залишити як є.

Що ми читаємо

Ми читаємо hreflang сторінки у двох місцях: у тегах <link rel="alternate" hreflang> її HTML і в заголовку Link з hreflang у її відповіді; карта сайту для цієї перевірки не читається. Ми порівнюємо <html lang> сторінки із записами, що вказують на саму сторінку.

Порівнюється лише базова мова: de-AT і de узгоджуються, fr і en — ні. Сторінка позначається як неперевірена, коли будь-яке з її значень hreflang не є чинним кодом мови, як-от en_US, або її тег <html> не лежить у межах перших 65 536 декодованих символів. Сторінка позначається як неперевірена, коли одне з двох місць не вдалося прочитати повністю, наприклад HTML із непідтримуваною розміткою SVG, елементом <noscript> чи <select> будь-де або заголовок Link із відношенням, яке ми не можемо розібрати; анотація з порожньою, відносною чи невебовою адресою теж блокує сторінку.

Приклад і докази

Ілюстративний приклад — одна сторінка, а не реальний аудит.

https://bakery.example/fr/ містить:

<html lang="en">
<head>
<link rel="alternate" hreflang="fr" href="https://bakery.example/fr/">

Власний запис hreflang сторінки каже «французька», а її lang — «англійська», тому сторінка фіксується.

<html lang="fr">

Можливе виправлення, якщо сторінка французькою: задайте відповідний lang.

Підтвердити й перевірити знову

Перевірте самі: перегляньте вихідний код сторінки й порівняйте lang на тезі <html> з тегом hreflang, href якого — це власна адреса сторінки.

Повторна перевірка: Повний аудит — запустіть новий аудит сайту. Знахідка закривається, коли сторінку знову проскановано і дві декларації узгоджуються щодо базової мови або одну з них прибрано. Якщо сторінку не вдається прочитати, знахідка залишається відкритою.

Обмеження та джерела

Перевірка порівнює дві декларації; вона не визначає мову, якою написано сторінку, а Google каже, що не використовує жодну з них, щоб визначити мову сторінки. Споріднені коди, як-от no і nb, вважаються різними, а xml:lang і Content-Language не читаються.

Упевненість: Висока, бо обидві декларації зчитуються безпосередньо.

Джерела

Редакційна перевірка: 29 вересня 2026