Guide : The HTML lang Attribute
Ce que le HTML lang attribut fait, pourquoi Google ignores il pour langue detection mais Bing utilise il, comment il differs depuis hreflang, et pourquoi il encore matters pour accessibility et le navigateur auto-translate prompt.
1 indice probant sur cette page
- Outil en ligne associéOn-Page SEO Checker
Le HTML lang attribut — définir on le root as <html lang="en"> (or a region variant comme en-US) — declares le natural langue de CE document's contenu en utilisant a BCP 47 balise. Il n’est pas le même as hreflang: lang décrit lune page c’est on; hreflang declares alternate-langue URLs pour autre pages. Google est blunt que il ignores lang pour langue detection ('nous ne pas utiliser que à tout… presque toujours incorrect' — Mueller); il utilise contenu algorithms à la place. Bing est le opposite: son 2011 Webmaster Blog noms <html lang> as a fallback document-location signal, behind le contenu-langue meta balise. Regardless de recherche weight, lang est a requis accessibility attribut (WCAG 3.1.1) — il drives screen-lecteur pronunciation et le navigateur's auto-translate prompt, et 'manquant document langue' est encore a top-six WebAIM Million échec. Le un Google carve-out: labeling machine-translated bloque avec lang="es-x-mtfrom-en". Définir a valide valeur, garder il consistent avec hreflang, et ne pas laisser a boilerplate lang="en" on non-English contenu.
TL;DR — Le HTML
langattribut — lelang="en"on votre page’s opening<html>balise — indique navigateurs et screen lecteurs ce que langue votre page’s contenu est written dans. c’est facile à mix up avec hreflang, mais ils sont différent:langdécrit ce page; hreflang points à votre autre langue versions. Google ne fait pas utiliserlangà detect une page’s langue, pendant que le attribut encore matters pour accessibility et pour si votre navigateur offers à translate une page.
Ce que the lang attribute is
Near the very top of la plupart web pages is a tag que semble comme ce:
<html lang="en">Que lang="en" est le HTML lang attribut. Son un job est à declare le
langue lune page’s contenu est written dans — en pour English, es pour Spanish,
de pour German. Vous pouvez obtenir plus spécifique avec a region: en-US pour American
English, en-GB pour British English, pt-BR pour Brazilian Portuguese.
It’s a petit chose, but a few différent systems lire it:
«- Screen readers use it to pronounce your words correctly — an English voice reading French text sounds like nonsense.
Preuve à l’appui de cette affirmation WCAG 2.2 success criterion 3.1.1 requires the default human language of a page to be programmatically determinable, and W3C lists lang on the html element as a sufficient HTML technique. Portée : WCAG 2.2 Level A language-of-page requirement for HTML documents. Niveau de confiance : élevé · Vérifié : W3C: Understanding Language of Page» (Traduction) (Résumé en français de la section neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Browsers use it (along with the actual text) to decide whether to pop up “Translate this page?” » (Traduction) (Résumé en français de la section neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Google mostly ignores it (more on why in the Advanced tab). » (Traduction) (Résumé en français de la section neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
lang n’est pas hreflang
Ce est le confusion que sends la plupart personnes à une page comme ce un. Ici’s le un-line difference:
«- lang = “the content on this page is in this language.” One value, set
on your <html> tag.
» (Traduction) (Résumé en français de la section douze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- hreflang = “here are the other URLs that are the German, Spanish, and
French versions of this page.” A set of links pointing to other pages.
» (Traduction) (Résumé en français de la section douze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
lang est a self-description. Hreflang est a map à votre alternate pages. A simple
unique-langue site nécessite a correct lang et aucun hreflang à tout. Si vous exécuter a
multilingual site, vous’ll ont les deux — et ils devrait agree avec chaque autre.
Ce que valeur devrait vous utiliser?
Utiliser a réel language code, pas something vous made up:
- Simplement the language si vous don’t care à propos de regional variants:
en,es,fr. - Language plus region si vous do:
en-US,en-GB,pt-BR.
ne pas invent codes comme eng or en-UK (le correct code pour le UK est GB,
pas UK). Et ne pas laisser le par défaut lang="en" sitting on une page whose contenu
n’est pas en réalité dans English — c’est le unique la plupart courant mistake, et il causes
réel problèmes avec traduction prompts et screen lecteurs.
Vouloir le deeper version — exactly pourquoi Google ignores il, comment Bing utilise il, le accessibility règles, et le navigateur auto-translate story? Switch à le Avancé tab.
TL;DR —
langdeclares le natural langue de ce document (<html lang="en">, or a region variant likeen-US) en utilisant a BCP 47 balise. Il est a différent mechanism depuis hreflang, qui declares alternate-langue URLs — Google’s propre docs groupe le deux ensemble as choses il fait pas utiliser à detect une page’s langue. Mueller: “nous ne pas utiliser ce à tous… presque toujours wrong.” Regardless de recherche weight, a programmatically determinable page langue est a WCAG 3.1.1 Level A requirement, et le HTMLlangattribut est le standard technique. Il prend en charge screen-lecteur pronunciation et le navigateur auto-translate prompt, et “manquant document langue” est encore a top-six WebAIM Million échec. Le un Google carve-out: labeling machine-translated bloque aveclang="es-x-mtfrom-en". Définir a valide valeur, garder il consistent avec hreflang, et kill le boilerplatelang="en"on non-English pages.
Ce que the lang attribute en réalité declares
Le HTML lang attribut est a mondial attribut — il peut technically go on quelconque
element — mais le un que matters la plupart sits on le root: <html lang="en">. Son
valeur est a BCP 47 langue balise, soit a langue subtag on son propre (en,
es, de) or a langue-plus-region pair (en-US, en-GB, pt-BR, zh-Hans).
«What it declares is narrow and specific: the natural language of the text content on the document it’s set on. Not the language of your alternate pages, not the country you’re targeting — just “the words on this page are in this language.”
Preuve à l’appui de cette affirmation The HTML lang attribute specifies an element's language using a valid BCP 47 language tag; on the root html element it establishes the document's default language. Portée : WHATWG HTML language semantics and IETF BCP 47 tag syntax. Niveau de confiance : élevé · Vérifié : WHATWG: The lang attribute IETF RFC 5646 Preuve à l’appui de cette affirmation WCAG 2.2 success criterion 3.1.1 requires the default human language of a page to be programmatically determinable, and W3C lists lang on the html element as a sufficient HTML technique. Portée : WCAG 2.2 Level A language-of-page requirement for HTML documents. Niveau de confiance : élevé · Vérifié : W3C: Understanding Language of Page» (Traduction) (Résumé en français de la section vingt-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Three precision points worth internalizing, drawn depuis le MDN référence:
- Valide valeurs seulement. A BCP 47 balise — pas a fait-up three-letter code (
eng), pas a complet langue nom, et pasen-UK(le region subtag pour le United Kingdom estGB). Invalide valeurs obtenir treated as aucun valeur. Syntactically well-formed n’est pas le même as correct, soit:lang="en"est a perfectly valide balise c’est encore incorrect on a French page. Validity est a floor, pas a guarantee le valeur en réalité matches le contenu (plus on que dans le boilerplate-default trap ci-dessous). - Vide n’est pas le même as absent. An explicit
lang=""signifie “unknown language” — a deliberate state. A genuinely manquant attribut est a différent échec mode, et accessibility outils flag il as absent plutôt que explicitly-unknown. - Le root valeur est a par défaut, pas a lock.
<html lang>sets ce que chaque descendant inherits unless c’est overridden — resetlanglocally on quelconque element containing a réel langue modifier (voir “Définir il on le element que changements, aussi” ci-dessous). ne pas confuse ce dans-document declaration avec le HTTPContent-Languageréponse header: que header décrit transport metadata à propos de la réponse, pas le parsed document, et il n’est pas a substitute pourlangquand il comes à element-level inheritance or accessibility.
lang vs. hreflang: le confusion, resolved
Si vous landed ici depuis a hreflang question, ce est le section vous vouloir. Ces deux obtenir conflated constantly parce que ils sont les deux langue-related, les deux actif à or near le top de le document, et les deux utiliser similar-looking codes. Mais ils faire unrelated jobs.
Le cleanest articulation comes straight depuis Google’s propre documentation on localized versions de votre pages, qui groupes le deux ensemble precisely à dire il utilise aucun pour detection:
“Google ne fait pas utiliser hreflang or le HTML lang attribut à detect le langue de une page; à la place, nous utiliser algorithms à determine le langue.”
Lire que carefully. Google noms les deux lang et hreflang dans un breath — as deux
séparé choses il fait pas utiliser à figure out ce que langue une page est dans. Il
detects langue depuis le rendu, visible contenu à la place.
So what’s the réel difference?
«- lang is a self-description: one value, on <html> (or any element),
saying “this document’s content is in this language.” Read by browsers, screen
readers, spell-checkers; used by Bing; ignored by Google for detection.
» (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- hreflang is a cross-page map: a set of <link rel="alternate">
annotations (or the sitemap/header equivalent) listing the other URLs that
are alternate language/region versions of this page, and which language each
targets. It’s a routing signal Google does use — to serve the right URL
variant in results — not a detection signal.
» (Traduction) (Résumé en français de la section trente-trois, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
Ils peut et souvent devrait coexist. A Mexican-Spanish page carries <html lang="es-MX"> describing son propre contenu et a définir de hreflang balises pointing à
son en-US, en-GB, et autre siblings. Le complet implementation de hreflang —
le three méthodes, le reciprocal-linking règle, le self-referential règle, et le
scale de comment souvent il breaks — est son propre deep dive; ce article deliberately
ne fait pas re-derive il. Le un chose à carry à travers: lang est le simple half
de ce pair (un valeur, un element, aucun reciprocity) precisely parce que il ne fait pas
carry hreflang’s cross-page relationship complexity — qui John Mueller une fois
appelé “un de le la plupart complexe aspects de SEO.” Facile à définir, though, n’est pas le
même as commonly correct.
Le root lang attribut donne un page a BCP 47 langue self-description utilisé par navigateurs et screen lecteurs. Hreflang est a reciprocal cross-page map entre alternate URLs, tel as en-US et es-MX versions. Google detects une page's langue depuis visible contenu plutôt que soit annotation, mais le lang valeur devrait remain précis et consistent avec le hreflang entry pour le même URL.
© Patrick Stox LLC · CC BY 4.0 ·
Est le lang attribut a Google facteur de classement?
Court réponse: aucun, et Google a été unusually blunt à propos de il. Le definitive statement est John Mueller’s, reported par Barry Schwartz à Moteur de recherche Roundtable dans Google: Nous Ignore Le HTML lang Attribut. Asked comment important il est à declare une page’s langue dans le HTML, Mueller said:
“Nous ne pas utiliser que à tout. Donc nous utiliser le hreflang liens si vous ont que si vous ont différent langue versions. Mais le langue attribut dans le HTML markup est quelque chose nous ne pas utiliser à tout. nous avons trouvé que ce langue markup est quelque chose que est presque toujours incorrect. Donc nous tend à ignore que.”
Que “almost always wrong” est le clé phrase. Google’s raison pour ignoring lang
n’est pas “it’s unimportant” — c’est que le signal est unreliable à web scale.
Personnes laisser boilerplate lang="en" defaults dans placer après localizing contenu;
CMS et framework templates ship a par défaut que jamais obtient mis à jour (Vue CLI’s
generated boilerplate, pour instance, difficile-codes lang="en" regardless de ce que
vous construire avec il). Quand a signal est incorrect que souvent, le sane engineering déplacer
est à arrêter trusting il et detect langue depuis le contenu directement — qui est
exactly ce que Google dit il fait. Que 2016 citation est old, mais le actuel (2026)
Recherche Central doc quoted ci-dessus independently restates le même policy, donc treat
il as long-standing, unretracted guidance plutôt que a stale un-off.
The un exception: machine-translated content
«There’s a single, narrow place where Google’s docs do care about a lang-style
value. If you publish machine-translated content, Google’s
translated-results guidance
asks you to mark those blocks with a special value format —
lang="<target>-x-mtfrom-<source>", e.g. lang="es-x-mtfrom-en" for content
machine-translated from English into Spanish. That’s the exception that proves the
rule: Google ignores lang for general language detection, but this specific
labeling convention is one it defined and reads. (The related lever, if you want
to opt out of translation features entirely, is the notranslate rule — “To opt
out of all translation features in Google Search, use the notranslate rule, which
can be implemented as a meta tag or an HTTP header,” per the same doc.)
» (Traduction) (Résumé en français de la section quarante et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Fait Bing utiliser the lang attribute?
Oui — et ce est où lang obtient genuinely plus consequential que le “Google
ignores il” story suggests. Bing’s stance est le opposite de Google’s, et c’est
under-covered presque everywhere.
Dans son 2011 Webmaster Blog post Comment Tell Bing Votre Site web’s Country et Langue, Bing lays out a priority order de “document location” signaux il utilise pour pertinence. Le order, top à bottom:
- Le
content-languagemeta balise dans le<head>(<meta http-equiv="content-language" contenu="en-us">). - Le
<html lang="en-us">attribut, alors le<title lang="en-us">attribut, as fallbacks — “le priority order pour ces balises est:<meta>,<html>,<title>.” - ccTLD.
- Reverse-IP lookup — utilisé seulement quand le plus élevé signaux sont inconclusive.
Bing’s advice est à pick un et être consistent: “c’est meilleur que vous utiliser un
option, au lieu de plusieurs options ici.” Donc unlike Google, Bing explicitly utilise
<html lang> as a réel (si lower-priority) targeting signal. Pour a site avec
meaningful Bing trafic, que changements le recommended action: définir lang
correctement, et considérer a matching content-language meta balise on top.
Ce aussi closes le loop avec le hreflang side de choses: Bing barely utilise
hreflang le façon Google fait — content-language plus lang est Bing’s parallel
mechanism.
Pourquoi le lang attribut matters anyway: accessibility
Même setting search aside entirely, lang earns its placer. It is a requis
accessibility attribute — WCAG Success Criterion 3.1.1 (Level A) exige the
par défaut human language of chaque page to be programmatically determinable, qui in
pratique signifie a valid <html lang>. A separate criterion, 3.1.2, covers marking
language changements dans une page.
Le downstream effects sont concrete et well-documented (Adrian Roselli’s
On Utiliser de Lang Attribut
catalogs nombreux): screen lecteurs utiliser lang à pick le correct pronunciation moteur
et voice (JAWS’s phonetic moteur, VoiceOver’s automatic voice switching), CSS
hyphens: auto dépend on il, spellcheck behavior keys off il, quotation-mark
rendu et par défaut CJK font selection suivre il, et Braille displays behave
differently avec il. Exactly comment chaque de ces plays out varies par screen lecteur,
navigateur, et installed voice — Roselli’s propre tests montrer JAWS et VoiceOver ne pas
behave identically — donc treat a correct lang valeur as enabling le correct
behavior, pas guaranteeing an identical experience à travers chaque assistive-technology
stack.
Et c’est pas a solved problème. Per le actuel
WebAIM Million rapport, “manquant document
langue” sits à 13,5% de home pages — le sixth la plupart courant automated
accessibility échec on le web. Le rate est improving (bas depuis 15,8% le
prior année, et 17,1% et 18,6% avant que), mais “a large, shrinking problem” est
encore a problème. Google’s propre tooling reflects le framing: Lighthouse’s
html-has-lang et html-lang-valid vérifications actif sous son Accessibility
category, pas son SEO category — a nice tell que même Google’s developer outils
bucket lang as an a11y concern, pas a classement un. Ceux vérifications sont construit on
Deque’s axe-core règle de le même nom,
qui classifies a manquant lang as a WCAG 2,0/2,1 Level A “Serious” problème.
Navigateur behavior: the auto-translate prompt
il y a un plus visible behavior lang governs: le navigateur’s “Translate ce
page?” prompt. Chrome (et others) weigh lang alongside réel visible-texte
analysis quand deciding si à offer traduction. A incorrect or manquant valeur peut
misfire dans les deux directions — falsely offering à translate une page c’est déjà
dans le lecteur’s langue, or failing à offer il on a genuinely foreign un.
«The vivid real-world example is Manuel Matuzovic’s
the lang attribute: browsers telling lies, telling sweet little lies:
the Austrian broadcaster ORF.at shipped German content with lang="en", so
Chrome’s auto-translate treated the German text as English and “translated” it,
turning the Vienna district name “Liesing” into the English word “lies.” That’s
the boilerplate-default trap producing a user-facing bug — the exact class of
problem Mueller’s “almost always wrong” was describing.
» (Traduction) (Résumé en français de la section cinquante-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
How to définir it correctement
- Utiliser a valide BCP 47 balise. Langue subtag alone (
en,es,fr) si vous ne pas besoin regional distinction; langue-region (en-US,en-GB,pt-BR) si vous faire. Pull codes depuis le IANA Langue Subtag Registry; ne pas invent les, et rememberGB, pasUK. - Définir il on le element que changements, aussi. Pour an embedded foreign phrase dans
an sinon unique-langue page, reset
langlocally:<span lang="fr">c'est la vie</span>. Unset descendants inherit the nearest ancestor’slang, donc le root valeur covers tout vous ne pas override. - Kill le boilerplate par défaut. Le
lang="en"votre template or CMS shipped avec est seulement correct si votre contenu est en réalité dans English. Ce est le échec Mueller appelé out et le ORF.à bug dans miniature — audit pour il. - Garder lang et hreflang consistent. Si une page’s
langdites-MXmais son hreflang annotation pour que même URL diten, c’est a mismatch. c’est exactly le “Hreflang et HTML lang mismatch” problème Je documented dans Ahrefs’ hreflang guide — où Je put il plainly: “Google ne fait pas utiliser le HTML langue attribut, mais autre recherche moteurs et navigateurs faire. c’est important à garder ces deux attributs consistent avec un un autre.” Google ignores lelanghalf de que comparaison, mais a mismatch encore signaux que quelque chose est misconfigured — qui est pourquoi site audit outils flag il.
Courant myths
«- “Correct lang will improve my Google rankings.” No. Google states it
doesn’t use lang for language detection at all. It can matter for Bing and
indirectly help via accessibility and translation behavior, but a direct Google
ranking benefit isn’t supported.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “lang and hreflang are basically the same.” No — lang describes the page
it’s on; hreflang points to other URLs. A page can have a correct lang and no
hreflang, or correct hreflang and a wrong lang.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “No search engine cares about lang.” Bing explicitly does (as a fallback
behind content-language). For any site with real Bing traffic, this isn’t a
“nobody cares” situation.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Leaving the default lang="en" is harmless if my content isn’t English.”
It’s close to word-for-word the failure Mueller called “almost always wrong,” and
it’s what triggers wrong translate prompts and wrong screen-reader pronunciation.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Correct lang gives a 22% CTR lift” / “AI crawlers process lang-tagged pages
40% faster.” These specific figures circulate on a handful of SEO marketing
blogs with no traceable study, methodology, or primary source. I couldn’t
corroborate either against any official statement or first-party data — treat
them as the kind of confident-sounding, baseless folklore that accretes around
low-scrutiny technical topics.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “An empty lang="" is the same as not having one.” No — an explicit empty
value means “unknown language,” a distinct state from a genuinely absent
attribute.
» (Traduction) (Résumé en français de la section cinquante-neuf, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
Où ce fits
Ce est le attribut-level deep dive de le HTML SEO subcluster — le sibling
à le element-level treatment de <article>, <nav>, et <main> dans le
semantic HTML article, et à le broader HTML-SEO hub ci-dessus les. Pour le complet
cross-page targeting story — le three implementation méthodes, reciprocal règles,
et comment souvent clusters break à scale — le hreflang deep dive est le placer à go;
ce article’s job est simplement à garder le deux straight dans votre head.
AI summary
A condensed prendre on the Avancé version:
«- lang declares the language of this document (<html lang="en">, or a
region variant like en-US) using a BCP 47 tag. It’s a self-description, not a
targeting or routing mechanism.
» (Traduction) (Résumé en français de la section soixante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- It is not hreflang. Google’s own docs group both together as things it does
not use for language detection: “Google doesn’t use hreflang or the HTML
lang attribute to detect the language of a page… we use algorithms.” lang
describes the page it’s on; hreflang points to alternate-language URLs.
» (Traduction) (Résumé en français de la section soixante-six, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Google ignores lang for detection — Mueller: “we don’t use that at all…
almost always wrong,” because boilerplate/CMS defaults make it unreliable at
scale. One carve-out: labeling machine-translated blocks with
lang="es-x-mtfrom-en".
» (Traduction) (Résumé en français de la section soixante-six, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Bing does the opposite: its 2011 Webmaster Blog names <html lang> as a
fallback document-location signal, behind the content-language meta tag (order:
meta > html > title). For Bing traffic, set lang correctly.
» (Traduction) (Résumé en français de la section soixante-six, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Accessibility is the real stakes: WCAG 3.1.1 requires it; it drives
screen-reader pronunciation, hyphens: auto, spellcheck, and CJK fonts.
“Missing document language” is still ~13.5% of home pages — a top-six WebAIM
Million failure, though shrinking.
» (Traduction) (Résumé en français de la section soixante-six, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Browsers use it for the auto-translate prompt — a wrong value misfires (the
ORF.at lang="en"-on-German bug that “translated” a district name into “lies”).
» (Traduction) (Résumé en français de la section soixante-six, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Get it right: valid BCP 47 tag (GB, not UK), reset lang on embedded
foreign phrases, kill boilerplate lang="en" on non-English pages, and keep
lang consistent with hreflang (the “Hreflang and HTML lang mismatch” audit
issue).
» (Traduction) (Résumé en français de la section soixante-six, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Official documentation » (Traduction) (Résumé en français de la section soixante-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Primary-source documentation and standards references. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Localized Versions of your Pages — the “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page” line.
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Translated Google Search Results — the lang="x-mtfrom-" machine-translation labeling convention and the notranslate opt-out.
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Managing Multi-Regional and Multilingual Sites — adjacent context on language/region signals.
» (Traduction) (Résumé en français de la section soixante-onze, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«Bing / Microsoft
» (Traduction) (Résumé en français de la section soixante-douze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- How To Tell Bing Your Website’s Country and Language (Bing Webmaster Blog, 2011) — the meta > html > title document-location priority order. Original URL is delisted; text confirmed via the Wayback Machine capture.
» (Traduction) (Résumé en français de la section soixante-douze, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«Standards / technical references
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- MDN — lang global attribute — BCP 47 requirement, empty-string vs. absent behavior, inheritance, WCAG references.
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- W3C Internationalization — Declaring language in HTML — BCP 47 / IANA registry guidance and nested-element rules for mixed-language content.
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Deque University — axe rule html-has-lang — the WCAG 2.0/2.1 Level A classification behind Lighthouse’s accessibility audit.
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- WebAIM Million — the annual accessibility survey with the “missing document language” failure rate.
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«## Quotes from the source » (Traduction) (Résumé en français de la section soixante-seize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
On-le-record statements. Chaque lien deep-liens à le quoted passage où le page source prend en charge il.
Google — it doesn’t utiliser lang pour detection
- “Google ne fait pas utiliser hreflang or le HTML lang attribut à detect le langue de a page; instead, nous utiliser algorithms à determine le langue.” — Recherche Google Central docs. Jump à citation
Google — le machine-traduction carve-out et notranslate
«- “To opt out of all translation features in Google Search, use the notranslate rule, which can be implemented as a meta tag or an HTTP header.” — Translated Google Search Results. Jump to quote » (Traduction) (Résumé en français de la section quatre-vingt-un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«John Mueller, Google — “almost always wrong” » (Traduction) (Résumé en français de la section quatre-vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “We don’t use that at all. So we use the hreflang links if you have that if you have different language versions. But the language attribute within the HTML markup is something we don’t use at all. We’ve found that this language markup is something that is almost always wrong. So we tend to ignore that.” — via Search Engine Roundtable’s coverage of a 2016 Google Webmaster hangout. Read the coverage Relayed via Barry Schwartz’s write-up of the 2016 hangout (the original video isn’t independently reachable). The underlying “we don’t use lang for detection” policy is independently reconfirmed by the current Search Central doc quoted above, so I treat the position as still accurate despite the quote’s age. » (Traduction) (Résumé en français de la section quatre-vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Bing / Microsoft — lang est a fallback targeting signal
- Priority order pour document-location signaux: “le priority order pour ces balises est:
<meta>,<html>,<title>,” avec a recommendation à “use one option, instead of multiple options here.” — Bing Webmaster Blog, “Comment Tell Bing Votre Site web’s Country et Langue,” 2011. Quoted depuis le 2011 post via son Wayback Machine capture — le original URL est delisted depuis Bing’s actuel blog archive, et aucun newer Bing statement supersedes le mechanism que Je pourrait trouver. Son age (2011) est a réel caveat; Je’m citing il as long-standing mais old.
Me — keeping lang et hreflang consistent
- “Google ne fait pas utiliser le HTML langue attribut, mais autre moteurs de recherche et navigateurs faire. c’est important à garder ces deux attributs consistent avec un autre.” — depuis Ahrefs’ hreflang guide, on le “Hreflang et HTML lang mismatch” audit problème. Lire il
Qui language tag do I en réalité besoin?
A rapide walk-via quand vous êtes staring à une page et pas certain ce que à définir.
1. Faire vous simplement besoin à declare ce que langue ce page est dans?
c’est le lang attribut. Définir <html lang="…">. Go à étape 2.
2. Faire vous devez distinguish regional variants (US vs. UK English, Brazilian vs. European Portuguese)?
- Aucun → utiliser le langue subtag alone:
<html lang="en">,lang="es",lang="pt">. - Oui → utiliser langue-region:
<html lang="en-US">,lang="en-GB">,lang="pt-BR">. (Region estGB, pasUK.)
3. Fait lune page contenir passages dans a différent langue (a French citation dans an English article)?
- Oui → wrap les et reset locally:
<span lang="fr">c'est la vie</span>. Tout sinon inherits le root<html lang>. - Aucun → le root valeur covers le entier page.
4. Faire vous aussi ont le même page dans autre languages à autre URLs?
- Oui → vous additionally besoin hreflang — a séparé mechanism pointing à
ceux alternate URLs. Garder chaque page’s
langconsistent avec son hreflang entry. (Voir le hreflang deep dive; c’est son propre construire.) - Aucun → vous êtes fait avec
langalone.
5. Is le contenu machine-translated?
- Yes → per Google, étiquette the translated block:
lang="<target>-x-mtfrom-<source>"(e.g.lang="es-x-mtfrom-en"). - Aucun → a plain BCP 47 tag is tout vous besoin.
6. Fait Bing trafic matter to vous?
- Yes → définir
langcorrectement and considérer a matchingcontent-languagemeta tag — Bing weights meta ci-dessus<html lang>. Pick un consistent valeur; don’t définir conflicting ones. - Aucun →
langon<html>plus accessibility correctness is suffisant.
lang attribute cheat sheet
lang vs. hreflang — le un-line difference
lang | hreflang | |
|---|---|---|
| Declares | Le langue de ce page’s contenu | Le autre URLs que sont alternate-langue versions |
| Shape | Un valeur on <html> (or quelconque element) | A définir de <link rel="alternate"> annotations (or sitemap/header) |
| Google utilise il? | Aucun (ignored pour detection) | Oui — à route le correct URL variant |
| Bing utilise il? | Oui — fallback targeting signal | Barely |
| Accessibility / translate prompt? | Oui | Aucun |
Who reads <html lang>
| Consumer | Ce que il fait avec il |
|---|---|
| Ignores il pour langue detection (algorithms à la place) | |
| Bing | Fallback targeting signal, behind content-language meta |
| Screen lecteurs | Pronunciation / voice selection (WCAG 3.1.1) |
| Navigateurs | Un entrée à le auto-translate prompt |
| CSS / spellcheck | hyphens: auto, spellcheck, quotation marks, CJK fonts |
Valid valeurs
«- Language only: en, es, fr, de
» (Traduction) (Résumé en français de la section cent sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Language-region: en-US, en-GB, pt-BR, zh-Hans
» (Traduction) (Résumé en français de la section cent sept, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Invalid: eng (three-letter), en-UK (use GB), full language names
» (Traduction) (Résumé en français de la section cent sept, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- lang="" = “unknown” (a real state, different from absent)
» (Traduction) (Résumé en français de la section cent sept, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Machine-translated block: lang="es-x-mtfrom-en"
» (Traduction) (Résumé en français de la section cent sept, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
Fast facts
- Mueller:
langest “almost always wrong” — Google ignores il pour detection. - Bing priority order: meta
content-language><html lang>><title lang>. - “Missing document language” ≈ 13,5% de home pages (WebAIM Million, top-six échec, trending bas).
- Lighthouse’s
html-has-langlives sous Accessibility, pas SEO. - Garder
langconsistent avec hreflang — le “Hreflang et HTML lang mismatch” audit problème.
HTML lang mistakes
- Leaving
lang="en"dans chaque localized template. Définir le langue depuis le réel document locale et tester non-English routes. - En utilisant
langau lieu de hreflang.langdécrit ce document; hreflang connects alternate URLs. Implement chaque pour son propre job. - Ajout a country code que ne fait pas match le contenu. Utiliser a valide BCP 47 balise et ajouter a region seulement quand le langue variant est genuinely regional.
- Putting le attribut on a wrapper au lieu de le root
<html>. Declare lune page’s principal langue on le document element; utiliser locallangattributs pour passages dans un autre langue. - Assuming Google nécessite
langà detect langue. Garder il pour accessibility, navigateurs, Bing, et standards—pas as a Google classement lever.
A screen reader uses the incorrect pronunciation
Probable causer: manquant, invalide, or incorrect root langue; foreign-langue passages peut aussi être unmarked. Corriger: définir le correct BCP 47 valeur on <html> et local overrides où langue changements. Confirmer: inspect le accessibility tree et tester avec le pertinent screen lecteur voice.
Every localized page dit lang="en"
Probable causer: a difficile-coded base template or locale mapping que jamais reaches le document shell. Corriger: derive le root valeur depuis le route/contenu locale on le serveur or à construire temps. Confirmer: explorer representative locale URLs et comparer declared langue avec visible contenu.
lang and hreflang disagree
Probable causer: séparé locale maps, invalide region codes, or a template fallback. Corriger: utiliser un normalized locale configuration pendant que preserving le différent purposes de le deux signaux. Confirmer: chaque page declares son propre contenu langue et son alternate liens point à le correct reciprocal variants.
Navigateur translation prompts are incorrect
Probable causer: le declared langue conflicts avec le dominant visible contenu or mixed-langue bloque ne sont pas scoped. Corriger: correct le root declaration et mark substantial passages avec leur propre lang. Confirmer: navigateur et accessibility vérifications identifier le prévu principal langue.
Outils pour language declarations
- Sur la page SEO Checker surfaces le raw document langue alongside autre HTML signaux.
- hreflang Generator + Linter vérifications alternate-langue codes et relationships; utiliser il alongside, pas au lieu de, le root
langaudit. - Navigateur DevTools montre le root
<html lang>valeur et accessibility tree utilisé par assistive technology. - A robot d’exploration avec XPath extraction peut comparer le declaration à travers locale templates:
string(/html/@lang).
Ressources utiles
Mon connexe writing
- Hreflang: Le Facile Guide pour Beginners — le hreflang deep dive Je’m credited on, notamment le “Hreflang et HTML lang mismatch” audit problème que ties
langet hreflang ensemble. - Le Beginner’s Guide à SEO technique — où markup et international signaux fit dans le bigger picture.
Mon speaking
- Comment Recherche Fonctionne (SlideShare) — mon walkthrough de exploration, rendu, indexation, et classement, notamment comment Google lit (et normalizes) votre markup. (Mon standing disclaimer s’applique: “This is my understanding of systems… not going to be 100% complete or accurate.”)
Official
- Google — Localized Versions de votre pages et Translated Recherche Google Résultats.
- Bing — Comment Tell Bing Votre Site web’s Country et Langue (2011, via Wayback Machine).
Depuis autour le industry
- MDN —
langmondial attribut — le definitive technique référence: BCP 47, empty-vs-absent, inheritance. - W3C — Declaring langue dans HTML — le standards-body comment-à, notamment mixed-langue pages.
- Deque — axe règle
html-has-lang— le accessibility règle behind Lighthouse’s audit. - WebAIM Million — le annual survey avec le actuel “missing document language” échec rate.
- Adrian Roselli — On Utiliser de Lang Attribut — le deep accessibility catalog de ce que
langen réalité affecte. - Manuel Matuzovic — le lang attribut: navigateurs telling lies — le ORF.à
lang="en"-on-German auto-translate cas study. - Google: Nous Ignore Le HTML lang Attribut (Moteur de recherche Roundtable) — le complet Mueller “presque toujours wrong” citation.
- r/TechSEO — le community pour markup, international, et audit debugging.
«## Test yourself: The HTML lang Attribute » (Traduction) (Résumé en français de la section cent trente-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Five quick questions on what lang does and how it differs from hreflang. Pick an
answer for each, then check.
» (Traduction) (Résumé en français de la section cent trente-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.