Đó HTML lang Thuộc tính
Điều gì đó HTML lang thuộc tính làm, vì sao Google bỏ qua điều này cho language detection nhưng Bing dùng điều này, cách điều này differs từ hreflang, và vì sao điều này vẫn matters cho accessibility và đó trình duyệt auto-translate prompt.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanOn-Page SEO Checker
Đó HTML lang thuộc tính — set on đó root as <html lang="en"> (hoặc một region variant như en-US) — declares đó natural language of NÀY document nội dung dùng một BCP 47 tag. Điều này không phải đó giống nhau as hreflang: lang mô tả đó trang đây là on; hreflang declares alternate-language URLs cho other các trang. Google là blunt đó điều này bỏ qua lang cho language detection ('we không dùng đó tại all… gần như luôn sai' — Mueller); điều này dùng nội dung algorithms thay vì. Bing là đó opposite: của nó 2011 Quản trị viên web Blog names <html lang> as một fallback document-location tín hiệu, behind đó nội dung-language meta tag. Regardless of tìm kiếm weight, lang là một bắt buộc accessibility thuộc tính (WCAG 3.1.1) — điều này drives screen-reader pronunciation và đó trình duyệt auto-translate prompt, và 'bị thiếu document language' là vẫn một top-six WebAIM Million failure. Đó một Google carve-out: labeling machine-translated chặn với lang="es-x-mtfrom-en". Set một hợp lệ giá trị, giữ điều này consistent với hreflang, và không leave một boilerplate lang="en" on non-English nội dung.
Tóm tắt — HTML
langthuộc tính —lang="en"on của bạn trang opening<html>tag — tells các trình duyệt và screen readers Điều gì language của bạn trang nội dung là được viết trong. nó easy để mix lên với hreflang, nhưng họ’re khác:langmô tả điều này trang; hreflang points để của bạn khác language versions. Google không sử dụnglangđể detect trang language, trong khi thuộc tính vẫn matters cho accessibility và cho liệu của bạn trình duyệt offers để translate trang.
Điều gì lang thuộc tính là
Near rất top của phần lớn các trang web là tag đó looks như điều này:
<html lang="en">đó lang="en" là HTML lang thuộc tính. Của nó một job là để declare
language trang nội dung là được viết trong — en cho English, es cho Spanish,
de cho German. Bạn có thể nhận nhiều hơn cụ thể với region: en-US cho American
English, en-GB cho British English, pt-BR cho Brazilian Portuguese.
nó nhỏ điều, nhưng một vài khác các hệ thống đọc nó:
- Screen readers dùng điều này để pronounce của bạn words correctly — an English voice reading French text sounds như nonsense. Evidence for this claim 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. Scope: WCAG 2.2 Level A language-of-page requirement for HTML documents. Confidence: high · Verified: W3C: Understanding Language of Page
- Các trình duyệt dùng điều này (along với đó thực tế text) để decide liệu để pop lên “Translate this page?” (bản dịch) «Dịch trang này?»
- Google mostly bỏ qua điều này (hơn on vì sao trong đó Advanced tab).
lang không phải hreflang
Đây là confusion đó gửi phần lớn mọi người để trang như điều này một. Ở đây một-line khác biệt:
lang= “the content on this page is in this language.” (bản dịch) «đó nội dung on này trang là trong này language.» Một giá trị, set on của bạn<html>tag.- hreflang = “here are the other URLs that are the German, Spanish, and French versions of this page.” (bản dịch) «ở đây là đó other URLs đó là đó German, Spanish, và French versions of này trang.» MỘT set of links pointing để other các trang.
lang là self-mô tả. Hreflang là map để của bạn alternate các trang. đơn giản
single-language trang web cần đúng lang và không hreflang tại all. nếu bạn chạy
multilingual trang web, bạn’ll có cả hai — và họ nên agree với mỗi khác.
Điều gì giá trị nên bạn sử dụng?
sử dụng thực language code, không điều gì đó bạn đã làm lên:
- chỉ language nếu bạn không care về regional variants:
en,es,fr. - Language plus region nếu bạn làm:
en-US,en-GB,pt-BR.
không invent codes như eng hoặc en-UK ( đúng code cho UK là GB,
không UK). và không leave default lang="en" sitting trên một trang whose nội dung
không phải thực ra trong English — đó single phần lớn phổ biến mistake, và nó gây ra
thực các vấn đề với translation prompts và screen readers.
Muốn deeper version — chính xác Vì sao Google bỏ qua nó, Cách Bing dùng nó, accessibility rules, và trình duyệt auto-translate story? Chuyển để Nâng cao tab.
TL;DR —
langdeclares đó natural language of này document (<html lang="en">, hoặc một region variant nhưen-US) dùng một BCP 47 tag. Điều này là một khác nhau mechanism từ hreflang, mà declares alternate-language URLs — Google own tài liệu group đó hai together as điều này làm không dùng để detect một trang language. Mueller: “we don’t use that at all… almost always wrong.” (bản dịch) «we không dùng đó tại all… gần như luôn sai.» Regardless of tìm kiếm weight, một programmatically determinable trang language là một WCAG 3.1.1 Cấp độ MỘT requirement, và đó HTMLlangthuộc tính là đó tiêu chuẩn technique. Điều này hỗ trợ screen-reader pronunciation và đó trình duyệt auto-translate prompt, và “missing document language” (bản dịch) «bị thiếu document language» là vẫn một top-six WebAIM Million failure. Đó một Google carve-out: labeling machine-translated chặn vớilang="es-x-mtfrom-en". Set một hợp lệ giá trị, giữ điều này consistent với hreflang, và kill đó boilerplatelang="en"on non-English các trang.
Điều gì lang thuộc tính thực ra declares
HTML lang thuộc tính là global thuộc tính — nó có thể technically go on bất kỳ
element — nhưng một đó matters phần lớn sits on root: <html lang="en">. Của nó
giá trị là BCP 47 language tag, either language subtag on của nó own (en,
es, de) hoặc language-plus-region pair (en-US, en-GB, pt-BR, zh-Hans).
Điều gì điều này declares là hẹp và cụ thể: đó natural language of đó text nội dung on đó document đây là set on. Không đó language of của bạn alternate các trang, không đó country bạn là targeting — chỉ “the words on this page are in this language.” (bản dịch) «đó words on này trang là trong này language.»
Evidence for this claim 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. Scope: WHATWG HTML language semantics and IETF BCP 47 tag syntax. Confidence: high · Verified: WHATWG: The lang attribute IETF RFC 5646 Evidence for this claim 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. Scope: WCAG 2.2 Level A language-of-page requirement for HTML documents. Confidence: high · Verified: W3C: Understanding Language of PageThree precision points worth internalizing, drawn từ MDN reference:
- Hợp lệ các giá trị chỉ. MỘT BCP 47 tag — không một đã làm-lên three-letter code (
eng), không một đầy đủ language name, và khôngen-UK(đó region subtag cho đó United Kingdom làGB). Không hợp lệ các giá trị nhận treated as không giá trị. Syntactically well-formed không đó giống nhau as correct, either:lang="en"là một perfectly hợp lệ tag đó là vẫn sai on một French trang. Validity là một floor, không phải là bảo đảm đó giá trị thực ra matches đó nội dung (hơn on đó trong đó boilerplate-default trap dưới). - Empty không phải đó giống nhau as absent. An rõ ràng
lang=""có nghĩa là “unknown language” (bản dịch) «unknown language» — một deliberate state. MỘT genuinely bị thiếu thuộc tính là một khác nhau chế độ lỗi, và accessibility tools flag điều này as absent thay vì explicitly-unknown. - Đó root giá trị là một default, không một lock.
<html lang>sets điều gì mỗi descendant inherits trừ khi đây là overridden — resetlanglocally on bất kỳ element containing một real language thay đổi (see “Set it on the element that changes, too” (bản dịch) «Set điều này on đó element đó thay đổi, cũng» dưới). không confuse này trong-document declaration với đó HTTPContent-Languageheader phản hồi: đó header mô tả transport metadata về đó phản hồi, không đó parsed document, và điều này không một substitute cholangkhi điều này xuất hiện để element-cấp độ inheritance hoặc accessibility.
lang so với. hreflang: confusion, resolved
nếu bạn landed ở đây từ hreflang câu hỏi, Đây là section bạn muốn. những điều này hai nhận conflated constantly vì họ’re cả hai language-related, cả hai trực tiếp tại hoặc near top của document, và cả hai sử dụng similar-looking codes. nhưng họ làm unrelated jobs.
sạch nhất articulation xuất hiện straight từ Google own tài liệu on localized versions của bạn các trang, mà groups hai together precisely để chẳng hạn nó dùng neither cho detection:
“Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page; instead, we use algorithms to determine the language.” (bản dịch) «Google không dùng hreflang hoặc thuộc tính lang của HTML để xác định ngôn ngữ của trang; thay vào đó, chúng tôi dùng các thuật toán để xác định ngôn ngữ.»
đọc đó cẩn thận. Google names cả hai lang và hreflang trong một breath — as hai
tách biệt điều nó làm không sử dụng để hình out Điều gì language trang là trong. nó
detects language từ được kết xuất, visible nội dung thay vì.
So Điều gì thực tế khác biệt?
langlà một self-mô tả: một giá trị, on<html>(hoặc bất kỳ element), saying “this document’s content is in this language.” (bản dịch) «nội dung của tài liệu này ở ngôn ngữ này.» Đọc by các trình duyệt, screen readers, spell-checkers; dùng by Bing; đã bỏ qua by Google cho detection.- hreflang là một cross-trang map: một set of
<link rel="alternate">các chú thích (hoặc đó sitemap/header tương đương) listing đó other URLs đó là alternate language/region versions of này trang, và mà language mỗi targets. đây là một routing tín hiệu Google làm dùng — để serve đó right URL variant trong kết quả — không một detection tín hiệu.
They có thể và thường nên coexist. MỘT Mexican-Spanish trang carries <html lang="es-MX"> describing của nó own nội dung và một set of hreflang tags pointing để
của nó en-US, en-GB, và other siblings. Đó đầy đủ implementation of hreflang —
đó three các phương thức, đó reciprocal-linking rule, đó self-referential rule, và đó
quy mô of cách thường điều này breaks — là của nó own deep dive; này bài viết có chủ ý
không re-derive điều này. Đó một điều để carry trên: lang là đó đơn giản half
of này pair (một giá trị, một element, không reciprocity) precisely vì điều này không
carry hreflang cross-trang mối quan hệ complexity — mà John Mueller khi
called “one of the most complex aspects of SEO.” (bản dịch) «một of đó hầu hết phức tạp aspects of SEO.» Easy để set, though, không phải đó
giống nhau as commonly correct.
The root lang attribute gives one page a BCP 47 language self-description used by browsers and screen readers. Hreflang is a reciprocal cross-page map between alternate URLs, such as en-US and es-MX versions. Google detects a page's language from visible content rather than either annotation, but the lang value should remain accurate and consistent with the hreflang entry for the same URL.
© Patrick Stox LLC · CC BY 4.0 ·
là lang thuộc tính Google xếp hạng factor?
Ngắn câu trả lời: không, và Google có là unusually blunt về nó. definitive statement là John Mueller, reported by Barry Schwartz tại công cụ tìm kiếm Roundtable trong Google: chúng ta Bỏ qua HTML lang Thuộc tính. Asked Cách quan trọng nó là để declare trang language trong HTML, Mueller đã nói:
“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.” (bản dịch) «Chúng tôi hoàn toàn không dùng thuộc tính đó. Vì vậy, chúng tôi dùng các liên kết hreflang khi bạn có các phiên bản ngôn ngữ khác nhau. Nhưng thuộc tính ngôn ngữ trong mã HTML là thứ chúng tôi hoàn toàn không dùng. Chúng tôi nhận thấy đánh dấu ngôn ngữ này gần như luôn sai, nên có xu hướng bỏ qua.»
Đó “almost always wrong” (bản dịch) «gần như luôn sai» là đó key phrase. Google reason cho ignoring lang
không “it’s unimportant” (bản dịch) «đây là unimportant» — đây là đó tín hiệu là unreliable tại web quy mô.
Mọi người leave boilerplate lang="en" defaults trong place sau localizing nội dung;
CMS và framework templates ship một default đó không bao giờ nhận đã cập nhật (Vue CLI
generated boilerplate, chẳng hạn, hard-codes lang="en" regardless of điều gì
bạn xây dựng với điều này). Khi một tín hiệu là sai đó thường, đó sane engineering move
là để dừng trusting điều này và detect language từ đó nội dung trực tiếp — mà là
chính xác điều gì Google says điều này làm. Đó 2016 quote là old, nhưng đó hiện tại (2026)
Tìm kiếm Central doc quoted trên independently restates đó giống nhau policy, so treat
điều này as dài-standing, unretracted hướng dẫn thay vì một stale một-off.
một exception: machine-translated nội dung
có một single, hẹp place nơi Google tài liệu làm care về một lang-style
giá trị. Nếu bạn publish machine-translated nội dung, Google
translated-kết quả hướng dẫn
asks bạn để mark những chặn với một special giá trị format —
lang="<target>-x-mtfrom-<source>", e.g. lang="es-x-mtfrom-en" cho nội dung
machine-translated từ English vào Spanish. đó là đó exception đó proves đó
rule: Google bỏ qua lang cho chung language detection, nhưng này cụ thể
labeling convention là một điều này được định nghĩa và đọc. (Đó related lever, nếu bạn muốn
để opt out of translation features hoàn toàn, là đó 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,” (bản dịch) «Để opt out of all translation features trong Google Search, dùng đó notranslate rule, mà có thể là implemented as một meta tag hoặc an HTTP header,» theo đó giống nhau doc.)
Làm Bing sử dụng lang thuộc tính?
Có — và này là nơi lang nhận genuinely hơn consequential hơn đó “Google
ignores it” (bản dịch) «Google bỏ qua điều này» story suggests. Bing stance là đó opposite of Google, và đây là
dưới-covered gần như mọi nơi.
Trong của nó 2011 Quản trị viên web Blog post Cách Tell Bing Của bạn Website Country và Language, Bing lays out một priority order of “document location” (bản dịch) «document location» các tín hiệu điều này dùng cho relevance. Đó order, top để bottom:
- Đó
content-languagemeta tag trong đó<head>(<meta http-equiv="content-language" content="en-us">). - Đó
<html lang="en-us">thuộc tính, thì đó<title lang="en-us">thuộc tính, as fallbacks — “the priority order for these tags is:<meta>,<html>,<title>.” (bản dịch) «đó priority order cho những tags là: thẻ meta, thẻ html, thẻ tiêu đề.» - ccTLD.
- Reverse-IP lookup — dùng chỉ khi đó cao hơn các tín hiệu là inconclusive.
Bing advice là để pick một và là consistent: “It’s best that you use one
option, instead of multiple options here.” (bản dịch) «đây là best đó bạn dùng một option, thay vì multiple options ở đây.» So unlike Google, Bing explicitly dùng
<html lang> as một real (nếu thấp hơn-priority) targeting tín hiệu. Cho một site với
có ý nghĩa Bing traffic, đó thay đổi đó được khuyến nghị hành động: set lang
correctly, và consider một matching content-language meta tag on top.
điều này cũng closes loop với hreflang side của điều: Bing barely dùng
hreflang way Google làm — content-language plus lang là Bing parallel
mechanism.
Vì sao lang thuộc tính matters anyway: accessibility
Ngay cả setting tìm kiếm aside hoàn toàn, lang earns của nó place. nó là bắt buộc
accessibility thuộc tính — WCAG thành công Criterion 3.1.1 (Cấp độ ) requires
default human language của mỗi trang để là programmatically determinable, mà trong
practice có nghĩ là hợp lệ <html lang>. tách biệt criterion, 3.1.2, covers marking
language thay đổi trong trang.
downstream effects là concrete và well-được ghi lại (Adrian Roselli
On sử dụng của Lang Thuộc tính
catalogs nhiều): screen readers sử dụng lang để pick đúng pronunciation engine
và voice (JAWS phonetic engine, VoiceOver tự động voice switching), CSS
hyphens: auto phụ thuộc vào nó, spellcheck behavior keys off nó, quotation-mark
kết xuất và default CJK font selection follow nó, và Braille displays behave
differently với nó. Chính xác Cách mỗi của những điều này plays out varies by screen reader,
trình duyệt, và installed voice — Roselli own các kiểm thử hiển thị JAWS và VoiceOver không
behave identically — so treat đúng lang giá trị as enabling right
behavior, không guaranteeing giống hệt experience trên mỗi assistive-technology
stack.
Và đây là không một solved vấn đề. Theo đó hiện tại
WebAIM Million báo cáo, “missing document
language” (bản dịch) «bị thiếu document language» sits tại 13,5% of home các trang — đó sixth hầu hết phổ biến automated
accessibility failure on đó web. Đó rate là improving (xuống từ 15,8% đó
prior năm, và 17,1% và 18,6% trước đó), nhưng “a large, shrinking problem” (bản dịch) «một lớn, shrinking vấn đề» là
vẫn một vấn đề. Google own tooling reflects đó cách diễn đạt: Lighthouse
html-has-lang và html-lang-valid kiểm tra trực tiếp dưới của nó Accessibility
category, không của nó SEO category — một nice tell đó ngay cả Google nhà phát triển tools
bucket lang as an a11y concern, không một xếp hạng một. Những kiểm tra là được xây dựng on
Deque axe-cốt lõi rule of đó giống nhau name,
mà classifies một bị thiếu lang as một WCAG 2,0/2,1 Cấp độ MỘT “Serious” vấn đề.
trình duyệt behavior: auto-translate prompt
có một hơn visible behavior lang governs: đó trình duyệt “Translate this
page?” (bản dịch) «Dịch trang này?» prompt. Chrome (và others) weigh lang alongside thực tế visible-text
analysis khi deciding liệu để offer translation. MỘT sai hoặc bị thiếu giá trị có thể
misfire trong cả hai directions — falsely offering để translate một trang đó là đã
trong đó reader language, hoặc failing để offer điều này on một genuinely foreign một.
Đó vivid thực tế ví dụ là Manuel Matuzovic
đó lang thuộc tính: các trình duyệt telling lies, telling sweet little lies:
đó Austrian broadcaster ORF.tại shipped German nội dung với lang="en", so
Chrome auto-translate treated đó German text as English và “translated” điều này,
chuyển thành đó Vienna district name “Liesing” vào đó English word “lies.” đó là
đó boilerplate-default trap producing một người dùng-facing bug — đó chính xác class of
vấn đề Mueller “almost always wrong” (bản dịch) «gần như luôn sai» đã là describing.
Cách đặt nó correctly
- Dùng một hợp lệ BCP 47 tag. Language subtag alone (
en,es,fr) nếu bạn không cần regional phân biệt; language-region (en-US,en-GB,pt-BR) nếu bạn làm. Pull codes từ đó IANA Language Subtag Registry; không invent them, và rememberGB, khôngUK. - Set điều này on đó element đó thay đổi, cũng. Cho an embedded foreign phrase trong
an nếu không single-language trang, reset
langlocally:<span lang="fr">c'est la vie</span>. Unset descendants inherit đó nearest ancestorlang, so đó root giá trị covers mọi thứ bạn không override. - Kill đó boilerplate default. Đó
lang="en"của bạn template hoặc CMS shipped với là chỉ correct nếu nội dung của bạn là thực ra trong English. Này là đó failure Mueller called out và đó ORF.tại bug trong miniature — audit cho điều này. - Giữ lang và hreflang consistent. Nếu một trang
langsayses-MXnhưng của nó hreflang chú thích cho đó giống nhau URL saysen, đó là một mismatch. đây là chính xác đó “Hreflang and HTML lang mismatch” (bản dịch) «Hreflang và HTML lang mismatch» vấn đề I được ghi lại trong Ahrefs’ hreflang hướng dẫn — nơi I put điều này plainly: “Google doesn’t use the HTML language attribute, but other search engines and browsers do. It’s important to keep these two attributes consistent with one another.” (bản dịch) «Google không dùng đó HTML language thuộc tính, nhưng other các công cụ tìm kiếm và các trình duyệt làm. Điều quan trọng là giữ cho hai thuộc tính này nhất quán với nhau.» Google bỏ qua đólanghalf of đó so sánh, nhưng một mismatch vẫn các tín hiệu đó điều gì đó là misconfigured — mà là vì sao site audit tools flag điều này.
phổ biến myths
- “Correct
langwill improve my Google rankings.” (bản dịch) «Correctlangsẽ improve my Google thứ hạng.» Không. Google trạng thái điều này không dùnglangcho language detection tại all. Điều này có thể quan trọng cho Bing và indirectly help qua accessibility và translation behavior, nhưng một trực tiếp Google xếp hạng benefit không supported. - “
langand hreflang are basically the same.” (bản dịch) «langvà hreflang là basically đó giống nhau.» Không —langmô tả đó trang đây là on; hreflang points để other URLs. MỘT trang có thể có một correctlangvà không hreflang, hoặc correct hreflang và một sailang. - “No search engine cares about
lang.” (bản dịch) «Không công cụ tìm kiếm cares vềlang.» Bing explicitly làm (as một fallback behindcontent-language). Cho bất kỳ site với real Bing traffic, này không một “nobody cares” (bản dịch) «không ai cares» situation. - “Leaving the default
lang="en"is harmless if my content isn’t English.” (bản dịch) «Leaving đó defaultlang="en"là harmless nếu my nội dung không English.» đây là close để word-cho-word đó failure Mueller called “almost always wrong,” (bản dịch) «gần như luôn sai,» và đây là điều gì triggers sai translate prompts và sai screen-reader pronunciation. - “Correct
langgives a 22% CTR lift” (bản dịch) «Correctlangcho một 22% CTR lift» / “AI crawlers process lang-tagged pages 40% faster.” (bản dịch) «AI các crawler xử lý lang-tagged các trang 40% nhanh hơn.» Những cụ thể figures circulate on một handful of SEO marketing blogs với không traceable nghiên cứu, methodology, hoặc chính nguồn. I không thể corroborate either so với bất kỳ chính thức statement hoặc đầu tiên-party dữ liệu — treat them as đó kind of confident-sounding, baseless folklore đó accretes khoảng thấp-scrutiny kỹ thuật topics. - “An empty
lang=""is the same as not having one.” (bản dịch) «An emptylang=""là đó giống nhau as không có một.» Không — an rõ ràng empty giá trị có nghĩa là “unknown language,” (bản dịch) «unknown language,» một distinct state từ một genuinely absent thuộc tính.
nơi điều này fits
Đây là thuộc tính-cấp độ deep dive của HTML SEO subcluster — sibling
để element-cấp độ treatment của <article>, <nav>, và <main> trong
semantic HTML bài viết, và để rộng hơn HTML-SEO hub trên them. cho đầy đủ
cross-trang targeting story — three implementation các phương thức, reciprocal rules,
và Cách thường clusters break tại quy mô — hreflang deep dive là place để go;
điều này bài viết job là chỉ để giữ hai straight trong của bạn head.
AI summary
condensed take on Nâng cao version:
langdeclares đó language of này document (<html lang="en">, hoặc một region variant nhưen-US) dùng một BCP 47 tag. đây là một self-mô tả, không một targeting hoặc routing mechanism.- Điều này không phải hreflang. Google own tài liệu group cả hai together as điều này làm
không dùng cho language detection: “Google doesn’t use hreflang or the HTML
lang attribute to detect the language of a page… we use algorithms.” (bản dịch) «Google không dùng hreflang hoặc đó HTML lang thuộc tính để detect đó language of một trang… we dùng algorithms.»
langmô tả đó trang đây là on; hreflang points để alternate-language URLs. - Google bỏ qua
langcho detection — Mueller: “we don’t use that at all… almost always wrong,” (bản dịch) «we không dùng đó tại all… gần như luôn sai,» vì boilerplate/CMS defaults làm điều này unreliable tại quy mô. Một carve-out: labeling machine-translated chặn vớilang="es-x-mtfrom-en". - Bing làm đó opposite: của nó 2011 Quản trị viên web Blog names
<html lang>as một fallback document-location tín hiệu, behind đócontent-languagemeta tag (order: meta > html > tiêu đề). Cho Bing traffic, setlangcorrectly. - Accessibility là đó real stakes: WCAG 3.1.1 requires điều này; điều này drives
screen-reader pronunciation,
hyphens: auto, spellcheck, và CJK fonts. “Missing document language” (bản dịch) «Bị thiếu document language» là vẫn ~13,5% of home các trang — một top-six WebAIM Million failure, though shrinking. - Các trình duyệt dùng điều này cho đó auto-translate prompt — một sai giá trị misfires (đó
ORF.tại
lang="en"-on-German bug đó “translated” một district name vào “lies”). - Nhận điều này right: hợp lệ BCP 47 tag (
GB, khôngUK), resetlangon embedded foreign phrases, kill boilerplatelang="en"on non-English các trang, và giữlangconsistent với hreflang (đó “Hreflang and HTML lang mismatch” (bản dịch) «Hreflang và HTML lang mismatch» audit vấn đề).
Tài liệu chính thức
Chính-nguồn tài liệu và các tiêu chuẩn references.
- Localized Versions of của bạn Các trang — đó “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page” (bản dịch) «Google không dùng hreflang hoặc đó HTML lang thuộc tính để detect đó language of một trang» line.
- Translated Google Search Kết quả — đó
lang="x-mtfrom-"machine-translation labeling convention và đónotranslateopt-out. - Managing Multi-Regional và Multilingual Các trang — liền kề context on language/region các tín hiệu.
Bing / Microsoft
- Cách Tell Bing của bạn trang web Country và Language (Bing Quản trị viên web Blog, 2011) —
meta > html > titledocument-location priority order. gốc URL là delisted; text confirmed qua Wayback Machine capture.
Các tiêu chuẩn / kỹ thuật references
- MDN —
langglobal thuộc tính — BCP 47 requirement, empty-string so với. absent behavior, inheritance, WCAG references. - W3C Internationalization — Declaring language trong HTML — BCP 47 / IANA registry hướng dẫn và nested-element rules cho mixed-language nội dung.
- Deque University — axe rule
html-has-lang— đó WCAG 2,0/2,1 Cấp độ MỘT classification behind Lighthouse accessibility audit. - WebAIM Million — đó annual accessibility survey với đó “missing document language” (bản dịch) «bị thiếu document language» failure rate.
Quotes từ nguồn
On—record statements. mỗi link deep-links để quoted passage nơi nguồn trang hỗ trợ nó.
Google — nó không sử dụng lang cho detection
- “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page; instead, we use algorithms to determine the language.” (bản dịch) «Google không dùng hreflang hoặc thuộc tính lang của HTML để xác định ngôn ngữ của trang; thay vào đó, chúng tôi dùng các thuật toán để xác định ngôn ngữ.» — Google Search Central tài liệu. Nhảy đến trích dẫn
Google — machine-translation carve-out và 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.” (bản dịch) «Để opt out of all translation features trong Google Search, dùng đó notranslate rule, mà có thể là implemented as một meta tag hoặc an HTTP header.» — Translated Google Search Kết quả. Nhảy đến trích dẫn
John Mueller, Google — “almost always wrong” (bản dịch) «gần như luôn sai»
- “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.” (bản dịch) «Chúng tôi hoàn toàn không dùng thuộc tính đó. Vì vậy, chúng tôi dùng các liên kết hreflang khi bạn có các phiên bản ngôn ngữ khác nhau. Nhưng thuộc tính ngôn ngữ trong mã HTML là thứ chúng tôi hoàn toàn không dùng. Chúng tôi nhận thấy đánh dấu ngôn ngữ này gần như luôn sai, nên có xu hướng bỏ qua.» — qua Công cụ tìm kiếm Roundtable coverage of một 2016 Google Quản trị viên web hangout. Đọc bài đưa tin Relayed qua Barry Schwartz ghi-lên of đó 2016 hangout (đó original video không independently reachable). Đó underlying “we don’t use lang for detection” (bản dịch) «we không dùng lang cho detection» policy là independently reconfirmed by đó hiện tại Tìm kiếm Central doc quoted trên, so I treat đó position as vẫn chính xác despite đó quote age.
Bing / Microsoft — lang là fallback targeting tín hiệu
- Priority order cho document-location các tín hiệu: “the priority order for these tags is:
<meta>,<html>,<title>,” (bản dịch) «đó priority order cho những tags là: thẻ meta, thẻ html, thẻ tiêu đề,» với một khuyến nghị để “use one option, instead of multiple options here.” (bản dịch) «dùng một option, thay vì multiple options ở đây.» — Bing Quản trị viên web Blog, “How To Tell Bing Your Website’s Country and Language,” (bản dịch) «Cách Tell Bing Của bạn Website Country và Language,» 2011. Quoted từ đó 2011 post qua của nó Wayback Machine capture — đó original URL là delisted từ Bing hiện tại blog archive, và không newer Bing statement supersedes đó mechanism đó I có thể tìm. Của nó age (2011) là một real caveat; I’m citing điều này as dài-standing nhưng old.
Me — giữ lang và hreflang consistent
- “Google doesn’t use the HTML language attribute, but other search engines and browsers do. It’s important to keep these two attributes consistent with one another.” (bản dịch) «Google không dùng đó HTML language thuộc tính, nhưng other các công cụ tìm kiếm và các trình duyệt làm. Điều quan trọng là giữ cho hai thuộc tính này nhất quán với nhau.» — từ Ahrefs’ hreflang hướng dẫn, on đó “Hreflang and HTML lang mismatch” (bản dịch) «Hreflang và HTML lang mismatch» audit vấn đề. Đọc điều này
Mà language tag làm I thực ra cần?
nhanh walk-qua Khi bạn’re staring tại trang và không sure Điều gì để đặt.
1. Làm bạn chỉ cần để declare Điều gì language điều này trang là trong?
đó lang thuộc tính. đặt <html lang="…">. Go để step 2.
2. Làm bạn cần distinguish regional variants (US so với. UK English, Brazilian so với. European Portuguese)?
- Không → sử dụng language subtag alone:
<html lang="en">,lang="es",lang="pt">. - Có → sử dụng language-region:
<html lang="en-US">,lang="en-GB">,lang="pt-BR">. (Region làGB, khôngUK.)
3. Làm trang contain passages trong khác language ( French quote trong English bài viết)?
- Có → wrap them và reset locally:
<span lang="fr">c'est la vie</span>. Mọi thứ khác inherits root<html lang>. - Không → root giá trị covers toàn bộ trang.
4. Làm bạn cũng có giống nhau trang trong khác languages tại khác các URL?
- Có → bạn additionally cần hreflang — tách biệt mechanism pointing để
những điều đó alternate các URL. giữ mỗi trang
langconsistent với của nó hreflang entry. (See hreflang deep dive; đó của nó own xây dựng.) - Không → bạn’re đã xong với
langalone.
5. là nội dung machine-translated?
- Có → theo Google, label translated block:
lang="<target>-x-mtfrom-<source>"(e.g.lang="es-x-mtfrom-en"). - Không → đơn giản BCP 47 tag là all bạn cần.
6. Làm Bing traffic quan trọng để bạn?
- Có → đặt
langcorrectly và cân nhắc matchingcontent-languagemeta tag — Bing weights meta trên<html lang>. Pick một consistent giá trị; không đặt conflicting ones. - Không →
langon<html>plus accessibility correctness là đủ.
lang thuộc tính bảng tra nhanh
lang so với. hreflang — một-line khác biệt
lang | hreflang | |
|---|---|---|
| Declares | language của điều này trang nội dung | khác các URL đó là alternate-language versions |
| Shape | Một giá trị on <html> (hoặc bất kỳ element) | đặt của <link rel="alternate"> các chú thích (hoặc sitemap/header) |
| Google dùng nó? | Không (đã bỏ qua cho detection) | Có — để route right URL variant |
| Bing dùng nó? | Có — fallback targeting tín hiệu | Barely |
| Accessibility / translate prompt? | Có | Không |
Ai đọc <html lang>
| Consumer | Điều gì nó làm với nó |
|---|---|
| Bỏ qua nó cho language detection (algorithms thay vì) | |
| Bing | Fallback targeting tín hiệu, behind content-language meta |
| Screen readers | Pronunciation / voice selection (WCAG 3.1.1) |
| các trình duyệt | Một input để auto-translate prompt |
| CSS / spellcheck | hyphens: auto, spellcheck, quotation marks, CJK fonts |
Hợp lệ các giá trị
- Language chỉ:
en,es,fr,de - Language-region:
en-US,en-GB,pt-BR,zh-Hans - Không hợp lệ:
eng(three-letter),en-UK(sử dụngGB), đầy đủ language names lang=""= “unknown” ( thực state, khác từ absent)- Machine-translated block:
lang="es-x-mtfrom-en"
Fast facts
- Mueller:
langlà “almost always wrong” (bản dịch) «gần như luôn sai» — Google bỏ qua điều này cho detection. - Bing priority order: meta
content-language><html lang>><title lang>. - “Missing document language” (bản dịch) «Bị thiếu document language» ≈ 13,5% of home các trang (WebAIM Million, top-six failure, trending xuống).
- Lighthouse
html-has-langlives dưới Accessibility, không SEO. - Giữ
langconsistent với hreflang — đó “Hreflang and HTML lang mismatch” (bản dịch) «Hreflang và HTML lang mismatch» audit vấn đề.
HTML lang mistakes
- Leaving
lang="en"trong mỗi localized template. đặt language từ thực tế document locale và kiểm thử non-English routes. - sử dụng
langthay vì hreflang.langmô tả điều này document; hreflang connects alternate các URL. Implement mỗi cho của nó own job. - Thêm country code đó không match nội dung. sử dụng hợp lệ BCP 47 tag và thêm region chỉ Khi language variant là genuinely regional.
- Putting thuộc tính on wrapper thay vì root
<html>. Declare trang chính language on document element; sử dụng locallangcác thuộc tính cho passages trong một language. - Assuming Google cần
langđể detect language. giữ nó cho accessibility, các trình duyệt, Bing, và các tiêu chuẩn—không as Google xếp hạng lever.
screen reader dùng sai pronunciation
có khả năng nguyên nhân: bị thiếu, không hợp lệ, hoặc không đúng root language; foreign-language passages có thể cũng là unmarked. khắc phục: đặt đúng BCP 47 giá trị on <html> và local overrides nơi language thay đổi. xác nhận: inspect accessibility tree và kiểm thử với relevant screen reader voice.
mỗi localized trang nói lang="en"
có khả năng nguyên nhân: hard-coded base template hoặc locale mapping đó không bao giờ reaches document shell. khắc phục: derive root giá trị từ route/nội dung locale on máy chủ hoặc tại xây dựng time. xác nhận: crawl representative locale các URL và so sánh declared language với visible nội dung.
lang và hreflang disagree
có khả năng nguyên nhân: tách biệt locale maps, không hợp lệ region codes, hoặc template fallback. khắc phục: sử dụng một normalized locale configuration trong khi bảo toàn khác purposes của hai các tín hiệu. xác nhận: mỗi trang declares của nó own nội dung language và của nó alternate links point để đúng reciprocal variants.
trình duyệt translation prompts là sai
có khả năng nguyên nhân: declared language conflicts với dominant visible nội dung hoặc mixed-language chặn không phải scoped. khắc phục: đúng root declaration và mark substantial passages với của họ own lang. xác nhận: trình duyệt và accessibility kiểm tra identify dự kiến chính language.
Tools cho language declarations
- On-trang SEO Checker surfaces thô document language alongside khác HTML các tín hiệu.
- hreflang Generator + Linter kiểm tra alternate-language codes và relationships; sử dụng nó alongside, không thay vì, root
langaudit. - trình duyệt DevTools hiển thị root
<html lang>giá trị và accessibility tree được sử dụng by assistive technology. - crawler với XPath extraction có thể so sánh declaration trên locale templates:
string(/html/@lang).
các tài nguyên worth của bạn time
My related writing
- Hreflang: Đó Easy Hướng dẫn cho Beginners — đó hreflang deep dive I’m credited on, including đó “Hreflang and HTML lang mismatch” (bản dịch) «Hreflang và HTML lang mismatch» audit vấn đề đó ties
langvà hreflang together. - Đó Beginner Hướng dẫn để SEO kỹ thuật — nơi markup và international các tín hiệu fit trong đó bigger picture.
My speaking
- Cách Tìm kiếm Hoạt động (SlideShare) — my walkthrough of crawling, kết xuất, lập chỉ mục, và xếp hạng, including cách Google đọc (và normalizes) của bạn markup. (My standing disclaimer áp dụng: “This is my understanding of systems… not going to be 100% complete or accurate.” (bản dịch) «Này là my understanding of các hệ thống… không going để là 100% hoàn tất hoặc chính xác.»)
Chính thức
- Google — Localized Versions của bạn các trang và Translated Google kết quả tìm kiếm.
- Bing — Cách Tell Bing của bạn trang web Country và Language (2011, qua Wayback Machine).
Từ khoảng đó ngành
- MDN —
langglobal thuộc tính — đó definitive kỹ thuật reference: BCP 47, empty-so với-absent, inheritance. - W3C — Declaring language trong HTML — đó các tiêu chuẩn-thân phản hồi cách-để, including mixed-language các trang.
- Deque — axe rule
html-has-lang— đó accessibility rule behind Lighthouse audit. - WebAIM Million — đó annual survey với đó hiện tại “missing document language” (bản dịch) «bị thiếu document language» failure rate.
- Adrian Roselli — On Dùng of Lang Thuộc tính — đó deep accessibility catalog of điều gì
langthực ra ảnh hưởng. - Manuel Matuzovic — đó lang thuộc tính: các trình duyệt telling lies — đó ORF.tại
lang="en"-on-German auto-translate case nghiên cứu. - Google: We Bỏ qua Đó HTML lang Thuộc tính (Công cụ tìm kiếm Roundtable) — đó đầy đủ Mueller “almost always wrong” (bản dịch) «gần như luôn sai» quote.
- r/TechSEO — đó community cho markup, international, và audit gỡ lỗi.
Tự kiểm tra: HTML lang Thuộc tính
Five nhanh các câu hỏi on Điều gì lang làm và Cách nó differs từ hreflang. Pick
câu trả lời cho mỗi, sau đó kiểm tra.
Nhật ký thay đổi
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 18 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.