이 글에서 배울 수 있는 것
- ✓ 다국어 사이트가 중복 콘텐츠 위험에 특히 취약한 이유
- ✓ hreflang 태그의 기본 원리와 작동 방식
- ✓ 실무에서 자주 발생하는 hreflang 구현 실수
- ✓ 실제 코드로 보는 올바른 작성법과 잘못된 작성법
- ✓ 다국어 페이지 발행 전 확인할 체크리스트
① 다국어 SEO가 특히 어려운 이유
한국어와 영어로 같은 내용을 담은 페이지를 각각 만들면, 검색엔진 입장에서는 두 페이지가 '같은 내용의 다른 언어 버전'인지 '중복된 콘텐츠'인지 구분하기 어렵습니다. 이 구분이 잘못되면 두 페이지 모두 순위에서 불이익을 받을 수 있습니다.
핵심 포인트
hreflang은 "이 페이지는 다른 언어의 같은 내용이니, 사용자의 언어·지역에 맞는 버전을 보여주세요"라고 검색엔진에게 명확히 알려주는 신호입니다.
⚠️ 주의
hreflang이 없으면 구글이 임의로 어떤 버전을 대표 페이지로 판단해버릴 수 있습니다. 한국 사용자에게 영어 페이지가 노출되는 것처럼 의도치 않은 결과로 이어질 수 있습니다.
② hreflang이 하는 일과 기본 원리
hreflang은 페이지 간 관계를 알려주는 태그일 뿐, 번역이나 자동 리디렉션을 해주지는 않습니다. 각 언어 페이지가 서로를 가리키도록 태그를 넣어야 정상적으로 작동합니다.
| 구성 요소 | 설명 |
|---|---|
| 언어 코드 | ISO 639-1 표준 (예: ko, en, ja) |
| 지역 코드(선택) | ISO 3166-1 표준 (예: KR, US, JP) |
| x-default | 어떤 언어에도 해당하지 않는 사용자에게 보여줄 기본 페이지 지정 |
| 상호 참조 | 모든 언어 버전이 서로를 포함해 태그를 넣어야 함 |
③ 흔한 구현 실수
hreflang은 문법이 간단해 보이지만, 실제 구현에서는 사소한 실수로 전체가 무효화되는 경우가 많습니다.
- 상호 참조 누락: A 페이지는 B를 가리키는데 B 페이지는 A를 가리키지 않으면 hreflang 전체가 무시됩니다.
- 자기 자신 미포함: 각 페이지는 자기 자신을 가리키는 hreflang도 함께 포함해야 합니다.
- 언어 코드 오타: "kr" 대신 "ko"를 써야 하는 것처럼 국가 코드와 언어 코드를 혼동하는 경우가 흔합니다.
확인하는 법
구글 서치 콘솔의 국제 타겟팅 보고서나 온라인 hreflang 검증 도구로 상호 참조가 정상적으로 연결되어 있는지 주기적으로 확인해야 합니다.
④ 코드로 보는 좋은 예 vs 나쁜 예
같은 목적이라도 태그를 어떻게 작성하느냐에 따라 실제로 작동하는지가 갈립니다.
✗ 나쁜 예
<!-- 한국어 페이지에만 넣고 영어 페이지에는 넣지 않음 -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />문제점: 상호 참조가 없어 검색엔진이 이 관계를 신뢰하지 않고 무시할 수 있습니다.
✓ 좋은 예
<!-- 한국어 페이지(ko)에 -->
<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/" />포인트: 자기 자신을 포함한 모든 언어 버전을 양쪽 페이지에 동일하게 넣고, x-default로 기본값도 지정했습니다.
⑤ 구현 체크리스트
다국어 페이지를 발행하기 전 아래 순서로 점검하면 흔한 실수를 대부분 걸러낼 수 있습니다.
- 모든 언어 버전 페이지에 서로를 가리키는 hreflang이 들어있는지 확인합니다.
- 각 페이지가 자기 자신도 포함하고 있는지 확인합니다.
- 언어·지역 코드가 ISO 표준과 일치하는지 확인합니다.
- 필요하다면 x-default를 지정합니다.
- 서치 콘솔이나 검증 도구로 정상 작동 여부를 확인합니다.
⑥ 자주 묻는 질문 (FAQ)
hreflang을 설정하지 않으면 어떻게 되나요?
검색엔진이 어떤 언어 버전을 어느 지역 사용자에게 보여줘야 할지 판단하지 못해, 엉뚱한 언어 페이지가 노출되거나 언어별 페이지들이 서로 중복 콘텐츠로 인식될 수 있습니다. 그 결과 순위가 분산되어 어느 언어 페이지도 제대로 상위 노출되지 못하는 경우가 흔합니다.
언어만 다르고 지역은 상관없어도 hreflang이 필요한가요?
네, 필요합니다. hreflang은 지역뿐 아니라 언어만으로도 지정할 수 있습니다(예: ko, en). 지역 구분이 필요 없다면 언어 코드만 사용하는 것이 오히려 더 간단하고 관리하기 쉽습니다.
번역 페이지가 하나뿐이어도 hreflang을 써야 하나요?
언어 버전이 2개 이상일 때부터 의미가 있습니다. 한국어 페이지 하나만 있다면 hreflang이 필요 없지만, 영어 버전을 추가하는 순간부터 두 페이지 모두에 서로를 가리키는 hreflang 태그를 넣어야 중복 콘텐츠 문제를 피할 수 있습니다.