HTML lang 속성

HTML lang 속성의 역할, Google과 Bing의 언어 감지 차이, hreflang과의 구분, 접근성과 브라우저 자동 번역에 중요한 이유를 설명합니다.

최초 게시: 2026년 7월 2일 · 최근 업데이트: 2026년 8월 22일 · Advanced
언어
이 페이지의 근거 신호 1개

HTML lang 속성은 BCP 47 태그로 현재 문서 콘텐츠의 자연어를 선언합니다. hreflang은 다른 언어 버전 URL을 매핑하므로 역할이 다릅니다. Google은 언어 감지에 lang을 사용하지 않지만 Bing은 대체 신호로 사용하며, WCAG 접근성·스크린 리더 발음·브라우저 자동 번역 제안에도 중요합니다. 유효한 값을 쓰고 비영어 페이지의 상용구 lang="en"을 제거하며 hreflang과 일치시키세요.

요약 — lang은 BCP 47 태그로 현재 문서의 자연어를 선언합니다. 루트 HTML 값 또는 지역형 en-US을 씁니다. 대체 언어 URL을 선언하는 hreflang과는 다른 장치이며 Google은 페이지 언어 감지에 둘 다 사용하지 않습니다. Mueller의 표현은 “전혀 사용하지 않는다… 거의 항상 틀린다”입니다. 검색 가중치와 별개로 WCAG 3.1.1 레벨 A 요구사항이고 HTML lang이 표준 기법입니다. 스크린 리더 발음과 브라우저 자동 번역 제안을 지원하며 “문서 언어 누락”은 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 Page

MDN 참고 문서에서 특히 기억할 세 가지 정밀 조건이 있습니다.

  • 유효한 값만 사용합니다. BCP 47 태그여야 합니다. 임의의 세 글자 코드 eng, 전체 언어 이름, 영국 지역 하위 태그가 GB인데도 쓰는 en-UK는 안 됩니다. 잘못된 값은 값이 없는 것처럼 처리됩니다. 문법적으로 올바른 것과 실제로 맞는 것도 다릅니다. lang="en"은 유효한 태그지만 프랑스어 페이지에서는 틀립니다. 유효성은 최소선일 뿐 콘텐츠와 일치한다는 보장은 아닙니다.
  • 빈 값과 누락은 다릅니다. 명시적인 lang=""은 “언어를 알 수 없음”이라는 의도적 상태입니다. 속성 자체가 누락된 것은 다른 실패이며 접근성 도구도 별도로 표시합니다.
  • 루트 값은 잠금이 아니라 기본값입니다. <html lang>은 재정의하지 않은 모든 하위 요소에 상속됩니다. 실제 언어가 바뀌는 요소에는 lang을 지역적으로 다시 설정하세요. 문서 내부 선언을 HTTP Content-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의 페이지 간 관계를 담지 않기 때문입니다. 설정이 쉽다고 흔히 올바른 것은 아닙니다.

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

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에 웹사이트 국가와 언어를 알리는 방법에서 관련성 판단에 쓰는 “문서 위치” 신호의 우선순위를 다음과 같이 제시했습니다.

  1. content-language 메타 태그<head>에 둡니다. 예시는 <meta http-equiv=“content-language” content=“en-us”>입니다.
  2. 대체 신호인 <html lang="en-us">, 이어서 <title lang="en-us">. 원문은 “the priority order for these tags is: <meta>, <html>, <title>.” (번역) 태그 우선순위는 meta, html, title입니다.
  3. ccTLD.
  4. 상위 신호로 결론을 내릴 수 없을 때만 쓰는 역방향 IP 조회.

Bing의 권고는 하나를 선택하고 일관되게 쓰라는 것입니다. “It’s best that you use one option, instead of multiple options here.” (번역) 여러 옵션보다 하나를 사용하는 편이 좋습니다. 따라서 Bing은 Google과 달리 <html lang>을 우선순위가 낮더라도 실제 타기팅 신호로 씁니다. Bing 트래픽이 중요하다면 lang을 올바르게 설정하고 일치하는 content-language 메타 태그도 검토하세요.

주의: 이 글은 2011년 자료이고 현재 Bing 블로그 아카이브에서는 목록에서 빠졌습니다. Wayback Machine 캡처로 인용했으며 이를 대체하는 최신 Bing 발표는 찾지 못했습니다. 따라서 메커니즘은 유효한 것으로 보되 최신 지침인 것처럼 제시하지 않고 자료의 연식을 명시합니다.

이 차이는 hreflang과도 연결됩니다. Bing은 Google처럼 hreflang을 크게 활용하지 않으며 content-languagelang이 Bing의 병행 메커니즘입니다.

그래도 lang이 중요한 이유: 접근성

검색을 완전히 제외해도 lang은 필요합니다. 필수 접근성 속성이기 때문입니다. WCAG 성공 기준 3.1.1(레벨 A)은 각 페이지의 기본 인간 언어를 프로그램이 판별할 수 있어야 한다고 요구하며, 실무에서는 유효한 <html lang>을 뜻합니다. 별도 기준 3.1.2는 페이지 안에서 언어가 바뀌는 구간을 다룹니다.

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

후속 효과는 구체적입니다. 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-langhtml-lang-validSEO가 아니라 접근성 범주에 있습니다. 기반이 되는 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을 일치시킵니다. 페이지의 langes-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 글에서 설명합니다. 이 글의 역할은 둘을 명확히 구분하는 것입니다.

Add an expert note

Pin an expert quote

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