Hreflang: 다국어 SEO 실용 가이드
베트남에서 브랜드를 검색했는데 구글이 영어 페이지를 엽니다. 미국의 방문자가 가끔 베트남어 콘텐츠에 도착합니다. 두 페이지 모두 색인되어 있고 canonical도 올바르게 보입니다. 불일치는 어디에 있을까요?
이럴 때 hreflang에 주목해야 합니다. 콘텐츠를 번역하거나 페이지 순위를 저절로 올리지는 않습니다. 구글이 어떤 URL이 언어 또는 지역의 동등한 버전인지 이해해 검색자마다 가장 알맞은 버전을 보여 주도록 돕습니다.
hreflang이란?
hreflang은 같은 콘텐츠의 현지화된 버전을 연결하는 주석입니다. 베트남어와 영어 글은 다음과 같이 사용할 수 있습니다.
<link rel="alternate" hreflang="vi"
href="https://example.com/blog/huong-dan-seo">
<link rel="alternate" hreflang="en"
href="https://example.com/en/blog/seo-guide">
<link rel="alternate" hreflang="x-default"
href="https://example.com/blog/huong-dan-seo">
구분해야 할 세 가지는 다음과 같습니다.
- hreflang은 canonicalization이 아닙니다;
- 구글은 페이지 언어를 판단할 때 hreflang에만 의존하지 않습니다;
/en/폴더만으로는 관계가 성립하지 않습니다.
사이트에 hreflang이 필요한 때는?
다음의 경우에 유용합니다.
- 같은 주제에 완전한 번역본이 있을 때;
- 콘텐츠는 한 언어를 쓰지만
en-US와en-GB처럼 지역에 따라 다를 때; - 핵심 콘텐츠는 비슷하지만 내비게이션이나 지원이 시장마다 다를 때;
- 이커머스에서 가격, 통화, 배송, 재고가 국가마다 다를 때.
단일 언어 사이트가 장식 삼아 hreflang을 추가해도 얻는 것은 없습니다. 완전히 다른 주제를 겨냥한 페이지는 alternate가 아니라 독립적일 수 있습니다.
세 가지 구현 방법
방법 1: head 안의 HTML 태그
HTML 사이트에서 점검하기 쉽습니다. 모든 버전이 자기 자신과 다른 모든 버전을 나열합니다.
베트남어 페이지에서:
<link rel="alternate" hreflang="vi" href="https://example.com/bai-viet">
<link rel="alternate" hreflang="en" href="https://example.com/en/article">
영어 페이지에도 같은 세트가 필요합니다. EN이 VI를 가리키는데 VI가 다시 가리키지 않으면 반환 관계가 빠진 것입니다.
방법 2: HTTP 헤더
헤더는 PDF나 HTML head가 없는 다른 문서에 사용할 수 있습니다.
Link: <https://example.com/guide.pdf>; rel="alternate"; hreflang="vi",
<https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en"
방법 3: XML 사이트맵
각 URL이 자기 자신을 포함해 모든 버전에 대한 xhtml:link 자식 요소를 가집니다. 수천 개의 페이지로 확장할 수 있지만 파일을 수동으로 점검하기는 더 어려워집니다.
구글은 세 방법을 동등하게 취급합니다. 모두 사용해도 순위 보너스는 없고 불일치가 생길 가능성만 늘어납니다. 팀이 안정적으로 유지할 수 있는 소스를 선택하세요.
언어 및 지역 코드
언어는 ISO 639-1을, 선택적인 지역은 ISO 3166-1 Alpha 2를 사용합니다.
vi: 지역 제한이 없는 베트남어;en: 일반 영어;en-US: 미국 영어;en-GB: 영국 영어;fr-CA: 캐나다 프랑스어.
US 같은 국가 코드만 단독으로 사용하지 마세요. 첫 번째 구성 요소는 항상 언어입니다. 대소문자가 핵심 문제인 경우는 드물지만 언어는 소문자, 지역은 대문자로 쓰면 설정을 읽기 쉽습니다.
x-default는 무엇을 하나요?
x-default는 어떤 언어나 지역도 방문자와 맞지 않을 때의 대체 페이지를 지정합니다. 특히 다음에 유용합니다.
- 국가 선택기;
- 방문자에게 언어를 고르도록 안내하는 홈페이지;
- 글로벌 기본 버전.
VI와 EN만 있다면 주 언어를 x-default로 둘 수 있습니다. 실제 언어 주석 대신 x-default를 사용하지 마세요. vi나 en을 보완하는 것입니다.
canonical과 hreflang이 함께 작동하는 방식
각 현지화된 페이지는 자기 자신이나 같은 언어의 canonical로 canonical을 지정해야 합니다.
일관된 구성:
/bai-viet의 canonical은/bai-viet;/en/article의 canonical은/en/article;- 두 페이지는 hreflang으로 연결.
충돌하는 구성:
/en/article의 canonical이/bai-viet;- 두 URL을 언어 alternate로도 선언.
canonical은 구글에 EN을 VI로 통합하라고 요청하고, hreflang은 언어 타기팅을 위해 둘 다 보존하라고 요청합니다.
흔한 hreflang 오류 일곱 가지
1. 반환 링크 누락
A는 B를 가리키는데 B는 가리키지 않습니다. 템플릿마다 수작업으로 쓰지 말고 하나의 번역 데이터 소스에서 주석을 생성하세요.
2. alternate URL이 리디렉션되거나 404 반환
Hreflang은 최종적으로 유효한 URL을 지정해야 합니다. 마이그레이션 후에는 라우트, canonical, alternate를 함께 업데이트하세요.
3. 내비게이션만 번역
본문이 원래 언어로 남아 있다면 구글은 페이지를 진짜 번역본이 아니라 중복으로 볼 수 있습니다. 제목, 헤딩, 본문, alt 텍스트, 중요한 데이터를 번역하세요.
4. 버전마다 다른 세트
VI 페이지는 VI/EN/JP를 나열하는데 EN은 VI/EN만 나열합니다. 하나의 클러스터에 속한 모든 구성원에게 같은 관계 세트가 필요합니다.
5. 상대 URL
스킴과 호스트 이름을 포함한 절대 URL을 사용하세요. 도메인과 서브도메인 사이의 모호함을 막아 줍니다.
6. alternate가 noindex 페이지를 가리킴
noindex이거나, 차단되었거나, 다른 곳으로 canonical 처리된 페이지는 유용한 alternate가 아닙니다. 색인 가능한 URL만 포함하세요.
7. 모든 영어 페이지가 베트남어 홈페이지에 매핑
alternate는 동등해야 합니다. 영어 상품은 홈페이지나 비슷한 카테고리가 아니라 대응하는 베트남어 상품에 매핑하세요.
hreflang이 올바르게 유지되도록 데이터 설계하기
슬러그가 다를 수 있다면 URL의 /en/을 바꿔서 번역본을 추론하지 마세요. 번역 그룹을 저장하세요.
| 번역 그룹 | 로케일 | 슬러그 |
|---|---|---|
| article_104 | vi | hreflang-la-gi |
| article_104 | en | what-is-hreflang |
렌더링할 때 그룹의 모든 레코드를 조회합니다. 같은 소스로 언어 전환기, 사이트맵 주석, 번역 누락 리포트를 모두 구동할 수 있습니다.
번역본이 없다면 홈페이지를 가리키지 마세요. 실제로 존재하고 색인 가능한 로케일만 출력하세요.
발행 전 검증
소스 HTML 점검
JavaScript로 렌더링된 DOM만이 아니라 소스 보기나 메타 태그 검사기를 사용하세요. canonical, lang, 모든 alternate를 확인하세요.
양방향 확인
그룹의 모든 URL을 열어 보세요. 모든 페이지가 자기 자신과 다른 모든 페이지를 나열해야 합니다. 언어가 세 개라면 세 페이지 모두 같은 세 개의 alternate를 포함하며, 사용한다면 x-default도 포함합니다.
상태와 색인 가능성 확인
모든 URL이 200을 반환하고, noindex가 없고, 크롤링할 수 있으며, 같은 언어의 canonical을 지정해야 합니다. URL을 이전한 뒤에는 리디렉션 체인 검사기를 사용하세요.
콘텐츠가 실제로 현지화되었는지 확인
제목, H1, 본문, CTA, FAQ는 대상 언어를 사용해야 합니다. 번역된 템플릿이 번역되지 않은 글을 감싸고 있는 것은 다국어 경험이 아닙니다.
Search Console 모니터링
릴리스 후 URL 검사와 국가 및 페이지별 성과를 살펴보세요. hreflang은 선택을 돕지만 콘텐츠나 canonical 신호가 충돌하면 구글이 여전히 다르게 선택할 수 있습니다.
hreflang이 순위를 개선하나요?
태그를 추가하면 순위가 오른다는 의미에서는 그렇지 않습니다. hreflang의 가치는 잘못된 언어로의 유입을 막고, 버전별 신호를 정렬하고, 검색 경험을 개선하는 데 있습니다.
빈약한 영어 페이지가 강력한 베트남어 글과 짝을 이룬다고 해서 저절로 권위가 생기지는 않습니다. 각 버전에는 여전히 유용한 콘텐츠, 내부 링크, 고유한 메타데이터가 필요합니다.
사이트 전체 사고 없이 hreflang 적용하기
hreflang을 템플릿 장식이 아니라 데이터 마이그레이션으로 다루세요. 모든 번역이 완성되고 편집 검토를 마친 콘텐츠 그룹 하나로 시작하세요. 번역 그룹 키가 의도한 URL로 연결되는지 검증한 다음 그 코호트를 먼저 릴리스하고 확대하세요.
안전한 적용은 네 단계로 이루어집니다.
- 인벤토리: 색인 가능한 모든 URL, 로케일, canonical, 상태, 번역 그룹 키를 나열합니다.
- 완전성: 번역이 빠졌거나 중복된 로케일 레코드가 있는 그룹을 표시합니다.
- 파일럿: 안정적인 섹션 하나에 주석을 발행하고 모든 구성원을 크롤링합니다.
- 확장: 반환 링크와 Search Console 동작이 깨끗하게 유지될 때만 섹션을 추가합니다.
데이터 소스 주변에 자동 점검을 구축하세요. 한 그룹에 영어 URL이 둘 있거나, alternate가 리디렉션을 반환하거나, 현지화된 페이지가 다른 언어로 canonical 처리되면 배포가 실패해야 합니다. 구글이 이미 크롤링한 뒤에 오류를 발견하는 것보다 훨씬 안정적입니다.
콘텐츠의 수명 주기도 고려하세요. 베트남어 글은 업데이트되었는데 영어 번역이 아직 대기 중이라면 두 버전이 여전히 유용한지 판단하세요. hreflang은 단어 하나하나까지 동일할 것을 요구하지 않지만 페이지는 여전히 동등한 답이어야 합니다. 한 버전이 낡았다면 그룹의 모든 구성원에서 제거하고 적절한 상태나 리디렉션을 반환하세요.
언어 전환기도 같은 매핑을 사용해야 합니다. 전환기는 사용자를 한 URL로 보내는데 hreflang은 크롤러를 다른 URL로 보낸다면 데이터 모델이 이미 갈라진 것입니다. 전환기, head 태그, 사이트맵 출력에 하나의 번역 소스를 사용하면 이런 어긋남이 줄어듭니다.
마지막으로 코호트별로 모니터링하세요. 파일럿 섹션의 노출수, 잘못된 언어로의 유입, 선택된 canonical을 비교하세요. 몇 주 동안의 안정적인 동작은 구문 검증기만의 결과보다 더 강력한 증거입니다.
방문자의 언어 선택을 존중하기
hreflang은 검색 엔진이 랜딩 페이지를 선택하는 데 도움이 되지만 웹사이트에는 여전히 쓸 만한 언어 전환기가 필요합니다. IP 주소만으로 모든 방문자를 로케일에 가두지 마세요. 해외 여행 중인 베트남어 사용자도 베트남어를 선호할 수 있고, 베트남에 있는 영어 사용 고객은 영어를 원할 수 있습니다.
자동 감지를 사용한다면 되돌릴 수 없는 리디렉션 대신 제안을 제공하세요. 현지화된 모든 URL에 직접 접근할 수 있게 하고, 국가 로직과 언어 로직 사이의 리디렉션 루프를 피하고, 사용자의 명시적인 선택은 적절한 쿠키로 기억하세요.
전환기는 현지화된 홈페이지만이 아니라 대응하는 페이지로 연결해야 합니다. 번역본이 없을 때는 홈페이지가 같은 리소스인 척하지 말고 그렇다고 알리거나 명확한 대체 경로를 제공하세요. 이렇게 하면 사용자 신뢰를 지키고 hreflang 매핑도 정직하게 유지됩니다.
새 브라우저 세션에서 언어별 URL을 열고 실제 리디렉션, canonical 및 hreflang을 확인하세요. 공개 Cloudflare 검사는 쿠키 설정이나 Accept-Language 조건을 재현하지 않습니다.
다른 시장에 진입하기 전에: 무료 SEO 감사를 실행해 VI/EN 라우트의 canonical, 색인 가능성, 메타데이터를 점검하세요.
결론
hreflang은 번역이 데이터에서 그룹으로 묶여 있고, 각 URL이 자기 자신을 참조하고, 페이지가 서로 반환 링크를 제공하고, canonical이 충돌하지 않을 때 작동합니다. 올바른 설정은 거의 눈에 띄지 않지만 올바른 콘텐츠가 엉뚱한 오디언스에게 도달하는 매우 눈에 띄는 실패를 막아 줍니다.
참고 자료: Google Search Central – 현지화된 버전.
자주 묻는 질문
hreflang을 HTML과 사이트맵 모두에 구현해야 하나요?
영어 페이지가 베트남어 번역본으로 canonical 처리되어야 하나요?
hreflang x-default는 필수인가요?
웹사이트를 무료로 확인하세요
지금 SEO 감사를 실행하거나 트래픽 품질을 확인해 보세요. 가입이 필요 없습니다.