집합을 해석 가능하게 유지하는 네 가지 규칙
Hreflang은 주석 클러스터이므로 한쪽의 오류는 Google이 관계를 해석하는 방식에 영향을 미칠 수 있습니다. Google에서는 반환 링크가 누락되었거나 유효하지 않은 주석이 무시되거나 잘못 해석될 수 있다고 말합니다. 한 번의 실수로 인해 항상 전체 클러스터가 무효화된다는 보장은 없습니다.
- 완전할 것: 그룹 안의 모든 버전이 다른 모든 버전을 열거한다.
- 상호: X가 Y를 가리키는 경우 Y는 다시 X를 가리켜야 합니다. 반환 링크가 없으면 주석이 무시되거나 잘못 해석될 수 있습니다.
- 자기를 가리킬 것: 각 페이지가 다른 것들과 나란히 자기 자신도 열거한다.
- 유효할 것: 코드가 실제 언어 코드와 지역 코드로 읽혀야 한다.
상호성 규칙은 팀을 사로잡는 규칙입니다. hreflang는 한 페이지의 속성이 아닌 페이지 간의 관계를 개별적으로 설명하기 때문입니다. Google이 한쪽을 크롤링할 때 게시된 각 관계가 완료되도록 해당 반환 링크를 함께 출시하세요.
주석을 어디에 둘 것인가
놓을 자리는 셋이고 효력은 같습니다. 하나를 골라 어디서나 그것을 쓰세요. 한 사이트 안에서 섞어 쓰는 것이야말로 묶음이 절반만 선언된 채 남는 경로입니다.
| 방법 | 알맞은 곳 | 주의할 점 |
|---|---|---|
| HTML의 link 요소 | 작거나 중간 규모 사이트 | 버전이 많을 때의 페이지 무게 |
| HTTP 헤더 | PDF 등 HTML이 아닌 파일 | 큰 묶음에서의 헤더 크기 제한 |
| 사이트맵 항목 | 큰 사이트, 여러 언어 | 페이지 자체와 발맞춰 유지하는 일 |
<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으로 설명해야 합니다.