HTML lang 속성
HTML lang 속성의 역할, Google과 Bing의 언어 감지 차이, hreflang과의 구분, 접근성과 브라우저 자동 번역에 중요한 이유를 설명합니다.
언어
이 페이지의 근거 신호 1개
- 관련 라이브 도구On-Page SEO Checker
HTML lang 속성은 BCP 47 태그로 현재 문서 콘텐츠의 자연어를 선언합니다. hreflang은 다른 언어 버전 URL을 매핑하므로 역할이 다릅니다. Google은 언어 감지에 lang을 사용하지 않지만 Bing은 대체 신호로 사용하며, WCAG 접근성·스크린 리더 발음·브라우저 자동 번역 제안에도 중요합니다. 유효한 값을 쓰고 비영어 페이지의 상용구 lang="en"을 제거하며 hreflang과 일치시키세요.
요약 — HTML
lang속성, 즉 페이지의 여는<html>태그에 있는lang="en"은 브라우저와 스크린 리더에 이 페이지 콘텐츠의 언어를 알립니다. hreflang과 혼동하기 쉽지만 역할은 다릅니다.lang은 현재 페이지를 설명하고 hreflang은 다른 언어 버전을 가리킵니다. Google은 페이지 언어 감지에lang을 사용하지 않지만, 접근성과 브라우저의 번역 제안에는 여전히 중요합니다.
lang 속성이란?
대부분 웹페이지의 맨 위쪽에는 다음과 같은 태그가 있습니다.
<html lang="en">이 lang="en"이 HTML lang 속성입니다. 페이지 콘텐츠의 언어를 선언하는 것이 유일한 역할입니다. 영어는 en, 스페인어는 es, 독일어는 de입니다. 미국 영어 en-US, 영국 영어 en-GB, 브라질 포르투갈어 pt-BR처럼 지역까지 구체화할 수도 있습니다.
작은 속성이지만 여러 시스템이 이 값을 읽습니다.
- 스크린 리더는 단어를 올바르게 발음하는 데 사용합니다. 영어 음성으로 프랑스어를 읽으면 알아듣기 어렵습니다. 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
- 브라우저는 실제 텍스트와 이 값을 함께 보고 “이 페이지를 번역하시겠습니까?”를 표시할지 판단합니다.
- Google은 대부분 무시합니다. 이유는 고급 탭에서 설명합니다.
lang은 hreflang이 아닙니다
많은 사람이 두 속성을 혼동합니다. 한 줄로 구분하면 다음과 같습니다.
lang= “이 페이지의 콘텐츠 언어는 이것이다.”<html>태그에 값 하나를 설정합니다.- hreflang = “이 페이지의 독일어·스페인어·프랑스어 버전은 이 다른 URL들이다.” 다른 페이지를 가리키는 링크 집합입니다.
lang은 자기 설명이고 hreflang은 대체 페이지 지도입니다. 단일 언어 사이트에는 올바른 lang만 필요하며 hreflang은 필요 없습니다. 다국어 사이트라면 둘 다 사용하고 서로 일치시켜야 합니다.
어떤 값을 써야 하나요?
임의로 만든 값이 아니라 실제 언어 코드를 사용하세요.
- 지역 차이를 구분하지 않으면 언어만 씁니다:
en,es,fr. - 지역을 구분하면 언어와 지역을 함께 씁니다:
en-US,en-GB,pt-BR.
eng나 en-UK 같은 코드를 만들지 마세요. 영국의 올바른 코드는 UK가 아니라 GB입니다. 영어가 아닌 페이지에 기본값 lang="en"을 그대로 두어서도 안 됩니다. 가장 흔한 실수이며 번역 제안과 스크린 리더에 실제 문제를 일으킵니다.
Google이 왜 무시하는지, Bing은 어떻게 사용하는지, 접근성 규칙과 브라우저 자동 번역까지 자세히 보려면 고급 탭으로 이동하세요.
요약 —
lang은 BCP 47 태그로 현재 문서의 자연어를 선언합니다. 루트 HTML 값 또는 지역형en-US을 씁니다. 대체 언어 URL을 선언하는 hreflang과는 다른 장치이며 Google은 페이지 언어 감지에 둘 다 사용하지 않습니다. Mueller의 표현은 “전혀 사용하지 않는다… 거의 항상 틀린다”입니다. 검색 가중치와 별개로 WCAG 3.1.1 레벨 A 요구사항이고 HTMLlang이 표준 기법입니다. 스크린 리더 발음과 브라우저 자동 번역 제안을 지원하며 “문서 언어 누락”은 WebAIM Million의 주요 여섯 실패입니다. Google의 예외는 기계 번역 블록의lang="es-x-mtfrom-en"입니다. 유효한 값을 쓰고 hreflang과 일치시키며 비영어 페이지의lang="en"을 제거하세요.
lang 속성이 실제로 선언하는 것
HTML lang은 기술적으로 모든 요소에 붙일 수 있는 전역 속성이지만 가장 중요한 위치는 루트 <html lang="en">입니다. 값은 BCP 47 언어 태그이며, 언어 하위 태그만(en, es, de) 쓰거나 언어와 지역을 함께(en-US, en-GB, pt-BR, zh-Hans) 씁니다.
선언 범위는 좁고 명확합니다. 속성을 설정한 문서의 텍스트 콘텐츠가 사용하는 자연어입니다. 대체 페이지의 언어나 타기팅 국가가 아니라 “이 페이지의 글은 이 언어다”라는 뜻입니다.
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 PageMDN 참고 문서에서 특히 기억할 세 가지 정밀 조건이 있습니다.
- 유효한 값만 사용합니다. BCP 47 태그여야 합니다. 임의의 세 글자 코드
eng, 전체 언어 이름, 영국 지역 하위 태그가GB인데도 쓰는en-UK는 안 됩니다. 잘못된 값은 값이 없는 것처럼 처리됩니다. 문법적으로 올바른 것과 실제로 맞는 것도 다릅니다.lang="en"은 유효한 태그지만 프랑스어 페이지에서는 틀립니다. 유효성은 최소선일 뿐 콘텐츠와 일치한다는 보장은 아닙니다. - 빈 값과 누락은 다릅니다. 명시적인
lang=""은 “언어를 알 수 없음”이라는 의도적 상태입니다. 속성 자체가 누락된 것은 다른 실패이며 접근성 도구도 별도로 표시합니다. - 루트 값은 잠금이 아니라 기본값입니다.
<html lang>은 재정의하지 않은 모든 하위 요소에 상속됩니다. 실제 언어가 바뀌는 요소에는lang을 지역적으로 다시 설정하세요. 문서 내부 선언을 HTTPContent-Language응답 헤더와 혼동하면 안 됩니다. 헤더는 응답의 전송 메타데이터이고 파싱된 문서의 요소별 상속이나 접근성에서lang을 대체하지 못합니다.
lang과 hreflang의 차이
hreflang 질문으로 이 페이지에 왔다면 이 절이 핵심입니다. 둘 다 언어와 관련되고 문서 상단 부근에 있으며 코드 모양도 비슷해서 자주 혼동되지만, 서로 다른 일을 합니다.
가장 명확한 설명은 Google의 페이지 현지화 버전 문서입니다. Google은 둘을 묶어 감지에 어느 쪽도 사용하지 않는다고 말합니다.
“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.” (번역) Google은 페이지 언어를 감지하는 데 hreflang이나 HTML lang 속성을 사용하지 않고 알고리즘으로 언어를 판단합니다.
Google은 lang과 hreflang을 페이지 언어 판별에 사용하지 않는 서로 다른 두 요소로 함께 언급합니다. 대신 렌더링된 가시 콘텐츠에서 언어를 감지합니다.
실제 차이는 무엇일까요?
- **
lang**은 자기 설명입니다.<html>또는 다른 요소에 값 하나를 두고 “이 문서의 콘텐츠 언어”를 알립니다. 브라우저·스크린 리더·맞춤법 검사기가 읽고 Bing이 사용하지만 Google의 언어 감지에는 쓰이지 않습니다. - hreflang은 페이지 간 지도입니다.
<link rel="alternate">주석 집합(또는 사이트맵·헤더 방식)으로 다른 언어·지역 버전의 URL과 대상 언어를 나열합니다. Google이 검색결과에서 맞는 URL 버전을 제공할 때 사용하는 라우팅 신호이지 감지 신호가 아닙니다.
둘은 함께 사용할 수 있고 대개 그래야 합니다. 멕시코 스페인어 페이지는 자체 콘텐츠를 설명하는 <html lang=“es-MX”>와 en-US, en-GB 등 형제 페이지를 가리키는 hreflang 태그를 모두 가집니다. 세 가지 구현 방식, 상호 링크와 자기 참조 규칙, 대규모 오류율은 별도 hreflang 글의 범위입니다. 여기서 기억할 점은 lang이 값 하나·요소 하나·상호성 없음으로 단순하다는 것입니다. John Mueller가 “SEO에서 가장 복잡한 측면 중 하나”라고 한 hreflang의 페이지 간 관계를 담지 않기 때문입니다. 설정이 쉽다고 흔히 올바른 것은 아닙니다.
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 ·
lang 속성은 Google 순위 요소인가요?
아닙니다. Google은 이례적으로 단호합니다. Barry Schwartz가 Search Engine Roundtable의 Google은 HTML lang 속성을 무시합니다에서 전한 John Mueller의 답변은 다음과 같습니다.
“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.” (번역) Google은 HTML 언어 속성을 전혀 사용하지 않습니다. 다른 언어 버전에는 hreflang 링크를 사용하지만 언어 마크업은 거의 항상 틀려서 무시하는 편입니다.
핵심은 “거의 항상 틀린다”입니다. Google이 lang을 무시하는 이유는 중요하지 않아서가 아니라 웹 규모에서 신뢰할 수 없기 때문입니다. 현지화 뒤에도 상용구 lang="en"이 남고 CMS·프레임워크 템플릿의 기본값이 갱신되지 않습니다. 예를 들어 Vue CLI 생성 상용구는 제작 언어와 무관하게 lang="en"을 고정합니다. 신호가 이처럼 자주 틀리면 신뢰하지 않고 콘텐츠에서 직접 언어를 감지하는 편이 합리적입니다. 2016년 인용은 오래됐지만 현재(2026년) Search Central 문서도 같은 정책을 독립적으로 재확인하므로 철회되지 않은 장기 지침으로 봅니다.
한 가지 예외: 기계 번역 콘텐츠
Google 문서가 lang 형식 값을 실제로 요구하는 좁은 경우가 하나 있습니다. 기계 번역 콘텐츠를 게시할 때 번역된 검색결과 지침은 lang="<target>-x-mtfrom-<source>" 형식으로 블록을 표시하라고 합니다. 영어에서 스페인어로 번역했다면 lang="es-x-mtfrom-en"입니다. 일반 언어 감지에는 lang을 무시하지만 Google이 정의한 이 라벨은 읽습니다. 번역 기능 전체를 끄려면 같은 문서의 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,” (번역) Google 검색의 모든 번역 기능을 거부하려면 메타 태그나 HTTP 헤더로 구현할 수 있는 notranslate 규칙을 사용합니다.
Bing은 lang 속성을 사용하나요?
예. 이 점에서 lang은 “Google이 무시한다”는 이야기보다 중요합니다. Bing의 입장은 Google과 반대이며 관련 설명은 의외로 드뭅니다.
Bing은 2011년 Webmaster Blog의 Bing에 웹사이트 국가와 언어를 알리는 방법에서 관련성 판단에 쓰는 “문서 위치” 신호의 우선순위를 다음과 같이 제시했습니다.
content-language메타 태그를<head>에 둡니다. 예시는 <meta http-equiv=“content-language” content=“en-us”>입니다.- 대체 신호인
<html lang="en-us">, 이어서<title lang="en-us">. 원문은 “the priority order for these tags is:<meta>,<html>,<title>.” (번역) 태그 우선순위는 meta, html, title입니다. - ccTLD.
- 상위 신호로 결론을 내릴 수 없을 때만 쓰는 역방향 IP 조회.
Bing의 권고는 하나를 선택하고 일관되게 쓰라는 것입니다. “It’s best that you use one option, instead of multiple options here.” (번역) 여러 옵션보다 하나를 사용하는 편이 좋습니다. 따라서 Bing은 Google과 달리 <html lang>을 우선순위가 낮더라도 실제 타기팅 신호로 씁니다. Bing 트래픽이 중요하다면 lang을 올바르게 설정하고 일치하는 content-language 메타 태그도 검토하세요.
이 차이는 hreflang과도 연결됩니다. Bing은 Google처럼 hreflang을 크게 활용하지 않으며 content-language와 lang이 Bing의 병행 메커니즘입니다.
그래도 lang이 중요한 이유: 접근성
검색을 완전히 제외해도 lang은 필요합니다. 필수 접근성 속성이기 때문입니다. WCAG 성공 기준 3.1.1(레벨 A)은 각 페이지의 기본 인간 언어를 프로그램이 판별할 수 있어야 한다고 요구하며, 실무에서는 유효한 <html lang>을 뜻합니다. 별도 기준 3.1.2는 페이지 안에서 언어가 바뀌는 구간을 다룹니다.
후속 효과는 구체적입니다. Adrian Roselli의 On Use of Lang Attribute는 여러 사례를 정리합니다. 스크린 리더는 lang으로 발음 엔진과 음성을 선택하고(JAWS 음성 엔진, VoiceOver 자동 음성 전환), CSS hyphens: auto, spellcheck, 인용부호 렌더링, 기본 CJK 글꼴, 점자 디스플레이 동작도 영향을 받습니다. 다만 결과는 스크린 리더·브라우저·설치 음성마다 다릅니다. Roselli의 테스트에서도 JAWS와 VoiceOver가 동일하게 작동하지 않습니다. 올바른 lang은 적절한 동작을 가능하게 하지만 모든 보조기술 조합에서 같은 경험을 보장하지는 않습니다.
문제는 아직 해결되지 않았습니다. 현재 WebAIM Million 보고서에서 “문서 언어 누락”은 홈페이지의 13,5%에서 발견되는 여섯 번째로 흔한 자동 접근성 실패입니다. 전년 15,8%, 그 이전 17,1%와 18,6%에서 개선 중이지만 여전히 큰 문제입니다. Google Lighthouse의 html-has-lang과 html-lang-valid도 SEO가 아니라 접근성 범주에 있습니다. 기반이 되는 Deque의 axe-core 동일 규칙은 누락된 lang과 잘못된 lang을 WCAG 2,0/2,1 레벨 A의 “심각” 문제로 분류합니다.
브라우저 동작: 자동 번역 제안
lang은 브라우저의 “이 페이지를 번역하시겠습니까?” 제안에도 영향을 줍니다. Chrome 등은 실제 가시 텍스트 분석과 lang을 함께 고려합니다. 값이 틀리거나 없으면 독자 언어로 이미 쓰인 페이지에 번역을 잘못 제안하거나, 실제 외국어 페이지에서 제안하지 않을 수 있습니다.
Manuel Matuzovic의 lang 속성: 브라우저가 하는 작고 달콤한 거짓말에는 생생한 사례가 있습니다. 오스트리아 방송사 ORF.at가 독일어 콘텐츠에 lang="en"을 제공하자 Chrome 자동 번역은 독일어를 영어로 간주하고 “번역”해 빈 지역 이름 “Liesing”을 영어 “lies”로 바꿨습니다. 상용구 기본값이 사용자에게 보이는 버그가 된 사례이며 Mueller의 “거의 항상 틀린다”는 지적과 같은 유형입니다.
올바르게 설정하는 방법
- 유효한 BCP 47 태그를 씁니다. 지역 구분이 필요 없으면 언어 하위 태그(
en,es,fr), 필요하면 언어-지역(en-US,en-GB,pt-BR)을 씁니다. IANA Language Subtag Registry에서 코드를 확인하고 만들지 마세요. 영국은UK가 아니라GB입니다. - 언어가 바뀌는 요소에도 설정합니다. 단일 언어 페이지에 외국어 구절이 있으면 <span lang=“fr”>c’est la vie</span>처럼 해당 구간의
lang을 재설정합니다. 지정하지 않은 하위 요소는 가장 가까운 조상의 lang을 상속합니다. - 상용구 기본값을 제거합니다. 템플릿·CMS의
lang="en"은 콘텐츠가 실제 영어일 때만 맞습니다. Mueller가 지적하고 ORF.at 버그가 보여 준 실패이므로 감사하세요. - lang과 hreflang을 일치시킵니다. 페이지의
lang은es-MX인데 같은 URL의 hreflang 주석이en이면 불일치입니다. 제가 Ahrefs hreflang 가이드에서 설명한 “hreflang과 HTML lang 불일치” 문제입니다. 원문은 “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.” (번역) Google은 HTML 언어 속성을 쓰지 않지만 다른 검색엔진과 브라우저는 사용하므로 두 속성을 서로 일치시키는 것이 중요합니다. Google이lang쪽을 무시해도 불일치는 설정 오류를 나타내므로 사이트 감사 도구가 표시합니다.
흔한 오해
- “올바른
lang이 Google 순위를 높인다.” 아닙니다. Google은 언어 감지에lang을 사용하지 않습니다. Bing, 접근성, 번역 동작에는 중요하지만 직접적인 Google 순위 이점은 근거가 없습니다. - “
lang과 hreflang은 사실상 같다.” 아닙니다.lang은 현재 페이지를 설명하고 hreflang은 다른 URL을 가리킵니다. 올바른lang만 있고 hreflang은 없을 수도 있으며 그 반대도 가능합니다. - “어떤 검색엔진도
lang을 신경 쓰지 않는다.” Bing은content-language다음의 대체 신호로 명시적으로 사용합니다. - “비영어 콘텐츠에 기본
lang="en"을 둬도 무해하다.” Mueller가 “거의 항상 틀린다”고 한 실패와 거의 같으며 번역 제안과 스크린 리더 발음을 잘못 만듭니다. - “올바른
lang은 CTR을 22% 높인다” / “AI 크롤러는 lang 태그 페이지를 40% 빠르게 처리한다.” 추적 가능한 연구·방법론·1차 출처 없이 일부 SEO 마케팅 블로그에 퍼진 수치입니다. 공식 발표나 1차 데이터로 확인할 수 없으므로 근거 없는 통념으로 취급하세요. - “빈
lang=""은 속성이 없는 것과 같다.” 아닙니다. 명시적 빈lang값은 “언어 불명”이며 속성 누락과 다른 상태입니다.
이 글의 위치
이 글은 HTML SEO 하위 클러스터에서 속성 하나를 깊이 다룹니다. 시맨틱 HTML 글은 <article>, <nav>, <main> 같은 요소를, 상위 HTML SEO 허브는 더 넓은 범위를 다룹니다. 세 가지 구현 방식·상호 규칙·대규모 클러스터 오류를 포함한 페이지 간 타기팅은 hreflang 글에서 설명합니다. 이 글의 역할은 둘을 명확히 구분하는 것입니다.
AI 요약
고급 버전의 핵심을 압축하면 다음과 같습니다.
lang은 현재 문서의 언어를 선언합니다. BCP 47 태그(<html lang="en">또는en-US)를 쓰는lang자기 설명이며 타기팅·라우팅 장치가 아닙니다.- hreflang과 다릅니다. Google 문서는 언어 감지에 둘 다 사용하지 않는다고 밝힙니다. “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page… we use algorithms.” (번역) Google은 페이지 언어 감지에 hreflang이나 HTML lang을 쓰지 않고 알고리즘을 사용합니다.
lang은 현재 페이지를 설명하고 hreflang은 대체 언어 URL을 가리킵니다. - Google은 감지에
lang을 무시합니다. Mueller는 상용구·CMS 기본값 때문에 “we don’t use that at all… almost always wrong,” (번역) 전혀 쓰지 않으며 거의 항상 틀린다고 했습니다. 예외는 기계 번역 블록의lang="es-x-mtfrom-en"라벨입니다. - Bing은 반대입니다. 2011년 Webmaster Blog는
<html lang>을content-language메타 태그 다음의 문서 위치 대체 신호로 둡니다(순서: meta > html > title). - 핵심 영향은 접근성입니다. WCAG 3.1.1 요구사항이며 스크린 리더 발음,
hyphens: auto, 맞춤법 검사, CJK 글꼴에 영향을 줍니다. “문서 언어 누락”은 홈페이지 약 13,5%에서 나타나는 WebAIM Million 주요 여섯 실패입니다. - 브라우저 자동 번역 제안에도 사용됩니다. ORF.at가 독일어에
lang="en"을 둬 지역명이 “lies”로 오역된 사례처럼 잘못된 값은 오작동을 만듭니다. - 정확하게 설정하세요. 유효한 BCP 47 태그(
UK가 아닌GB), 루트lang과 외국어 구간의 지역적lang, 비영어 페이지의 상용구lang="en"제거, hreflang과의 일치를 확인합니다.
공식 문서
1차 출처 문서와 표준 참고 자료입니다.
- 페이지 현지화 버전 — “Google은 페이지 언어 감지에 hreflang이나 HTML lang 속성을 사용하지 않는다”는 설명.
- 번역된 Google 검색결과 —
lang="x-mtfrom-"기계 번역 라벨 규칙과notranslate거부 방식. - 다지역·다국어 사이트 관리 — 언어·지역 신호의 인접 맥락.
Bing / Microsoft
- Bing에 웹사이트 국가와 언어를 알리는 방법 (Bing Webmaster Blog, 2011) — 문서 위치 우선순위
meta > html > title. 원래 URL은 목록에서 빠졌고 Wayback Machine 캡처로 본문을 확인했습니다.
표준 / 기술 참고 자료
- MDN —
lang전역 속성 — BCP 47 요구사항, 빈 문자열과 누락의 차이, 상속, WCAG 참고. - W3C 국제화 — HTML 언어 선언 — BCP 47·IANA 레지스트리와 혼합 언어 콘텐츠의 중첩 요소 규칙.
- Deque University — axe 규칙
html-has-lang— Lighthouse 접근성 감사의 WCAG 2,0/2,1 레벨 A 분류. - WebAIM Million — “문서 언어 누락” 비율을 제공하는 연례 접근성 조사.
출처 인용문
출처 페이지가 지원하는 경우 각 링크를 해당 인용 구간으로 연결한 공개 발언입니다.
Google — 언어 감지에 lang을 사용하지 않음
- “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.” (번역) Google은 페이지 언어 감지에 hreflang이나 HTML lang 속성을 사용하지 않고 알고리즘으로 언어를 판단합니다. — Google Search Central 문서. 인용문으로 이동
Google — 기계 번역 예외와 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.” (번역) Google 검색의 모든 번역 기능을 거부하려면 메타 태그나 HTTP 헤더로 구현하는 notranslate 규칙을 사용합니다. — 번역된 Google 검색결과 문서. 인용문으로 이동
Google John Mueller — “거의 항상 틀림”
- “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.” (번역) 다른 언어 버전에는 hreflang 링크를 사용하지만 HTML 언어 속성은 전혀 쓰지 않으며, 거의 항상 틀려서 무시하는 편입니다. — 2016년 Google Webmaster 행아웃을 다룬 Search Engine Roundtable 보도. 보도 읽기 2016년 행아웃을 Barry Schwartz가 정리한 글이며 원본 영상은 독립적으로 접근할 수 없습니다. 기본 정책은 현재 Search Central 문서가 별도로 재확인하므로 인용 연식에도 불구하고 입장은 여전히 정확한 것으로 봅니다.
Bing / Microsoft — lang은 대체 타기팅 신호
- 문서 위치 신호의 우선순위는 “the priority order for these tags is:
<meta>,<html>,<title>,” (번역) meta, html, title 순이며, “use one option, instead of multiple options here.” (번역) 여러 옵션보다 하나를 사용하라고 권합니다. — Bing Webmaster Blog, “웹사이트 국가와 언어를 알리는 방법,” 2011. 현재 목록에서 빠진 2011년 글의 Wayback Machine 캡처에서 인용했습니다. 이를 대체하는 최신 Bing 발표는 찾지 못했으며 2011년이라는 연식은 실제 제약입니다. 오래됐지만 장기 지침으로 인용합니다.
저자 — lang과 hreflang의 일치
- “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.” (번역) Google은 HTML 언어 속성을 사용하지 않지만 다른 검색엔진과 브라우저는 사용하므로 두 속성을 서로 일치시키는 것이 중요합니다. — Ahrefs hreflang 가이드의 “hreflang과 HTML lang 불일치” 감사 항목. 글 읽기
실제로 어떤 언어 태그가 필요한가요?
페이지에 무엇을 설정할지 확실하지 않을 때 빠르게 판단하는 순서입니다.
1. 이 페이지의 언어만 선언하면 되나요?
그렇다면 lang 속성입니다. <html lang="…">을 설정하고 2단계로 갑니다.
2. 지역 변형을 구분해야 하나요(미국·영국 영어, 브라질·유럽 포르투갈어)?
- 아니요 → 언어 하위 태그만 씁니다:
<html lang="en">,lang="es",lang="pt">. - 예 → 언어-지역을 씁니다:
<html lang="en-US">,lang="en-GB">,lang="pt-BR">. 지역은UK가 아니라GB입니다.
3. 페이지에 다른 언어 구절이 있나요(영어 글 안의 프랑스어 인용)?
- 예 → 해당 구간을 감싸 지역적으로 재설정합니다:
<span lang="fr">c'est la vie</span>. 나머지는 루트<html lang>을 상속합니다. - 아니요 → 루트 값이 페이지 전체를 포괄합니다.
4. 다른 URL에 같은 페이지의 다른 언어 버전도 있나요?
- 예 → 해당 대체 URL을 가리키는 별도 장치 hreflang도 필요합니다. 각 페이지의
lang과 해당 hreflang 항목을 일치시키세요. 구현은 별도 hreflang 글을 참고합니다. - 아니요 →
lang만으로 끝입니다.
5. 콘텐츠가 기계 번역됐나요?
- 예 → Google 지침에 따라 번역 블록을
lang="<target>-x-mtfrom-<source>"로 표시합니다(예:lang="es-x-mtfrom-en"). - 아니요 → 일반 BCP 47 태그면 충분합니다.
6. Bing 트래픽이 중요한가요?
- 예 →
lang을 올바르게 설정하고 일치하는content-language메타 태그도 검토하세요. Bing은 메타를<html lang>보다 높게 평가합니다. 충돌하는 값을 여러 개 두지 마세요. - 아니요 →
<html>의lang과 접근성 정확성만으로 충분합니다.
lang 속성 치트 시트
lang과 hreflang의 한 줄 차이
lang | hreflang | |
|---|---|---|
| 선언 대상 | 현재 페이지 콘텐츠의 언어 | 대체 언어 버전인 다른 URL |
| 형태 | <html> 또는 다른 요소의 값 하나 | <link rel="alternate"> 주석 집합 또는 사이트맵·헤더 |
| Google 사용? | 아니요(감지에는 무시) | 예, 맞는 URL 버전 라우팅에 사용 |
| Bing 사용? | 예, 대체 타기팅 신호 | 거의 사용하지 않음 |
| 접근성 / 번역 제안? | 예 | 아니요 |
<html lang>을 읽는 시스템
| 소비자 | 사용 방식 |
|---|---|
| 언어 감지에는 무시하고 알고리즘 사용 | |
| Bing | content-language 메타 다음의 대체 타기팅 신호 |
| 스크린 리더 | 발음·음성 선택(WCAG 3.1.1) |
| 브라우저 | 자동 번역 제안의 입력 중 하나 |
| CSS / 맞춤법 검사 | hyphens: auto, 맞춤법, 인용부호, CJK 글꼴 |
유효한 값
- 언어만:
en,es,fr,de - 언어-지역:
en-US,en-GB,pt-BR,zh-Hans - 잘못된 값:
eng(세 글자),en-UK(GB사용), 전체 언어 이름 lang=""= “언어 불명”(누락과 다른 실제 상태)- 기계 번역 블록:
lang="es-x-mtfrom-en"
빠른 사실
- Mueller:
lang은 “almost always wrong” (번역) 거의 항상 틀리므로 Google은 감지에 무시합니다. - Bing 우선순위: meta
content-language><html lang>><title lang>. - “문서 언어 누락”은 홈페이지 약 **13,5%**에서 나타납니다(WebAIM Million의 주요 여섯 실패이며 감소 중).
- Lighthouse의
html-has-lang은 SEO가 아니라 접근성 범주입니다. lang을 hreflang과 일치시키세요. “hreflang과 HTML lang 불일치” 감사 항목입니다.
HTML lang 실수
- 모든 현지화 템플릿에
lang="en"을 남김. 실제 문서 로케일에서 언어를 설정하고 비영어 경로를 테스트하세요. - hreflang 대신
lang을 사용함.lang은 현재 문서를 설명하고 hreflang은 대체 URL을 연결합니다. 각 역할에 맞게 구현하세요. - 콘텐츠와 맞지 않는 국가 코드를 추가함. 유효한 BCP 47 태그를 쓰고 실제 지역 언어 변형일 때만 지역을 붙이세요.
- 루트
<html>대신 래퍼에 속성을 둠. 문서 요소에 기본 언어를 선언하고 다른 언어 구절에는 지역lang을 쓰세요. - Google이 언어 감지에
lang을 필요로 한다고 가정함. Google 순위 장치가 아니라 접근성·브라우저·Bing·표준을 위해 유지하세요.
스크린 리더 발음이 잘못됩니다
가능한 원인: 루트 언어가 없거나 유효하지 않거나 틀렸고, 외국어 구절도 표시되지 않았을 수 있습니다. 수정: <html>에 올바른 BCP 47 값을 설정하고 언어가 바뀌는 곳에 지역 재정의를 추가합니다. 확인: 접근성 트리를 검사하고 해당 스크린 리더 음성으로 테스트합니다.
모든 현지화 페이지가 lang="en"입니다
가능한 원인: 하드코딩된 기본 템플릿 또는 문서 셸에 전달되지 않는 로케일 매핑입니다. 수정: 서버나 빌드 시점에 경로·콘텐츠 로케일에서 루트 값을 만듭니다. 확인: 대표 로케일 URL을 크롤해 선언 언어와 가시 콘텐츠를 비교합니다.
lang과 hreflang이 일치하지 않습니다
가능한 원인: 분리된 로케일 맵, 잘못된 지역 코드 또는 템플릿 대체값입니다. 수정: 두 신호의 서로 다른 목적은 유지하면서 정규화한 로케일 설정 하나를 사용합니다. 확인: 각 페이지가 자체 콘텐츠 언어를 선언하고 대체 링크가 올바른 상호 버전을 가리키는지 봅니다.
브라우저 번역 제안이 잘못됩니다
가능한 원인: 선언 언어가 지배적인 가시 콘텐츠와 충돌하거나 혼합 언어 블록의 범위를 표시하지 않았습니다. 수정: 루트 선언을 바로잡고 상당한 다른 언어 구절에 자체 lang을 붙입니다. 확인: 브라우저와 접근성 검사가 의도한 기본 언어를 식별하는지 확인합니다.
언어 선언 도구
- On-Page SEO Checker는 다른 HTML 신호와 함께 원시 문서 언어를 보여 줍니다.
- hreflang Generator + Linter는 대체 언어 코드와 관계를 검사합니다. 루트
lang감사와 함께 쓰되 대신하지 마세요. - 브라우저 DevTools에서 루트
<html lang>값과 보조기술이 사용하는 접근성 트리를 볼 수 있습니다. - XPath 추출이 가능한 크롤러로 로케일 템플릿의 선언을 비교할 수 있습니다:
string(/html/@lang).
읽을 가치가 있는 자료
제 관련 글
- Hreflang: 초보자를 위한 쉬운 가이드 — 제가 기여자로 표시된 hreflang 심층 글이며
lang과 hreflang을 연결하는 “hreflang과 HTML lang 불일치” 감사 항목을 포함합니다. - 기술 SEO 초보자 가이드 — 더 큰 구조에서 마크업과 국제화 신호의 위치.
제 발표
- 검색 작동 방식(SlideShare) — Google이 마크업을 읽고 정규화하는 방식을 포함한 크롤링·렌더링·색인·순위 설명. 제 상시 고지인 “This is my understanding of systems… not going to be 100% complete or accurate.” (번역) 시스템에 대한 제 이해이며 100% 완전하거나 정확하지 않을 수 있다는 조건이 적용됩니다.
공식 자료
- Google — 페이지 현지화 버전과 번역된 Google 검색결과.
- Bing — 웹사이트 국가와 언어 알리기(2011, Wayback Machine 경유).
업계 자료
- MDN —
lang전역 속성 — BCP 47, 빈 값과 누락, 상속을 다루는 기술 참고 자료. - W3C — HTML 언어 선언 — 혼합 언어 페이지를 포함한 표준 기구의 구현 안내.
- Deque — axe 규칙
html-has-lang— Lighthouse 감사의 기반 접근성 규칙. - WebAIM Million — 현재 “문서 언어 누락” 비율을 제공하는 연례 조사.
- Adrian Roselli — On Use of Lang Attribute —
lang의 실제 영향을 정리한 접근성 심층 글. - Manuel Matuzovic — lang 속성과 브라우저의 거짓말 — ORF.at의 독일어 콘텐츠에
lang="en"을 둔 자동 번역 사례. - Google은 HTML lang 속성을 무시합니다(Search Engine Roundtable) — Mueller의 “almost always wrong” 전체 인용.
- r/TechSEO — 마크업·국제화·감사 디버깅 커뮤니티.
퀴즈: HTML lang 속성
lang의 역할과 hreflang과의 차이에 관한 다섯 문제입니다. 답을 고른 뒤 확인하세요.
변경 내역
2026년 8월 22일에 업데이트됨.
편집 요약 및 기록된 변경 세부 정보입니다.변경 세부 정보
-
변경 세부 정보는 현재 영어로 제공됩니다.
전체 비교를 사용할 수 없음 — 이 수정에 대한 이전 스냅샷이 보관되지 않았습니다.
2026년 8월 9일에 업데이트됨.
편집 요약 및 기록된 변경 세부 정보입니다.변경 세부 정보
-
변경 세부 정보는 현재 영어로 제공됩니다.
전체 비교를 사용할 수 없음 — 이 수정에 대한 이전 스냅샷이 보관되지 않았습니다.
2026년 8월 8일에 업데이트됨.
편집 요약 및 기록된 변경 세부 정보입니다.변경 세부 정보
-
변경 세부 정보는 현재 영어로 제공됩니다.
전체 비교를 사용할 수 없음 — 이 수정에 대한 이전 스냅샷이 보관되지 않았습니다.
2026년 7월 18일에 업데이트됨.
편집 요약 및 기록된 변경 세부 정보입니다.변경 세부 정보
-
변경 세부 정보는 현재 영어로 제공됩니다.
-
변경 세부 정보는 현재 영어로 제공됩니다.
-
변경 세부 정보는 현재 영어로 제공됩니다.
전체 비교를 사용할 수 없음 — 이 수정에 대한 이전 스냅샷이 보관되지 않았습니다.