Đó 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.

Xuất bản lần đầu: 2 thg 7, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

Đó 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.

TL;DR — lang declares đó 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à đó HTML lang thuộ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ới lang="es-x-mtfrom-en". Set một hợp lệ giá trị, giữ điều này consistent với hreflang, và kill đó boilerplate lang="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 Page

Three 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ông en-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 — reset lang locally 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 đó HTTP Content-Language header 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 cho lang khi đ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?

  • lang là 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 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.

`lang` describes this document for browsers and assistive technology; hreflang maps alternate URLs for search-result routing. Nguồn: Google Search Central

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:

  1. Đó content-language meta tag trong đó <head> (<meta http-equiv="content-language" content="en-us">).
  2. Đó <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 đề.»
  3. ccTLD.
  4. 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.

Caveat: Đây là 2011 post, hiện tại delisted từ Bing hiện tại blog archive. I’m citing nó qua Wayback Machine capture; không newer Bing statement supersedes nó đó I có thể tìm, so I treat mechanism as vẫn hiện tại — nhưng của nó age là worth flagging honestly thay vì presenting nó as fresh hướng dẫn.

đ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.

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

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-langhtml-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à remember GB, không UK.
  • 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 lang locally: <span lang="fr">c'est la vie</span>. Unset descendants inherit đó nearest ancestor lang, 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 lang says es-MX nhưng của nó hreflang chú thích cho đó giống nhau URL says en, đó 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 đó lang half 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 lang will improve my Google rankings.” (bản dịch) «Correct lang sẽ improve my Google thứ hạng.» Không. Google trạng thái điều này không dùng lang cho 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.
  • lang and hreflang are basically the same.” (bản dịch) «lang và hreflang là basically đó giống nhau.» Không — lang mô tả đó trang đây là on; hreflang points để other URLs. MỘT trang có thể có một correct lang và không hreflang, hoặc correct hreflang và một sai lang.
  • “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 behind content-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 đó default lang="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 lang gives a 22% CTR lift” (bản dịch) «Correct lang cho 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 empty lang="" 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.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.