Hreflang은 페이지가 대상으로 하는 언어와 지역을 검색엔진에 알립니다. 문법, 흔한 실수, 다국어 SEO에서의 역할을 알아보세요.

요약
Hreflang은 페이지의 언어 및 지역 타기팅을 알리는 HTML 속성입니다. Google을 비롯한 검색엔진이 각 사용자에게 올바른 콘텐츠 버전을 제공하도록 알려주고, 중복 콘텐츠 충돌을 막아 주며, 다국어 또는 다지역 웹사이트라면 반드시 필요합니다.
더 알아보고 싶다면 물어보세요
사이트가 두 개 이상의 언어로 운영되거나, 같은 언어로 여러 국가를 대상으로 한다면 검색엔진은 어떤 버전을 어떤 사용자에게 보여줄지 판단하는 데 도움이 필요합니다. 캐나다의 프랑스어 사용자와 프랑스의 프랑스어 사용자는 서로 다른 페이지를 봐야 합니다. Hreflang(rel="alternate" hreflang 주석)은 이러한 관계를 검색엔진에 알려 올바른 페이지가 올바른 대상에게 도달하도록 하는 방법입니다.
hreflang이 없으면 현지화된 페이지들이 검색 결과에서 서로 경쟁하거나, 중복 콘텐츠로 분류되거나, 단순히 사용자에게 잘못된 버전이 표시될 수 있습니다. hreflang을 사용하면 Google은 언어 및 지역 변형을 하나의 클러스터로 묶어 가장 적합한 버전을 제공합니다. hreflang은 국제 SEO에서 가장 강력한 도구 중 하나이자, 가장 자주 잘못 설정되는 도구이기도 합니다.
Hreflang은 현지화 매칭 문제를 해결합니다. 같은 콘텐츠를 영어, 스페인어, 독일어로 게시하면 그 페이지들은 서로 거의 중복된 상태가 됩니다. 검색엔진은 이를 복제된 콘텐츠로 오인하거나 순위를 매길 페이지를 잘못 고를 수 있습니다. hreflang 주석은 이 페이지들이 의도된 대체 버전이며, 각각 특정 언어나 로케일을 위해 만들어졌다는 사실을 검색엔진에 알려줍니다.
그 결과 사용자 경험이 개선되고 색인이 깔끔해집니다. 현지화 버전에 관한 Google 문서에 따르면, hreflang을 사용하면 Google이 사용자가 읽을 수 없는 버전이나 통화, 배송, 법적 정보가 잘못된 버전 대신 사용자의 언어와 지역에 맞는 페이지로 안내할 수 있습니다.
페이지 head에 들어가는 hreflang 주석은 다음과 같습니다: <link rel="alternate" hreflang="en" href="https://example.com/en/" />. rel="alternate"는 링크된 URL이 대체 버전임을 선언하고, hreflang 값은 언어(및 선택적으로 지역)를 나타내며, href는 해당 버전의 완전한 절대 URL을 지정합니다.
모든 페이지에 모든 버전에 대한 태그를 하나씩 포함해야 합니다. 세 개 언어로 존재하는 페이지에는 각 버전을 가리키는 hreflang 태그 세 개가 들어가며, 자기 자신을 가리키는 태그도 포함됩니다. 각 언어 버전은 동일한 전체 세트를 반복합니다. 이렇게 해야 검색엔진이 그룹 전체를 함께 매핑할 수 있습니다.
hreflang 값에는 표준화된 코드를 사용하며, 이를 정확히 지키는 것은 타협할 수 없는 부분입니다. 언어는 ISO 639-1 형식으로 지정합니다(예: en, es, de). 선택적으로 ISO 3166-1 Alpha 2 형식의 지역을 하이픈으로 연결해 추가할 수 있습니다: en-GB, en-US, es-MX, fr-CA.
언어가 항상 먼저 와야 하며, 지역만 단독으로 쓰는 것은 유효하지 않습니다. hreflang="GB"를 단독으로 사용할 수 없으며, en-UK나 EU 같은 임의의 코드는 작동하지 않습니다(영국의 올바른 코드는 GB입니다). 문자 체계의 차이에는 ISO 15924 코드가 적용되며, 번체 중국어는 zh-Hant, 간체 중국어는 zh-Hans를 사용합니다. 유효하지 않은 코드는 그냥 무시되므로 설정이 소리 없이 망가집니다.
Hreflang은 상호적이어야 합니다. 페이지 X가 페이지 Y를 스페인어 대체 버전으로 가리킨다면, 페이지 Y도 페이지 X를 영어 대체 버전으로 다시 가리켜야 합니다. Google은 이를 반환 태그(return tag)라고 부르며, 반환 태그가 없으면 주석 전체를 무시할 수 있습니다. Google의 다지역 사이트 가이드가 강조하듯, 이 반환 링크 요건은 실제로 hreflang이 실패하는 가장 흔한 단일 원인입니다.
마찬가지로 중요한 것은 모든 페이지가 자기 자신을 참조해야 한다는 점입니다. 영어 페이지에는 자신의 URL을 가리키는 영어용 hreflang 태그가 포함됩니다. 자기 참조 태그를 빠뜨리는 것도 흔한 오류입니다. 이 규칙은 절대적인 것으로 다루세요. 각 페이지는 자기 자신과 다른 모든 버전을 나열하고, 모든 버전이 똑같이 서로를 참조해야 합니다.
특수 값 hreflang="x-default"는 지정한 언어나 지역 중 어느 것도 사용자와 일치하지 않을 때 어떤 페이지를 보여줄지 검색엔진에 알려줍니다. 일종의 대체(폴백) 페이지입니다. 흔히 언어 선택 랜딩 페이지나 기본 글로벌 버전에 사용합니다: <link rel="alternate" hreflang="x-default" href="https://example.com/" />.
x-default 추가는 국제 사이트의 모범 사례입니다. x-default가 없으면 언어와 지역이 어떤 변형과도 일치하지 않는 사용자는 검색엔진의 추측에 맡겨집니다. x-default가 있으면 기본 경험을 직접 제어할 수 있으며, 예를 들어 일치하는 버전이 없는 방문자를 스스로 언어를 선택할 수 있는 페이지로 안내할 수 있습니다.
Google은 세 가지 구현 방법을 지원하며, 이를 섞지 말고 하나를 선택해야 합니다. 첫 번째는 각 페이지의 <head>에 HTML 링크 태그를 넣는 방법으로, 일반 웹페이지에서 가장 흔히 쓰입니다. 두 번째는 HTTP 헤더로, 본문에 마크업을 추가할 수 없는 PDF 같은 HTML 이외의 파일에 사용합니다.
세 번째 방법은 XML 사이트맵입니다. 모든 페이지에 태그를 추가하는 대신 xhtml:link 항목을 사용해 XML 사이트맵 안에서 모든 언어 관계를 선언합니다. 이 방법은 페이지 코드를 깔끔하게 유지하고 대규모로 관리하기가 더 쉬운 경우가 많지만, 신중하게 생성해야 합니다. 어떤 방법을 선택하든 사이트 전체에 일관되게 적용하세요.
Hreflang과 캐노니컬 태그는 함께 작동하지만, 대표적인 실수 하나가 둘 다 망가뜨립니다. 각 언어 버전은 하나의 마스터 버전이 아니라 자기 자신을 캐노니컬로 지정해야 합니다. 독일어 페이지의 캐노니컬 태그를 영어 URL로 설정하면, 독일어 페이지가 색인되어서는 안 되는 중복 페이지라고 Google에 알리는 셈이 되어 hreflang 설정이 무너집니다.
올바른 패턴은 현지화된 모든 페이지에 자기 참조 캐노니컬을 두고, 상호적인 hreflang 태그 전체 세트를 함께 사용하는 것입니다. 캐노니컬은 각 페이지가 자기 자신의 선호 버전임을 확인해 주고, hreflang은 서로 다르지만 동등하게 유효한 페이지들 사이의 관계를 설명합니다. 여기서 신호가 충돌하는 것은 다국어 사이트에서 색인 문제가 발생하는 주요 원인입니다.
같은 언어로 여러 국가에 서비스하는 경우 hreflang은 로컬 SEO와 밀접하게 연결됩니다. 스페인과 멕시코에서 모두 사업을 하는 기업은 각 국가용 스페인어 페이지를 게시하지만, 가격, 배송, 세금은 서로 다릅니다. es-ES와 es-MX 같은 태그를 사용하면 Google이 스페인어 사용자를 자국용으로 만들어진 버전으로 안내할 수 있습니다.
Hreflang은 언어와 지역 매칭만 처리할 뿐, 콘텐츠 품질은 다루지 않습니다. Google의 시스템은 편집되지 않은 기계 번역을 높은 정확도로 감지하며, 부실한 번역 페이지는 번역된 버전뿐 아니라 모든 버전의 순위를 떨어뜨릴 수 있습니다. 온전한 효과를 보려면 올바른 hreflang과 함께 각 시장에 맞게 제대로 현지화되고 사람이 검토한 콘텐츠를 갖추세요.
국제 사이트를 대상으로 한 조사에서는 대다수 사이트에 hreflang 오류가 있는 것으로 반복해서 나타납니다. 가장 흔한 오류는 반환 태그 누락, 자기 참조 태그 부재, 유효하지 않거나 지역만 있는 언어 코드, 절대 URL 대신 상대 URL 사용, 그리고 정상 페이지가 아니라 리디렉션되거나 오류를 반환하는 URL을 hreflang으로 가리키는 것입니다.
변경할 때마다 설정을 검증하세요. Google Search Console은 한때 국제 타겟팅 보고서를 제공했으며, 전용 hreflang 검사 도구와 Screaming Frog 같은 크롤러로 주석이 상호적인지, 유효한 코드를 사용하는지 확인할 수 있습니다. 보다 폭넓은 기술 SEO의 일환으로 정기적인 감사를 진행하면, 이런 소리 없는 오류가 국제 순위를 분산시키기 전에 잡아낼 수 있습니다.
다국어 SEO는 사이트의 각 언어 버전이 해당 언어에서 순위에 오르도록 만드는 작업입니다. hreflang은 버전들을 연결하지만, 각 버전에는 색인 가능한 자체 URL, 완전히 번역된 본문과 메타데이터, 그 언어로 한 키워드 조사, 같은 언어 안에서 이어지는 내부 링크도 필요합니다.
| URL 구조 | 예시 | 장점 | 단점 |
|---|---|---|---|
| 하위 디렉터리 | example.com/ko/ | 도메인 하나로 관리가 쉽고 권위를 모든 언어가 공유 | 지역을 겨냥할 때 국가 신호가 약함 |
| 하위 도메인 | ko.example.com | 언어별로 호스팅이나 설정을 분리할 수 있음 | 유지할 설정이 늘어남 |
| 국가 도메인 | example.kr | 한 국가에 대한 가장 분명한 신호 | 따로 키우고 비용을 내야 하는 도메인 |
이 노력은 AI 답변에서도 보답을 받습니다. 어시스턴트는 보통 사용자의 언어로 답하고 그 언어로 쓰인 출처를 참고하므로, 언어마다 잘 만든 버전이 있으면 인용할 거리가 생깁니다.
Hreflang은 다국어 및 다지역 SEO를 작동하게 만드는 주석입니다. 언어 및 지역 변형을 하나의 그룹으로 매핑하고, 각 사용자에게 올바른 페이지를 제공하며, 중복 콘텐츠 충돌을 방지합니다. 규칙은 엄격합니다. 유효한 ISO 코드, 상호적인 반환 태그, 모든 페이지의 자기 참조, x-default 폴백, 그리고 언어를 넘나들며 가리키지 않는 자기 참조 캐노니컬이 필요합니다. 이것들을 제대로 갖추면 국제 콘텐츠가 원래 의도한 대상에게 도달합니다. Sorank가 hreflang과 전체 기술 설정을 검색엔진과 AI 관점에서 어떻게 감사하는지 알아보세요.
출처
캐노니컬 태그는 어떤 URL이 페이지의 선호 버전인지를 검색엔진에 알려주고, hreflang은 페이지가 어떤 언어나 지역을 대상으로 하는지를 알려줍니다. 두 태그는 서로 다른 역할을 하며 충돌해서는 안 됩니다. 다국어 사이트에서는 현지화된 각 페이지에 자기 자신을 가리키는 자기 참조 캐노니컬을 두고, 다른 언어 버전을 설명하는 상호적인 hreflang 태그 전체 세트를 함께 사용해야 합니다. 대표적인 실수는 모든 언어 버전의 캐노니컬을 하나의 마스터 URL로 지정하는 것인데, 이는 다른 버전들이 중복이라고 Google에 알리는 것이어서 hreflang 설정 전체가 무너집니다.
대부분은 필요하지 않습니다. Hreflang은 같은 콘텐츠의 여러 언어 또는 지역 버전 간 관계를 매핑하기 위해 존재하므로, 한 국가만을 대상으로 하는 단일 언어 사이트에는 일반적으로 필요하지 않습니다. 예외는 같은 언어로 여러 국가에 실질적으로 다른 콘텐츠를 제공하는 경우입니다. 예를 들어 가격이나 배송 조건이 다른 미국용과 영국용 영어 페이지가 있다면, 둘 다 영어이더라도 en-US와 en-GB 같은 태그가 Google이 각 대상을 올바른 버전으로 안내하는 데 도움이 됩니다.
가장 흔한 원인은 반환 태그 누락입니다. Hreflang은 상호적이어야 하므로, 페이지 X가 페이지 Y를 가리키는데 페이지 Y가 X를 다시 가리키지 않으면 Google이 주석을 무시할 수 있습니다. 그 밖에 자주 발생하는 원인으로는 유효하지 않은 언어 코드(지역만 있는 코드나 en-UK 같은 임의의 값), 자기 참조 태그 누락, 절대 URL 대신 상대 URL 사용, 리디렉션되거나 오류를 반환하는 URL을 hreflang으로 가리키는 것 등이 있습니다. 크롤러나 hreflang 검사 도구로 설정을 검증해 모든 참조가 상호적이고, 절대 URL이며, 올바른 ISO 코드를 사용하는지 확인하세요.
먼저 Sorank를 경험한 사람들
