Would you like to view Search OS in English?View in English
용어집
SEO

Hreflang

hreflang은 같은 콘텐츠의 언어별·지역별 버전을 구글에 알려, 사용자의 언어 설정과 위치에 맞는 버전을 검색 결과에 노출시키는 속성입니다. 예를 들어 영국 사용자에게는 en-gb 페이지를, 미국 사용자에게는 en-us 페이지를 보여주도록 안내합니다.

  • hreflang은 동일 콘텐츠의 언어·지역별 버전을 구글에 알려, 사용자에게 가장 적합한 버전을 검색 결과에 띄우는 속성입니다.
  • 구현 방식은 HTML link 태그, HTTP 헤더, XML 사이트맵 세 가지이며, 페이지 성격에 따라 하나를 선택합니다.
  • 언어 코드는 ISO 639-1, 지역 코드는 ISO 3166-1 Alpha 2 형식을 따르며, 지역 코드만 단독으로 쓰면 무효 처리됩니다.
  • 가장 흔한 실수는 상호 참조(return link) 누락으로, X가 Y를 가리키면 Y도 반드시 X를 가리켜야 합니다.
  • 어떤 언어에도 맞지 않는 사용자를 위한 기본 버전은 x-default 값으로 지정합니다.

개요

hreflang은 같은 콘텐츠의 언어별·지역별 버전이 여러 개 있을 때, 각 버전이 어떤 언어·지역 사용자를 위한 것인지 구글에 알려주는 속성입니다. 구글은 이 정보를 바탕으로 검색 사용자의 언어 설정과 위치에 맞는 버전을 결과로 보여줍니다. 예를 들어 영국 영어(en-gb), 미국 영어(en-us), 독일어(de) 버전이 각각 존재할 때, hreflang을 통해 영국 사용자에게는 en-gb 페이지가 노출되도록 안내할 수 있습니다.

다국어·다지역 사이트에서 hreflang이 없으면 구글이 잘못된 언어 버전을 노출하거나, 거의 동일한 여러 버전을 중복 콘텐츠로 인식해 한 버전만 색인할 수 있습니다. hreflang은 이런 버전들이 중복이 아니라 서로 다른 대상을 위한 대체본임을 명확히 알려주는 신호입니다.

구현 방식 세 가지

구글은 hreflang을 세 가지 방법으로 지정할 수 있도록 지원합니다. 한 페이지에 대해 한 가지 방식만 사용하며, 세 방식 모두에서 자기 자신을 포함한 모든 버전을 나열해야 합니다.

1. HTML link 태그

각 페이지의 <head> 안에 버전마다 하나씩 link 요소를 넣습니다. 일반 HTML 페이지에 가장 널리 쓰이는 방식입니다.

<link rel="alternate" hreflang="en-gb"
      href="https://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us"
      href="https://en-us.example.com/page.html" />
<link rel="alternate" hreflang="de"
      href="https://de.example.com/page.html" />
<link rel="alternate" hreflang="x-default"
      href="https://www.example.com/" />

2. HTTP 헤더

PDF처럼 HTML이 아닌 파일에는 <head>가 없으므로 HTTP 응답 헤더에 Link 항목으로 지정합니다.

Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

3. XML 사이트맵

페이지 수가 많을 때는 사이트맵에 xhtml 네임스페이스를 선언하고 각 url 항목 아래에 xhtml:link 요소로 버전을 나열합니다. HTML을 수정하지 않고 한곳에서 관리할 수 있습니다.

<url>
  <loc>https://www.example.com/english/page.html</loc>
  <xhtml:link rel="alternate" hreflang="en"
              href="https://www.example.com/english/page.html"/>
  <xhtml:link rel="alternate" hreflang="de"
              href="https://www.example.de/deutsch/page.html"/>
</url>

언어·지역 코드 형식

코드는 언어-지역 형식을 따릅니다. 언어는 ISO 639-1, 지역은 ISO 3166-1 Alpha 2 코드를 사용합니다.

  • 언어만 단독 사용 가능: de, en
  • 언어+지역: en-gb, de-ch
  • 문자 체계 지정 가능: zh-Hant, zh-Hans-US
  • 지역 코드만 단독 사용은 무효: 예를 들어 독일을 노리며 de 대신 de-be가 아닌 지역 코드만 쓰면 인식되지 않습니다.

흔한 오류

구글 검색 센터 문서와 업계 가이드가 공통으로 지적하는 대표적 오류는 다음과 같습니다.

  • 상호 참조(return link) 누락: 페이지 X가 Y를 대체본으로 가리키면 Y도 반드시 X를 가리켜야 합니다. 한쪽만 참조하면 해당 hreflang 표기가 무시될 수 있습니다.
  • 자기 참조 누락: 각 버전은 자기 자신을 가리키는 hreflang도 포함해야 합니다. self-reference가 빠지면 관계 집합이 불완전해집니다.
  • x-default 누락 또는 중복: 어떤 언어에도 매칭되지 않는 사용자를 위한 기본 버전(국가 선택 페이지 등)은 x-default로 지정하며, 한 페이지에 x-default는 하나만 둡니다. 여러 개면 모두 무시됩니다.
  • 비표준·잘못된 코드: es-419, EU, UK처럼 ISO 표준을 벗어난 코드는 무시됩니다.
  • 404·리다이렉트 대상: hreflang이 가리키는 URL은 모두 200(OK)을 반환하고 색인 가능해야 합니다. 404나 리다이렉트로 연결되면 신호가 무시될 수 있습니다.
  • canonical과의 불일치: canonical이 hreflang 세트와 다른 URL을 가리키면 상충 신호가 되어 구글이 의도와 다른 URL을 선택할 수 있습니다.

근거

위 구현 방식과 코드 형식, 오류 사항은 구글 검색 센터의 공식 문서 "Localized Versions of your Pages"에 명시된 내용입니다. 이 문서는 "페이지 X가 페이지 Y를 가리키면, 페이지 Y는 반드시 페이지 X를 가리켜야 한다"고 상호 참조를 명확히 규정하며, 지역 코드 단독 사용은 불가하다고 안내합니다. x-default는 구글이 2013년 블로그("Introducing x-default hreflang")에서 국제 랜딩 페이지용으로 도입한 값입니다.

실행 체크리스트

  • 모든 언어·지역 버전을 빠짐없이 나열했는지, 그 안에 자기 자신도 포함했는지 확인합니다.
  • 모든 버전이 서로를 양방향으로 참조(return link)하는지 점검합니다.
  • 언어는 ISO 639-1, 지역은 ISO 3166-1 Alpha 2 형식인지, 지역 코드를 단독으로 쓰지 않았는지 검증합니다.
  • 어떤 언어에도 맞지 않는 사용자를 위한 x-default를 정확히 하나 지정합니다.
  • hreflang이 가리키는 모든 URL이 200을 반환하고 색인 가능한지, canonical과 충돌하지 않는지 확인합니다.
  • 구현 방식(HTML link·HTTP 헤더·사이트맵)은 페이지당 하나로 통일합니다.

참고·출처

관련 콘텐츠

사이트는 더 잘 읽히고

콘텐츠는 더 명확해지고

브랜드는 더 많은 질문 속에서 발견됩니다

제품 소개서로 Search OS가 어떻게 동작하는지 먼저 확인해보세요.