HTML lang Attribute

ne HTML lang attribute yapar, neden Google ignores o bençin language detection ama Bing kullanır o, nasıl o differs -den hreflang, ve neden o hâlâ önem taşır bençin accessibility ve browser auto-translate prompt.

İlk yayın tarihi: 2 Tem 2026 · Son güncelleme: 8 Ağu 2026 · Advanced
Diller
Bu sayfada 1 kanıt sinyali

HTML lang attribute — ayarla on root olarak <html lang="en"> (veya bir region varyant like en-US) — declares natural language of bu belge's bençerik kullanarak bir BCP 47 tag. o değildir aynı olarak hreflang: lang describes sayfa o's on; hreflang declares alternate-language URLs bençin diğer sayfalar. Google dır blunt şu o ignores lang bençin language detection ('biz yapmayın kullan şu at tümü… almost her zaman yanlış' — Mueller); o kullanır bençerik algorithms instead. Bing dır opposite: onun 2011 Webmaster Blog names <html lang> olarak bir fallback belge-location sinyal, behind bençerik-language meta tag. Regardless of arama weight, lang dır bir required accessibility attribute (WCAG 3.1.1) — o drives screen-reader pronunciation ve browser's auto-translate prompt, ve 'missing belge language' dır hâlâ bir top-six WebAIM Million başarısızlık. bir Google carve-out: labeling machine-translated blocks ile lang="es-x-mtfrom-en". ayarla bir valid değer, koru o consistent ile hreflang, ve yapmayın leave bir boilerplate lang="en" on non-English bençerik.

TL;DR — lang declares natural language of bu belge (<html lang="en">, veya bir region varyant like en-US) kullanarak bir BCP 47 tag. o dır bir farklı mechanism -den hreflang, hangi declares alternate-language URLs — Google’ın kendi docs grup two together olarak things o yapar değil kullan -e detect bir sayfa’s language. Mueller: “we don’t use that at all… almost always wrong.” Regardless of arama weight, bir programmatically determinable sayfa language dır bir WCAG 3.1.1 Level bir requirement, ve HTML lang attribute dır standard technique. o supports screen-reader pronunciation ve browser auto-translate prompt, ve “missing belge language” dır hâlâ bir top-six WebAIM Million başarısızlık. bir Google carve-out: labeling machine-translated blocks ile lang="es-x-mtfrom-en". ayarla bir valid değer, koru o consistent ile hreflang, ve kill boilerplate lang="en" on non-English sayfalar.

ne lang attribute aslında declares

HTML lang attribute dır bir global attribute — o -ebilir technically go on herhangi bir element — ama bir şu önem taşır en çok sits on root: <html lang="en">. onun değer dır bir BCP 47 language tag, either bir language subtag kendi başına (en, es, de) veya bir language-plus-region pair (en-US, en-GB, pt-BR, zh-Hans).

ne o declares dır narrow ve specific: * natural language of text bençerik on belge o’s ayarla on.* değil language of sizin alternate sayfalar, değil country siz’re targeting — sadece “the words on this page are in this 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 benşaret eder worth internalizing, drawn -den MDN reference:

  • Valid values yalnızca. bir BCP 47 tag — değil bir yapılmış-up three-letter code (eng), değil bir full language name, ve değil en-UK ( region subtag bençin United Kingdom dır GB). Invalid values al ele alınır olarak no değer. Syntactically well-formed değildir aynı olarak correct, either: lang="en" dır bir perfectly valid tag şu’s hâlâ yanlış on bir French sayfa. Validity dır bir floor, değil bir guarantee değer aslında matches bençerik (daha on şu in boilerplate-default trap below).
  • Empty değildir aynı olarak absent. bir explicit lang="" anlamına gelir “unknown language” — bir deliberate state. bir genuinely missing attribute dır bir farklı başarısızlık mode, ve accessibility araçlar flag o olarak absent yerine explicitly-unknown.
  • ** root değer dır bir default, değil bir lock.** <html lang> sets ne her descendant inherits unless o’s overridden — reset lang locally on herhangi bir element containing bir gerçek language change (see “ayarla o on element şu changes, de” below). yapmayın confuse bu in-belge declaration ile HTTP Content-Language response header: şu header describes transport metadata hakkında response, değil parsed belge, ve o değildir bir substitute bençin lang ne zaman o comes -e element-level inheritance veya accessibility.

lang vs. hreflang: confusion, resolved

-erseniz landed burada -den bir hreflang soru, bu section siz iste. bunlar two al conflated constantly çünkü onlar’re her ikisi language-related, her ikisi live at veya near top of belge, ve her ikisi kullan benzer-looking codes. ama onlar yap unrelated jobs.

cleanest articulation comes straight -den Google’ın kendi dokümantasyon on localized sürümler of sizin sayfalar, hangi gruplar two together precisely -e söyle o kullanır neither bençin detection:

“Google yapmaz kullan hreflang veya HTML lang attribute -e detect language of bir sayfa; instead, biz kullan algorithms -e determine language.”

okuyun şu carefully. Google names her ikisi lang ve hreflang in bir breath — olarak two separate things o yapar değil kullan -e figure out ne language bir sayfa dır in. o detects language -den rendered, visible bençerik instead.

bu nedenle ne’s gerçek difference?

  • lang dır bir self-description: bir değer, on <html> (veya herhangi bir element), saying “this document’s content is in this language.” okuyun tarafından browsers, screen readers, spell-checkers; kullanılan tarafından Bing; ignored tarafından Google bençin detection.
  • hreflang dır bir cross-sayfa map: bir ayarla of <link rel="alternate"> annotations (veya sitemap/header eşdeğeri) listing diğer URLs şu dır alternate language/region sürümler of bu sayfa, ve hangi language her targets. o’s bir routing sinyal Google yapar kullan — -e sun yapğru URL varyant in sonuçlar — değil bir detection sinyal.

onlar -ebilir ve çoğu zaman -meli coexist. bir Mexican-Spanish sayfa carries <html lang="es-MX"> describing onun kendi bençerik ve bir ayarla of hreflang tags pointing -e onun en-US, en-GB, ve diğer siblings. full implementation of hreflang — three methods, reciprocal-linking kural, self-referential kural, ve scale of nasıl çoğu zaman o breaks — dır onun kendi deep dive; bu article deliberately yapmaz re-derive o. bir thing -e carry genelinde: lang dır simple half of bu pair (bir değer, bir element, no reciprocity) precisely çünkü o yapmaz carry hreflang’s cross-sayfa relationship complexity — hangi John Mueller once called “one of the most complex aspects of SEO.” Easy -e ayarla, gerçben, değildir aynı olarak commonly correct.

`lang` describes this document for browsers and assistive technology; hreflang maps alternate URLs for search-result routing. Kaynak: 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 ·

dır lang attribute bir Google sıralama faktörü?

kısa yanıt: no, ve Google sahiptir olmuş unusually blunt hakkında o. definitive statement dır John Mueller’s, reported tarafından Barry Schwartz at arama motoru Roundtable in Google: biz Ignore HTML lang Attribute. Asked nasıl önemli o dır -e declare bir sayfa’s language in HTML, Mueller said:

“biz yapmayın kullan şu at tümü. bu nedenle biz kullan hreflang bağlantılar -erseniz sahip şu -erseniz sahip farklı language sürümler. ama language attribute bençinde HTML markup dır something biz yapmayın kullan at tümü. biz’ve found şu bu language markup dır something bu almost her zaman yanlış. bu nedenle biz tend -e ignore şu.”

şu “almost always wrong” dır key phrase. Google’s neden bençin ignoring lang değildir “it’s unimportant” — o’s şu sinyal dır unreliable at web scale. kişiler leave boilerplate lang="en" defaults in place sonra localizing bençerik; CMS ve framework templates ship bir default şu never alır updated (Vue CLI’s generated boilerplate, bençin instance, hard-codes lang="en" regardless of ne siz oluştur ile o). ne zaman bir sinyal dır yanlış şu çoğu zaman, sane engineering move dır -e durdur trusting o ve detect language -den bençerik yapğrudan — bu da tam olarak ne Google şunu söylüyor o yapar. şu 2016 quote dır eski, ama güncel (2026) arama Central doc quoted above independently restates aynı politika, bu nedenle ele al o olarak uzun-standing, unretracted rehberlik yerine bir stale bir-off.

bir exception: machine-translated bençerik

orada’s bir tek, narrow place nerede Google’s docs yap care hakkında bir lang-style değer. -erseniz publish machine-translated bençerik, Google’s translated-sonuçlar rehberlik asks siz -e mark şunlar blocks ile bir special değer format — lang="<target>-x-mtfrom-<source>", e.g. lang="es-x-mtfrom-en" bençin bençerik machine-translated -den English -e Spanish. şu’s exception şu proves kural: Google ignores lang bençin general language detection, ama bu specific labeling convention dır bir o defined ve reads. ( related lever, -erseniz iste -e opt out of translation features entirely, dır notranslate kural — “-e opt out of tümü translation features in Google arama, kullan notranslate kural, hangi -ebilir olmak implemented olarak bir meta tag veya bir HTTP header,” per aynı doc.)

yapar Bing kullan lang attribute?

Yes — ve bu nerede lang alır genuinely daha consequential -den “Google ignores o” story suggests. Bing’s stance dır opposite of Google’s, ve o’s altında-covered almost everywhere.

In onun 2011 Webmaster Blog post nasıl -e söyle Bing sizin web sitesi’s Country ve Language, Bing lays out bir priority sıra of “document location” sinyaller o kullanır bençin relevance. sıra, top -e bottom:

  1. content-language meta tag in <head> (<meta http-equiv="content-language" content="en-us">).
  2. <html lang="en-us"> attribute, o hâlde <title lang="en-us"> attribute, olarak fallbacks — ” priority sıra bençin bunlar tags dır: <meta>, <html>, <title>.”
  3. ccTLD.
  4. Reverse-IP lookup — kullanılan yalnızca ne zaman higher sinyaller dır inconclusive.

Bing’s advice dır -e seç bir ve olmak consistent: “o’s en iyi şu siz kullan bir option, yerine birden çok options burada.” bu nedenle unlike Google, Bing explicitly kullanır <html lang> olarak bir gerçek (eğer lower-priority) targeting sinyal. bençin bir site ile meaningful Bing trafik, şu changes recommended action: ayarla lang yapğru biçimde, ve düşün bir matching content-language meta tag on top.

Caveat: bu bir 2011 post, now delisted -den Bing’s güncel blog archive. ben’m alıntılanmaya değer o via Wayback Machine capture; no newer Bing statement supersedes o şu ben -ebilirdi bul, bu nedenle ben ele al mechanism olarak hâlâ güncel — ama onun age dır worth flagging honestly yerine presenting o olarak fresh rehberlik.

bu ayrıca closes loop ile hreflang side of things: Bing barely kullanır hreflang way Google yapar — content-language plus lang dır Bing’s parallel mechanism.

neden lang attribute önem taşır anyway: accessibility

hatta ayarlama arama aside entirely, lang earns onun place. o dır bir required accessibility attribute — WCAG Success Criterion 3.1.1 (Level bir) requires default human language of her sayfa -e olmak programmatically determinable, hangi in practice anlamına gelir bir valid <html lang>. bir separate criterion, 3.1.2, kapsar marking language changes bençinde bir sayfa.

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 dır concrete ve well-documented (Adrian Roselli’s On kullan of Lang Attribute catalogs çok söyleıda): screen readers kullan lang -e seç correct pronunciation motor ve voice (JAWS’s phonetic motor, VoiceOver’s automatic voice switching), CSS hyphens: auto depends on o, spellcheck behavior keys off o, quotation-mark rendering ve default CJK font selection izle o, ve Braille displays behave differently ile o. tam olarak nasıl her of bunlar plays out varies tarafından screen reader, browser, ve installed voice — Roselli’s kendi testler göster JAWS ve VoiceOver yapmayın behave identically — bu nedenle ele al bir correct lang değer olarak enabling yapğru behavior, değil guaranteeing bir identical experience genelinde her assistive-technology stack.

ve o’s değil bir solved sorun. Per güncel WebAIM Million rapor, “missing belge language” sits at 13,5% of home sayfalar — sixth en çok yaygın automated accessibility başarısızlık on web. rate dır improving (down -den 15,8% prior year, ve 17,1% ve 18,6% önce şu), ama “a large, shrinking problem” dır hâlâ bir sorun. Google’ın kendi tooling reflects framing: Lighthouse’s html-has-lang ve html-lang-valid kontroller live altında onun Accessibility category, değil onun SEO category — bir nice söyle şu hatta Google’s developer araçlar bucket lang olarak bir a11y concern, değil bir sıralama bir. şunlar kontroller dır oluşturulmuş on Deque’s axe-temel kural of aynı name, hangi classifies bir missing lang olarak bir WCAG 2,0/2,1 Level bir “Serious” sorun.

Browser behavior: auto-translate prompt

orada’s bir daha visible behavior lang governs: browser’s “Translate bu sayfa?” prompt. Chrome (ve others) weigh lang alongside gerçek visible-text analysis ne zaman deciding whether -e offer translation. bir yanlış veya missing değer -ebilir misfire in her ikisi directions — falsely offering -e translate bir sayfa şu’s zaten in reader’s language, veya failing -e offer o on bir genuinely foreign bir.

vivid gerçek-world örnek dır Manuel Matuzovic’s lang attribute: browsers telling lies, telling sweet little lies: Austrian broadcaster ORF.at shipped German bençerik ile lang="en", bu nedenle Chrome’s auto-translate ele alınır German text olarak English ve “translated” o, turning Vienna district name “Liesing” -e English word “lies.” şu’s boilerplate-default trap producing bir kullanıcı-facing bug — exact class of sorun Mueller’s “almost always wrong” idi describing.

nasıl -e ayarla o yapğru biçimde

  • kullan bir valid BCP 47 tag. Language subtag alone (en, es, fr) -erseniz yapmayın ihtiyaç duy regional distinction; language-region (en-US, en-GB, pt-BR) eğer siz yap. Pull codes -den IANA Language Subtag Registry; yapmayın invent them, ve remember GB, değil UK.
  • ayarla o on element şu changes, de. bençin bir embedded foreign phrase in bir otherwise tek-language sayfa, reset lang locally: <span lang="fr">c'est la vie</span>. Unset descendants inherit nearest ancestor’s lang, bu nedenle root değer kapsar everything siz yapmayın override.
  • Kill boilerplate default. lang="en" sizin template veya CMS shipped ile dır yalnızca correct eğer sizin bençerik dır aslında in English. bu başarısızlık Mueller called out ve ORF.at bug in miniature — denetim bençin o.
  • koru lang ve hreflang consistent. eğer bir sayfa’s lang söyler es-MX ama onun hreflang annotation bençin şu aynı URL söyler en, şu’s bir mismatch. o’s tam olarak “Hreflang and HTML lang mismatch” sorun ben documented in Ahrefs’ hreflang rehber — nerede ben put o plainly: “Google yapmaz kullan HTML language attribute, ama diğer arama motorlar ve browsers yap. o’s önemli -e koru bunlar two attributes consistent ile bir başka bir.” Google ignores lang half of şu comparison, ama bir mismatch hâlâ sinyaller şu something dır misconfigured — bu da neden site denetim araçlar flag o.

yaygın myths

  • “Correct lang will improve my Google rankings.” No. Google states o yapmaz kullan lang bençin language detection at tümü. o -ebilir önem taşır bençin Bing ve dolaylı olarak yardım et via accessibility ve translation behavior, ama bir direct Google sıralama benefit değildir supported.
  • lang and hreflang are basically the same.” No — lang describes sayfa o’s on; hreflang benşaret eder -e diğer URLs. bir sayfa -ebilir sahip bir correct lang ve no hreflang, veya correct hreflang ve bir yanlış lang.
  • “No search engine cares about lang.” Bing explicitly yapar (olarak bir fallback behind content-language). bençin herhangi bir site ile gerçek Bing trafik, bu değildir bir “nobody cares” situation.
  • “Leaving the default lang="en" is harmless if my content isn’t English.” o’s close -e word-bençin-word başarısızlık Mueller called “almost always wrong,” ve o’s ne triggers yanlış translate prompts ve yanlış screen-reader pronunciation.
  • “Correct lang gives a 22% CTR lift” / “AI crawlers süreç lang-tagged sayfalar 40% faster.” bunlar specific figures circulate on bir handful of SEO marketing blogs ile no traceable study, methodology, veya birincil kaynak. ben couldn’t corroborate either karşı herhangi bir resmî statement veya ilk-party data — ele al them olarak kind of confident-sounding, baseless folklore şu accretes yaklaşık low-scrutiny teknik topics.
  • “An empty lang="" is the same as not having one.” No — bir explicit empty değer anlamına gelir “unknown language,” bir distinct state -den bir genuinely absent attribute.

nerede bu fits

bu attribute-level deep dive of HTML SEO subcluster — sibling -e element-level treatment of <article>, <nav>, ve <main> in semantic HTML article, ve -e broader HTML-SEO hub above them. bençin full cross-sayfa targeting story — three implementation methods, reciprocal kurallar, ve nasıl çoğu zaman kümeler break ölçekte — hreflang deep dive dır place -e go; bu article’s job dır sadece -e koru two straight in sizin head.

Add an expert note

Pin an expert quote

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