본문 바로가기
SEO·GEO 용어사전

hreflang

마지막 업데이트
선호 출처로 추가

hreflang은 같은 콘텐츠를 제공하는 언어별, 지역별 URL의 관계를 Google에 알리는 표시입니다. 한국어판과 영어판처럼 서로 대응하는 페이지를 연결하면 Google이 사용자의 언어와 지역에 적합한 버전을 선택하는 데 도움이 됩니다. 페이지를 자동으로 번역하는 기능은 아닙니다.

같은 영어 페이지라도 국가에 따라 가격과 배송 조건이 다를 수 있습니다. 전체 번역본, 같은 언어의 지역별 페이지, 본문은 같고 메뉴와 바닥글만 번역한 페이지 등에 hreflang을 적용할 수 있습니다.

언어와 지역 코드 작성 규칙

<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="x-default" href="https://example.com/page/">

언어는 ISO 639-1 코드를 쓰고, 국가를 구분할 때는 뒤에 ISO 3166-1 Alpha 2 코드를 붙입니다. en은 지역을 정하지 않은 영어, en-gb는 영국 사용자를 대상으로 한 영어입니다. 중남미 스페인어를 뜻하는 es-419처럼 Google의 지원 규격에 맞지 않는 값은 사용할 수 없습니다.

  • 지역 코드만 단독으로 쓸 수 없습니다. 첫 코드는 반드시 언어여야 합니다.
  • Google은 지역 값으로 EU, UK를 인정하지 않습니다. 영국의 지역 코드는 GB입니다.
  • be는 벨기에 지역을 뜻하는 값으로 단독 사용하면 안 됩니다. 언어 코드에서는 벨라루스어를 뜻하기 때문입니다. 벨기에 대상 페이지는 언어에 따라 de-be, nl-be, fr-be처럼 씁니다.

x-default는 사용자의 언어와 지역에 맞는 버전이 목록에 없을 때 보여 줄 기본 페이지를 지정합니다. 언어 선택 화면이나 자동 이동을 제공하는 홈페이지에 연결할 수 있습니다. 위 예시는 한국어판, 영어판과 기본 페이지의 관계를 표시한 것입니다.

HTML, HTTP 헤더, 사이트맵 설정 위치

방식표시하는 위치
HTML link 요소일반 HTML 페이지의 <head>에 표시
HTTP Link 헤더PDF처럼 HTML <head>가 없는 파일의 응답에 표시
XML 사이트맵각 URL 항목에 언어별, 지역별 대체 URL 목록을 기록

Google은 세 방식을 동등하게 처리하므로 사이트에서 관리하기 편한 방법을 선택하면 됩니다. 여러 방식에 같은 설정을 중복해서 넣어도 추가 이점은 없습니다. HTML에서는 <head> 안에 각 대체 URL의 link 요소를 넣습니다. 미디어별 대체 페이지를 표시하는 media 속성과 hreflang을 한 link 요소에 합치지 않습니다.

각 페이지가 서로를 가리켜야 합니다

한국어 페이지의 hreflang에 영어 페이지를 적었다면, 영어 페이지에도 한국어 페이지를 가리키는 hreflang이 있어야 합니다. 이를 반환 링크라고 부릅니다. 한쪽에만 관계를 표시하면 Google이 그 연결을 무시하거나 올바르게 해석하지 못할 수 있습니다.

각 페이지는 자기 자신도 목록에 포함해야 합니다. 위 예시라면 한국어판과 영어판, 기본 페이지 모두에 같은 세 URL을 적습니다. 주소는 /ko/page/ 같은 상대 경로가 아니라 https://까지 포함한 완전한 절대 URL을 씁니다.

en-ie와 en-ca처럼 국가별 영어 페이지를 운영한다면, 나머지 지역의 영어 사용자에게 보여 줄 en도 지정하는 것이 좋습니다. 이를 위해 새 페이지를 만들 필요는 없으며 기존 지역별 페이지 중 하나를 en의 대상 URL로 지정할 수도 있습니다.

언어가 많아 모든 버전 사이의 연결을 유지하기 어렵다면 일부 관계를 생략할 수 있습니다. Google은 서로를 가리키는 관계를 계속 처리합니다. 이 경우 새 언어 페이지는 사이트의 기존 주력 언어 페이지와 우선 양방향으로 연결하라고 권장합니다.

hreflang과 canonical을 함께 쓰는 규칙

각 언어 페이지에 실제로 번역된 고유한 내용이 있다면 일반적으로 자기 주소를 캐노니컬 태그로 지정하고 hreflang으로 서로 연결합니다.

canonical은 중복 페이지 가운데 대표로 삼을 URL을 알리고, hreflang은 언어와 지역별 대체 페이지를 연결합니다. 한국어와 영어로 본문을 각각 번역했다면 영어판의 canonical을 한국어 원문으로 보내지 않습니다. Google은 hreflang을 쓸 때 같은 언어의 페이지를 canonical로 지정하라고 권장합니다.

같은 언어의 지역별 페이지가 거의 같은 내용을 제공하는 경우는 다릅니다. 이때 Google은 선호하는 URL을 canonical로 지정하고 hreflang으로 지역별 버전을 연결하는 방식을 안내합니다. 언어별 번역본을 하나로 합치는 설정과, 같은 언어의 중복 페이지를 정리하는 설정을 혼동하지 않아야 합니다.

언어만 지정할지, 지역까지 지정할지

페이지가 제공하는 언어와 실제 대상 지역에 맞춰 코드를 정합니다. 국가별 URL을 운영한다는 이유만으로 모든 페이지에 지역 코드를 붙일 필요는 없습니다.

운영 상황권장 판단
한국어 원문과 영어 번역문ko, en으로 연결합니다.
미국과 영국에서 가격, 배송, 연락처가 다름en-us, en-gb처럼 지역까지 구분합니다.
영어 내용은 같고 URL만 국가별로 복제지역별 URL을 유지할 이유와 대표 URL을 먼저 정합니다.
공통 언어 선택 화면을 제공지원하지 않는 언어의 사용자에게 보여 줄 x-default로 지정할 수 있습니다.

사용자의 IP나 추정한 언어를 기준으로 다른 언어의 URL로 강제 이동시키면 Googlebot과 사용자가 원하는 버전을 열기 어려울 수 있습니다. 각 버전에 고유한 URL을 제공하고 사용자가 언어 선택 링크로 직접 이동할 수 있게 합니다.

Google은 hreflang이나 HTML의 lang 속성으로 페이지 언어를 판별하지 않고 실제 본문을 분석합니다. 한국어 본문에 en을 지정했다고 영어 페이지로 바뀌는 것은 아닙니다.

실제 구현을 확인하는 방법

HTML로 구현했다면 각 언어 페이지의 <head>에서 hreflang 목록을 비교합니다. HTTP 헤더 방식은 각 URL의 응답 헤더를, 사이트맵 방식은 XML의 대체 URL 목록을 확인합니다. Google Search Console의 국제 타겟팅 보고서는 종료됐으므로 구현한 코드와 크롤링 결과를 직접 대조해야 합니다.

페이지가 많다면 같은 콘텐츠의 언어별 버전을 한 묶음으로 정리합니다. URL, 언어와 지역 코드, HTTP 상태, canonical, 선언된 대체 URL을 표에 모으면 어떤 관계가 빠졌는지 찾기 쉽습니다.

  1. 서로 대응하는 두 페이지가 양쪽에서 상대 URL을 선언했는지 확인합니다.
  2. 자기 자신을 목록에 넣었는지, 언어와 지역 코드가 지원 규격에 맞는지 확인합니다.
  3. 대체 URL이 200 응답을 반환하고 noindex로 막혀 있지 않은지 검사합니다. 301 리디렉션이나 404가 나온다면 현재 제공하는 페이지의 주소로 정리합니다.
  4. canonical이 같은 언어의 의도한 대표 URL을 가리키는지 확인합니다.
  5. 하나의 언어와 지역 조합에 서로 다른 두 URL을 지정하지 않았는지 확인합니다.

설정을 고친 뒤에는 국가와 언어 조건을 바꿔 검색하고 원하는 버전이 나타나는지 표본 확인합니다. hreflang은 힌트이므로 올바르게 작성해도 Google이 다른 URL을 선택할 수 있습니다. 이때는 본문 언어, 지역 정보, canonical, 리디렉션을 함께 점검합니다.

자주 묻는 질문

hreflang을 쓰면 자동 번역되나요?

아닙니다. 이미 존재하는 현지화 페이지의 관계를 알릴 뿐입니다.

영어 페이지가 하나뿐이어도 en-us를 써야 하나요?

특정 국가에 한정하지 않은 영어 콘텐츠라면 en을 사용할 수 있습니다. 여러 국가별 영어 페이지를 따로 운영한다면, 나머지 지역의 사용자에게 보여 줄 URL도 en으로 지정하는 것이 Google의 권장 방식입니다.

간체와 번체 중국어는 어떻게 구분하나요?

zh-Hans는 간체, zh-Hant는 번체 중국어를 나타냅니다. zh-TW처럼 지역을 지정하면 Google이 문자 체계를 유추할 수도 있습니다. 필요하면 zh-Hans-US처럼 문자 체계와 지역을 함께 지정할 수 있습니다.

다른 도메인의 페이지도 연결할 수 있나요?

가능합니다. 다만 각 페이지가 서로의 관계를 양방향으로 표시해야 합니다.

함께 알아두면 좋은 용어

참고 문서