가장 흔한 hreflang 실수는 자신을 잊는 것입니다
Across 135 multilingual websites we audited, 40% broke the same rule: their pages never reference themselves in their own hreflang annotations. Here is why that silently defeats the whole setup.
우리가 감사하는 모든 다국어 사이트는 링크마다 hreflang 클러스터를 확인합니다. 개의 사이트에서 hreflang 주석이 년 월부터 월 사이에 평가되었으며, 개가 같은 검사를 실패했습니다 — 그리고 모든 이 정확히 같은 방식으로 실패했습니다: 페이지가 자신의 hreflang 주석에서 누락되었습니다. 이는 다국어 샘플의 이며, 개의 특정 실수를 만들었습니다. 다른 hreflang 실패는 거의 다가오지 않았습니다 — 반환 링크, 대부분 가이드가 경고하는 것, 전체 데이터 세트에서 개의 실패를 보였습니다.
아무도 눈치채지 못한 규칙이 깨졌습니다
Hreflang은 동등한 페이지 간의 계약입니다. 페이지의 각 현지화 버전은 전체 대체 집합을 선언합니다 — 모든 언어 및 지역 변형, x-default 포함 — Google이(가) 올바른 검색자에게 올바른 버전을 제공할 수 있도록 합니다. 잊혀지는 부분은: 집합에 페이지 자체가 포함되어야 한다는 것입니다. 자기 참조 항목은 중복이 아닙니다. 이는 Google에게 이 페이지가 클러스터의 구성원이라고 확인시키는 것이며, 주석이 신뢰할 수 있게 존중되도록 요구됩니다. 없으면 클러스터가 모호해집니다. Google은 hreflang이 힌트이며 지시가 아님을 명시해 왔으며, 불완전한 힌트는 무시하기 쉽습니다. 결과는 국제 사이트가 두려워하는 실패 모드입니다: 스페인에서 영어 페이지가 순위가 매겨지거나, 콜롬비아의 영어 검색에서 스페인어 페이지가 순위가 매겨지거나, Google이(가) 각 로케일에서 자신의 정규 페이지를 선택하는 경우입니다. 잔인한 부분은 아무것도 깨진 것처럼 보이지 않는다는 것입니다. 모든 페이지는 올바르게 렌더링됩니다. 주석은 HTML에 존재합니다. 대부분의 CMS 플러그인이 생성했습니다. 생략은 클러스터를 기계적으로 열거할 때만 보이게 됩니다 — 감사가 수행하는 것이며, 인간은 결코 수행하지 않습니다.
데이터 세트
| hreflang 검사 | 평가된 사이트 | 실패 |
|---|---|---|
| 자기 참조 존재 | 135 | () |
| 대체 항목 간 링크를 반환합니다 | 135 | 0 |
| x-default는 유효한 대상에 포인트합니다 | 133 | () |
| 대상이 정상(리다이렉트/차단 없음) | 135 | () |
방법론: 최신 완료된 감사 스냅샷은 도메인별로, 5월 – , 익명화되었습니다. 우리 샘플은 국제적으로 편향되어 있습니다 — 대부분의 감사 사이트는 일부 hreflang 주석을 가지고 있었으므로, 이 비율은 다국어 사이트를 설명하며, 전체 웹을 나타내지 않습니다. 대상-건강 수치는 작습니다; 비율이 아니라 패턴으로 보아야 합니다.
실패 서명은 어디서나 동일합니다
증거에서 우리를 놀라게 한 것은 비율이 아니라 일관성이었습니다. 모든 자기 참조 실패는 동일한 결과를 낳았습니다: 홈페이지가 대체 항목을 선언하지만 자신을 생략합니다. 이는 거의 항상 생성기 문제이며, 편집 문제는 아닙니다. 플러그인은 다른 로케일에서 주석 세트를 구축하고 현재 페이지를 삽입하지 않습니다. 출력이 소스에서 그럴듯해 보이기 때문에 — 깔끔한 hreflang 링크 태그 목록 — 아무도 의문을 제기하지 않습니다.
나머지 실패도 인식 가능한 패턴을 따릅니다:
- x-default가 언어 변형을 가리키는 경우. 모든 7개의 x-default 실패는 동일한 실수였습니다:
x-default이 영어 페이지가 아닌 중립 선택자 또는 주요 시장 페이지로 설정되었습니다. x-default는 귀하가 제공하지 않는 언어를 사용하는 검색자를 위한 대체 옵션이며, 로케일을 가리키면 해당 로케일이 전 세계의 기본 답변이 됩니다. - 제공할 수 없는 대상. 몇몇 사이트는 리다이렉트되는 대체 항목을 연결하거나 403을 반환하거나 robots.txt에 의해 차단되거나 다른 URL로 정규화됩니다. 페이지 Google을 가리키는 주석은 선언된 대로 색인화할 수 없으며 존재하지 않는 주석입니다.
올바른 클러스터는 다음과 같습니다
건강한 클러스터는 닫힌 루프입니다: 모든 페이지가 모든 페이지를 나열하며, 자신도 포함하고, x-default도 포함합니다.
__PROTECTED_COMMENT___<link rel="alternate" hreflang="en" href="https://example.com/" /><link rel="alternate" hreflang="es" href="https://example.com/es/" /><link rel="alternate" hreflang="pt" href="https://example.com/pt/" /><link rel="alternate" hreflang="x-default" href="https://example.com/" /><!-- On https://example.com/es/ (Spanish) — the same full set --><link rel="alternate" hreflang="en" href="https://example.com/" /><link rel="alternate" hreflang="es" href="https://example.com/es/" /><link rel="alternate" hreflang="pt" href="https://example.com/pt/" /><link rel="alternate" hreflang="x-default" href="https://example.com/" />
페이지에서 자신으로 가는 화살표가 하나라도 빠지면 루프가 열리며, Google이 모호성을 어떻게 처리할지 결정합니다. 당신이 결정하지는 않습니다.
분 안에 당신의 것을 확인하는 방법
홈페이지에서 View-source를 열고 hreflang 항목을 세어보세요. 사이트가 개의 로케일과 x-default를 제공한다면, 개의 항목이 보일 것이며, 그 중 개는 현재 위치한 페이지여야 합니다. 개의 현지화된 페이지에서 반복해 보세요; 그 집합은 동일해야 합니다. 각 주석이 달린 URL를 가져와 200을 반환하고, 색인 가능하며, 자신을 정규화하는지 확인하세요. 집합에서 리다이렉트, 차단, 또는 정규화 불일치가 있으면 계약상 끊어진 링크가 됩니다.
주석이 CMS 플러그인에서 나온 경우, 플러그인 설정 페이지가 아니라 플러그인 출력 결과를 확인하세요 — 개의 실패한 사이트는 거의 확실히 관리자 패널 어디선가 hreflang이 "활성화"되어 있었을 것입니다. 우리 자체 감사는 전체 클러스터를 열거하고 자기 참조, 반환 링크, x-default, 그리고 모든 실행 시 대상 건강을 확인합니다; free report는 정확히 어떤 항목이 루프를 끊는지 보여줍니다.
국제 SEO는 세부 사항에 대해 관대하지 않으며, 세부 사항이 메커니즘이기 때문입니다. 우리 샘플에서 자기 참조를 제대로 한 사이트는 더 나은 번역가나 더 큰 예산을 가지고 있지 않았습니다. 그들은 닫힌 루프를 가지고 있었으며, 그것이 열릴 때를 알아차리는 방법이 있었습니다.
See How Your Site Ranks
Get a free AI-powered SEO report with actionable findings and priority fixes for your website.
No signup required.