다국어 SEO hreflang 태그 적용 방법 4단계
- hreflang은 언어·지역별 대응 페이지를 검색엔진에 안내합니다.
- 각 페이지에서 자기 자신과 대응 페이지를 지정하고, 대상 페이지끼리 상호 연결해야 합니다.
- HTML·사이트맵·HTTP 헤더 중 관리하기 쉬운 방식을 선택할 수 있습니다.
hreflang 태그는 검색엔진에 페이지의 언어·지역별 대응 버전을 알려주는 표기입니다. 각 다국어 페이지에서 자기 자신과 대응 페이지를 지정하고, 서로 대체 페이지로 연결되도록 적용합니다. Google은 이를 검색 결과에서 사용자에게 적절한 언어·지역 페이지를 안내하는 데 활용합니다. 적용해도 노출 순위나 특정 URL 표시가 보장되는 것은 아니므로, URL 접근성과 페이지 내용도 함께 점검해야 합니다.
적용 전, 어떤 페이지를 묶을지 정하세요

hreflang은 번역이나 지역화된 페이지의 대응 관계를 설명합니다. 예를 들어 미국 영어 페이지와 영국 영어 페이지처럼 같은 언어라도 지역에 따라 내용이 다르면 각각 구분할 수 있습니다. 반면 서로 대응하지 않는 페이지를 억지로 한 그룹에 넣으면 정확한 안내가 어렵습니다.
- 같은 문서의 번역·현지화 버전인지 확인합니다.
- 지역별 가격, 배송, 법적 안내가 다르면 해당 지역 페이지가 실제로 존재하는지 확인합니다.
- 언어별 URL을 따로 두고 검색엔진과 사용자가 각 페이지에 직접 접근할 수 있게 합니다.
Google은 hreflang이나 HTML의 lang 속성만으로 페이지 언어를 판정하지 않습니다. 페이지의 주요 콘텐츠가 실제로 해당 언어로 작성되어 있는지도 중요합니다. 쿠키나 브라우저 설정으로만 언어를 바꾸는 구조는 검색엔진이 모든 버전을 발견하지 못할 수 있습니다. Google의 다지역 및 다국어 사이트 관리 안내에서 URL 분리와 언어 전환 방식에 관한 원칙을 확인할 수 있습니다.
hreflang 태그 적용 방법 4단계

1단계: 페이지별 언어와 지역 코드를 정합니다
언어 코드는 ISO 639-1 형식, 지역 코드는 ISO 3166-1 alpha-2 형식을 사용합니다. 언어와 지역을 함께 쓸 때는 언어를 먼저 적습니다. 예를 들어 미국 영어는 en-US, 영국 영어는 en-GB, 독일어는 de로 표현합니다. 한국어 페이지는 ko, 한국 사용자를 대상으로 하는 한국어 페이지는 ko-KR로 표기합니다. 국가 코드만 단독으로 지정할 수는 없습니다. 지역을 특정하지 않는 영어 페이지라면 en처럼 언어 코드만 사용할 수 있습니다.
2단계: 구현 방식을 하나 고릅니다
일반 HTML 페이지라면 각 페이지의 <head>에 링크를 넣는 방식이 이해하기 쉽습니다. 페이지가 많아 템플릿을 수정하기 어렵다면 XML 사이트맵에 대체 URL을 모을 수 있습니다. PDF처럼 HTML 헤드가 없는 파일은 HTTP 응답 헤더를 사용할 수 있습니다. 세 방식은 Google이 지원하며, 특별한 운영상 이유가 없다면 한 가지 방식을 일관되게 관리하는 편이 오류를 찾기 쉽습니다.
3단계: 자기 페이지와 대응 페이지를 연결합니다
미국 영어와 영국 영어 페이지가 있다면 각 페이지에서 자기 자신을 포함한 대응 URL을 지정하고, 서로를 가리키도록 합니다. 실제 도메인과 URL을 사용한 HTML 예시는 다음과 같습니다.
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/language/" />
예시의 x-default는 별도 언어·지역 지정에 해당하지 않는 방문자에게 안내할 기본 URL입니다. 국가·언어 선택 페이지나 중립적인 기본 페이지가 있을 때 사용하면 됩니다. 대체 페이지가 없는 콘텐츠에 모든 언어 태그를 일괄 삽입할 필요는 없습니다. Google은 전체 대체 URL을 서로 연결하는 방식을 안내하지만, 모든 언어 URL을 관리하기 어렵다면 일부 연결을 생략할 수 있습니다. 이 경우에도 주석이 상호 연결된 페이지 쌍은 서로를 가리키도록 해야 합니다.
4단계: 배포 후 실제 URL과 상호 연결을 검수합니다
태그를 추가한 뒤 각 URL이 의도한 페이지를 반환하는지 확인합니다. 리디렉션이나 오류 페이지를 가리키거나, 검색 색인이 막힌 URL을 대체 페이지로 넣지 않았는지 살펴봅니다. 배포된 HTML의 <head> 또는 생성된 사이트맵을 직접 확인하고, 사이트맵을 사용하는 경우 Search Console에서 제출 상태와 처리 오류를 점검합니다.
핵심 규칙: A 페이지가 B를 대체 페이지로 지정하면 B도 A를 대체 페이지로 지정해야 합니다. 상호 연결되지 않은 주석은 무시되거나 올바르게 해석되지 않을 수 있습니다.
방식별 적용 위치와 실무상 선택 기준

| 방식 | 적용 위치 | 적합한 경우 |
|---|---|---|
| HTML | 각 페이지의 head | 페이지 템플릿을 수정할 수 있는 웹사이트 |
| XML 사이트맵 | 각 URL 항목의 xhtml:link | 페이지가 많고 사이트맵을 중앙 관리하는 경우 |
| HTTP 헤더 | 문서 응답의 Link 헤더 | PDF 등 HTML이 아닌 파일 |
사이트맵 방식은 URL마다 별도의 항목을 만들고, 각 항목에 자기 페이지를 포함한 대체 버전을 나열합니다. 예컨대 세 언어 버전이라면 사이트맵의 세 URL 항목 모두에 같은 세 개의 대체 링크가 들어갑니다. 사이트맵의 urlset에 XHTML 네임스페이스를 선언해야 합니다. 구현 예시는 Google 검색 센터의 페이지 현지화 버전 문서에서 확인하세요.
검색 노출을 방해하는 흔한 실수

- 상호 링크 누락: 한 페이지에서만 다른 언어 페이지를 지정하면 연결 관계가 완성되지 않습니다.
- 잘못된 코드 순서나 값: 지역 코드만 쓰거나, 언어와 지역을 뒤집어 적지 않았는지 확인합니다.
- 비정규 URL 연결: 가능한 한 각 언어 페이지의 대표 URL을 연결하고, HTTP와 HTTPS 또는 슬래시 차이로 다른 주소를 섞지 않습니다.
- 중복되거나 충돌하는 구현: 템플릿과 플러그인이 서로 다른 URL 목록을 출력하지 않는지 확인합니다.
- 접근 불가 페이지 연결: 리디렉션, 404, 크롤링 차단 여부를 점검합니다. robots.txt가 크롤링을 막는 경우에는 robots.txt 차단과 색인 누락 원인도 함께 점검할 수 있습니다.
hreflang은 canonical(검색엔진에 대표 URL을 알려주는 표기)을 대체하지 않습니다. 지역별 콘텐츠가 거의 같다면 각 페이지의 대표 URL 설정과 hreflang이 서로 모순되지 않는지 확인하세요. 언어 전환은 방문자가 직접 선택할 수 있게 제공하고, 사용자를 언어 추정만으로 강제 리디렉션하지 않는 편이 검색엔진과 방문자 모두에게 안전합니다.
배포 전 점검 체크리스트

- 대상 페이지마다 대응하는 언어·지역 페이지가 실제로 존재하는지 확인합니다.
- 모든 대체 URL에 전체 주소(https 포함)를 사용하고 올바른 코드로 표기합니다.
- 각 페이지에 자기 자신과 대응하는 다른 버전이 지정되어 있는지, 서로 연결되는 페이지 쌍이 상호 링크를 갖는지 확인합니다.
- 페이지 본문 언어, 대표 URL, 크롤링 가능 상태를 점검합니다.
- 배포 후 소스와 사이트맵을 확인하고 Search Console에서 사이트맵 처리 결과를 살펴봅니다.
사이트 규모가 커지면 언어별 URL 목록을 CMS나 배포 데이터에서 관리하고 자동 생성하는 방식을 고려하세요. URL이 새로 추가되거나 바뀔 때 태그와 사이트맵이 함께 갱신되도록 하면 수작업으로 발생하는 누락을 줄일 수 있습니다. 단, 자동 생성 결과도 실제 페이지 대응 관계와 일치하는지 검수해야 합니다.
자주 묻는 질문
Q. hreflang 태그를 넣으면 검색 순위가 오르나요?
hreflang은 언어·지역에 맞는 대체 페이지를 검색엔진에 설명하는 표기입니다. 적용 자체가 순위 상승이나 특정 페이지 노출을 보장하지는 않습니다.
Q. 한국어 페이지에는 어떤 코드를 쓰나요?
한국어는 ko를 사용합니다. 한국 사용자를 대상으로 하는 페이지임을 함께 지정하려면 ko-KR처럼 언어 코드 뒤에 지역 코드를 붙일 수 있습니다.
Q. hreflang과 canonical을 함께 써도 되나요?
함께 사용할 수 있지만 목적이 다릅니다. canonical은 대표 URL을 알리고 hreflang은 언어·지역별 대응 URL을 연결합니다. 각 페이지의 대표 URL과 대체 페이지 관계가 일관적인지 확인하세요.
Q. 모든 페이지에 x-default를 추가해야 하나요?
필수는 아닙니다. 특정 언어나 지역에 해당하지 않는 사용자를 안내할 기본 페이지가 있을 때 지정하면 됩니다. 언어 선택 페이지나 중립적인 기본 페이지가 흔한 예입니다.
Q. HTML 태그와 사이트맵을 동시에 써도 되나요?
가능하지만 두 구현을 함께 관리하면 서로 다른 URL 목록이 생길 수 있습니다. 한 방식으로 충분하다면 그 방식을 일관되게 유지하고, 두 방식을 병행한다면 페이지 간 대상 URL과 코드가 일치하는지 검수하세요.
