본문으로 건너뛰기
← 전체 가이드

hreflang

hreflang은 여러 페이지가 서로 다른 독자를 위한 같은 내용임을 검색엔진에 알려 알맞은 쪽을 내보내게 합니다. 따르지 않을 수도 있는 신호이지 반드시 지켜야 하는 지시가 아닙니다.

집합을 해석 가능하게 유지하는 네 가지 규칙

Hreflang은 주석 클러스터이므로 한쪽의 오류는 Google이 관계를 해석하는 방식에 영향을 미칠 수 있습니다. Google에서는 반환 링크가 누락되었거나 유효하지 않은 주석이 무시되거나 잘못 해석될 수 있다고 말합니다. 한 번의 실수로 인해 항상 전체 클러스터가 무효화된다는 보장은 없습니다.

  • 완전할 것: 그룹 안의 모든 버전이 다른 모든 버전을 열거한다.
  • 상호: X가 Y를 가리키는 경우 Y는 다시 X를 가리켜야 합니다. 반환 링크가 없으면 주석이 무시되거나 잘못 해석될 수 있습니다.
  • 자기를 가리킬 것: 각 페이지가 다른 것들과 나란히 자기 자신도 열거한다.
  • 유효할 것: 코드가 실제 언어 코드와 지역 코드로 읽혀야 한다.

상호성 규칙은 팀을 사로잡는 규칙입니다. hreflang는 한 페이지의 속성이 아닌 페이지 간의 관계를 개별적으로 설명하기 때문입니다. Google이 한쪽을 크롤링할 때 게시된 각 관계가 완료되도록 해당 반환 링크를 함께 출시하세요.

주석을 어디에 둘 것인가

놓을 자리는 셋이고 효력은 같습니다. 하나를 골라 어디서나 그것을 쓰세요. 한 사이트 안에서 섞어 쓰는 것이야말로 묶음이 절반만 선언된 채 남는 경로입니다.

방법알맞은 곳주의할 점
HTML의 link 요소작거나 중간 규모 사이트버전이 많을 때의 페이지 무게
HTTP 헤더PDF 등 HTML이 아닌 파일큰 묶음에서의 헤더 크기 제한
사이트맵 항목큰 사이트, 여러 언어페이지 자체와 발맞춰 유지하는 일
HTML의 link 요소
<link rel="alternate" hreflang="en" href="https://example.com/guide/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/guide/" />
<link rel="alternate" hreflang="pt-br" href="https://example.com/pt-br/guide/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/guide/" />

이 예에서 영어 페이지가 자기 자신을 열거하고 있다는 점을 보세요. 그것이 자기 참조이고, 그 부재는 다른 면에서는 꼼꼼한 구현에서 압도적으로 흔한 결함입니다. 군더더기처럼 보이고, 템플릿을 정리하는 사람에게는 실수처럼 읽히기 때문입니다.

코드, 그리고 존재하지 않는 코드

언어는 ISO 639-1입니다. 그 뒤에 붙임표와 ISO 3166-1 Alpha 2 지역이 따라올 수 있습니다. 지역만으로는 결코 유효하지 않습니다. 어떤 언어인지 말하지 않고 «이 페이지는 캐나다용»이라고 말할 방법은 없습니다.

코드판정이유
ko유효언어만 — 한국어, 지역 무관
zh-TW유효대만을 위해 쓰인 중국어
TW무효언어 없는 지역
uk유효하지만 영국이 아님uk는 우크라이나어. 영국은 GB
eu지역으로는 무효EU는 국가 코드가 아님
en-UK무효영국의 국가 코드는 GB

x-default는 무엇을 위한 것인가

x-default는 당신이 열거하지 않은 언어를 받아냅니다. 어느 버전과도 언어가 맞지 않는 방문자를 위한 대비책이고, 자연스러운 자리는 언어 선택 페이지이거나 방문자를 스스로 갈라 보내는 첫 화면입니다.

주 버전을 지명하는 수단이 아닙니다. 영어가 기본처럼 느껴진다는 이유로 x-default를 영어 페이지에 두는 것은, 맞지 않은 일본어나 튀르키예어 방문자에게 영어를 줘야 한다고 검색엔진에 말하는 셈입니다. 그게 맞을 수도 있지만, 습관이 아니라 의식적으로 정할 문제입니다.

hreflang과 표준 URL은 서로 다른 일

이 둘은 기술 SEO의 어떤 짝보다도 자주 엉키고, 고장 나는 방식도 심각합니다. 표준 URL은 «나 대신 이 다른 주소를 색인하라»고 말합니다. hreflang은 «이 다른 주소는 다른 독자를 위한 같은 내용»이라고 말합니다.

독일어 페이지의 표준 URL을 영어 페이지로 향하게 하면, 독일어 페이지를 아예 색인하지 말라고 검색엔진에 말한 것이 됩니다. 그러면 그 페이지가 결과에서 사라지고, 동시에 그것을 참조하던 hreflang 묶음도 깨집니다. 지역화된 각 페이지는 자기 자신을 표준으로 삼고, 형제 버전은 hreflang으로 설명해야 합니다.

내 사이트에서 시험해 보기

질문과 답변

hreflang이 언어 간 중복 콘텐츠를 해결하나요?

이것은 타깃팅 신호이지 중복 콘텐츠 해법이 아닙니다. 번역은 중복이 아니며, hreflang은 어느 번역이 어느 독자의 것인지를 검색엔진에 알려줍니다.

왜 엉뚱한 언어 버전이 노출되나요?

대개 상호 링크 묶음이 불완전하거나 코드가 검증을 통과하지 못해서입니다. hreflang은 신호이므로, 검색엔진이 믿지 않는 묶음은 옆으로 치워지고 엔진은 자기 나름의 언어 감지로 돌아갑니다.

모든 페이지가 한 언어라면 hreflang이 필요한가요?

그것으로 여러 지역을 겨냥할 때만 필요합니다. 시장마다 내용이 다른 ko-KR과 en-US 같은 경우죠. 한 독자층을 위한 한 언어 사이트에는 아무것도 필요 없습니다.

각 페이지는 자기 자신을 표준으로 삼아야 하나요, 원본 언어를 삼아야 하나요?

자기 자신입니다. 번역을 원본 언어로 표준화하면 번역을 색인하지 말라는 말이 되어, 결과에서 사라지고 그것을 가리키던 hreflang 묶음도 깨집니다.

x-default는 어디를 가리켜야 하나요?

당신이 내놓지 않은 언어의 방문자를 맞아야 할 곳입니다. 보통 언어 선택 페이지이거나 스스로 갈라 보내는 첫 화면이죠. 대비책을 지명하는 것이지 주 버전을 지명하는 것이 아닙니다.

hreflang은 순위 요소인가요?

아닙니다. 알맞은 버전이 알맞은 독자에게 닿도록 돕는 타깃팅 신호입니다. 페이지 순위를 올려주지 않으며, 구글이 주석을 아예 따르지 않을 수도 있습니다.