hreflang 태그
최종 업데이트:
정의
hreflang은 HTML의 <link> 태그에서 사용하는 속성으로, 현재 페이지와 언어·지역이 다른 대체 버전의 URL을 구글에 알려준다.
<link rel="alternate" hreflang="ko" href="https://example.com/ko/page/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page/" />
구글은 hreflang을 읽어 사용자의 언어·위치에 맞는 버전을 검색 결과에 표시한다. 한국어 사용자에게는 /ko/ 버전이, 영어 사용자에게는 /en/ 버전이 표시된다.
요약
hreflang 핵심 규칙: ①언어+지역 코드 정확히(ko, en-US, zh-TW) ②모든 버전에서 모든 다른 버전을 참조(양방향) ③x-default로 기본 폴백 설정 ④HTML head, HTTP header, sitemap 중 하나에 일관되게. 한 곳이라도 누락되면 구글이 무시한다.
hreflang이 필요한 경우
다국어 콘텐츠
같은 사이트에서 한국어, 영어, 일본어 등 여러 언어로 같은 내용을 제공하는 경우. hreflang 없이 운영하면 구글이 어느 버전을 어떤 사용자에게 보여줄지 결정하지 못한다.
다지역 콘텐츠
같은 언어이지만 지역이 다른 콘텐츠. 예: 한국 영어 사이트(en-KR)와 미국 영어 사이트(en-US)가 가격·법률·제품이 다른 경우.
언어가 유사한 다른 국가
포르투갈어(포르투갈 pt-PT vs 브라질 pt-BR), 중국어(간체 zh-CN vs 번체 zh-TW), 스페인어(es-ES vs es-MX) 등.
hreflang 구현 3가지 방법
방법 1: HTML head (가장 일반적)
<head> 섹션에 <link rel="alternate" hreflang=""> 태그를 추가한다.
<head>
<!-- 현재 페이지가 한국어 버전인 경우 -->
<link
rel="alternate"
hreflang="ko"
href="https://example.com/ko/seo-guide/"
/>
<link
rel="alternate"
hreflang="en"
href="https://example.com/en/seo-guide/"
/>
<link
rel="alternate"
hreflang="ja"
href="https://example.com/ja/seo-guide/"
/>
<link
rel="alternate"
hreflang="x-default"
href="https://example.com/seo-guide/"
/>
</head>
모든 언어 버전의 HTML에 동일한 태그 세트가 있어야 한다.
방법 2: HTTP Header (비HTML 파일)
PDF, 이미지 같은 비HTML 파일에 사용.
HTTP/1.1 200 OK
Link: <https://example.com/ko/guide.pdf>; rel="alternate"; hreflang="ko",
<https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en"
방법 3: XML Sitemap (대규모 사이트 권장)
사이트맵에 모든 언어 버전을 명시하는 방법. 개별 페이지 HTML을 수정하지 않아도 된다.
<url>
<loc>https://example.com/ko/seo-guide/</loc>
<xhtml:link rel="alternate" hreflang="ko" href="https://example.com/ko/seo-guide/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/seo-guide/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/seo-guide/"/>
</url>
언어·지역 코드 규칙
ISO 639-1 언어 코드
| 언어 | 코드 |
|---|---|
| 한국어 | ko |
| 영어 | en |
| 일본어 | ja |
| 중국어(간체) | zh-CN 또는 zh-Hans |
| 중국어(번체) | zh-TW 또는 zh-Hant |
| 스페인어 | es |
| 프랑스어 | fr |
언어-지역 조합
지역을 추가할 때는 ISO 3166-1 alpha-2 국가 코드를 사용한다.
en-US → 미국 영어
en-GB → 영국 영어
en-AU → 호주 영어
pt-BR → 브라질 포르투갈어
pt-PT → 포르투갈 포르투갈어
x-default: 기본 폴백
어떤 언어에도 매칭되지 않는 사용자를 위한 기본 URL을 지정한다. 언어 선택 페이지나 영어 기본 페이지로 설정한다.
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
hreflang 양방향 설정
가장 흔한 실수: 단방향 설정
❌ 잘못된 예:
한국어 페이지에만 영어 버전 참조 (→ 영어 페이지에서 한국어 참조 없음)
구글은 양방향 확인을 한다. A가 B를 참조하고 B도 A를 참조해야만 유효한 hreflang으로 인정한다.
✅ 올바른 예:
한국어 페이지: hreflang="ko" + hreflang="en" 모두 포함
영어 페이지: hreflang="ko" + hreflang="en" 모두 포함
URL 구조별 hreflang 적용
서브디렉토리 구조 (권장)
example.com/ko/ → 한국어
example.com/en/ → 영어
example.com/ → x-default
서브도메인 구조
ko.example.com → 한국어
en.example.com → 영어
example.com → x-default
별도 도메인 (ccTLD)
example.co.kr → 한국어
example.com → 영어 (x-default)
example.co.jp → 일본어
ccTLD는 국가 타겟팅 신호가 강력하지만 도메인 권위가 분산된다. 자세히는 서브도메인 vs 서브디렉토리 항목 참조.
hreflang 검증 방법
GSC 국제 타겟팅 보고서
GSC → 설정 → 국제 타겟팅에서 hreflang 오류를 확인한다. 일반적 오류:
- "참조 페이지를 찾을 수 없음": 한쪽 URL이 404 또는 리다이렉트
- "x-default 없음": x-default 태그 누락
- "반환 태그 없음": 양방향 설정 미완료
hreflang Testing Tool
구글의 Rich Results Test 또는 Ahrefs Site Audit에서 hreflang 오류를 확인할 수 있다.
한국 시장 적용
한국어 단일 사이트에서 hreflang 필요 여부
순수 한국어 사이트는 hreflang이 필요 없다. 영어·일본어 버전이 없다면 구현해도 효과가 없다.
한국-영어 이중 언어 사이트
한국 스타트업이 글로벌 진출 시 한국어 + 영어 버전을 운영하는 경우, hreflang 설정이 중요하다. 한국어 버전이 영어권 검색에 노출되거나 반대의 경우를 방지한다.
<!-- 한국어 메인 페이지 -->
<link rel="alternate" hreflang="ko" href="https://example.com/ko/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
네이버와 hreflang
네이버는 hreflang을 공식적으로 지원하지 않는다. 네이버 검색에서 다국어 처리는 네이버 서치어드바이저의 별도 설정이 아닌 콘텐츠 언어로 자동 감지된다. 자세히는 네이버 vs 구글 한국어 SEO 항목 참조.
자주 묻는 질문
Q. hreflang 없이 다국어 사이트를 운영하면 어떻게 되나요?
A. 구글이 어느 버전을 어떤 국가 사용자에게 보여줄지 스스로 결정한다. 잘못된 언어 버전이 노출되거나, 여러 언어 버전이 중복 콘텐츠로 처리될 수 있다. 소규모 다국어 사이트는 구글이 잘 처리하는 경우도 있지만, 보장이 없으므로 hreflang 구현이 권장된다.
Q. hreflang과 카노니컬 태그를 함께 사용할 수 있나요?
A. 그렇다. hreflang과 카노니컬은 함께 사용된다. 각 언어 페이지는 자기 자신을 카노니컬로 설정하고, hreflang으로 다른 언어 버전을 참조한다. 하나의 언어 버전을 다른 언어 버전의 카노니컬로 설정하면 안 된다. 자세히는 카노니컬 태그 항목 참조.
Q. 영어 콘텐츠를 한국어로 번역해 발행해도 중복 콘텐츠인가요?
A. 다른 언어 번역은 중복 콘텐츠가 아니다. 구글은 언어가 다른 페이지를 다른 콘텐츠로 인식한다. hreflang으로 번역 관계를 명시하면 중복 신호 없이 양쪽 모두 색인된다.
Q. hreflang을 설정했는데도 잘못된 버전이 노출됩니다.
A. 가장 흔한 원인은 ①양방향 설정 누락 ②참조 URL의 리다이렉트나 404 ③사이트맵과 HTML 설정이 상충 ④구글이 hreflang을 아직 처리하지 않음(최대 수주 소요)이다. GSC 국제 타겟팅 보고서에서 오류를 확인하고 수정한다.
Q. 자동 번역(기계 번역) 페이지에도 hreflang을 사용해야 하나요?
A. 기계 번역 페이지를 색인하는 것 자체가 씬 콘텐츠·중복 콘텐츠 문제를 일으킬 수 있다. hreflang 이전에 기계 번역 품질을 검토하고, 품질이 낮다면 noindex 처리하거나 전문가 검토를 거친 번역만 색인하는 것을 권장한다. 자세히는 씬 콘텐츠 항목 참조.
관련 출처
- Google Search Central (2024). Tell Google about localized versions of your page. https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central (2024). hreflang attribute. https://developers.google.com/search/docs/specialty/international/understanding-hreflang
- Ahrefs (2024). Hreflang: The Easy Guide for Beginners. Ahrefs Blog.