가장 흔한 hreflang 실수는 자신을 잊는 것입니다
우리가 감사를 수행한 135 다국어 웹사이트에서 40%는 같은 규칙을 어겼습니다: 그들의 페이지는 자신의 hreflang 주석에서 자신을 참조하지 않았습니다. 이것이 어떻게 전체 설정을 무력화시키는지 여기에 있습니다.
우리가 감사를 수행하는 모든 다국어 사이트는 hreflang 클러스터를 링크별로 확인합니다. 5월 4와 July 19, 2026 사이에 평가된 hreflang 주석이 있는 135 사이트에서 54는 같은 검사를 실패했습니다 — 그리고 모든 54는 정확히 같은 방식으로 실패했습니다: 페이지가 자신의 hreflang 주석에서 누락되었습니다.
이는 40% 다국어 샘플 중 1가 특정 실수를 한 비율입니다. 다른 hreflang 실패는 거의 다가오지 못했습니다 — 대부분의 가이드가 경고하는 반환 링크는 전체 데이터 세트에서 0 실패를 보였습니다.
아무도 깨달지 못한 규칙을 어겼다
Hreflang은 동등한 페이지 간의 계약입니다. 페이지의 각 현지화 버전은 전체 대체 집합을 선언합니다 — 모든 언어 및 지역 변형, x-default 포함 — 따라서 Google은 올바른 검색자에게 올바른 버전을 제공할 수 있습니다. 잊혀지는 부분은: 집합에 페이지 자체가 포함되어야 한다는 것입니다. 자기 참조 항목은 중복이 아닙니다. 이는 Google에게 이 페이지가 클러스터의 구성원이라고 확인시켜 주며, 주석이 신뢰할 수 있게 존중되도록 요구됩니다.
없으면 클러스터는 모호해집니다. Google은 hreflang이 힌트이지 지시가 아니라고 명시했으며 — 불완전한 힌트는 무시하기 쉽습니다. 결과는 국제 사이트가 두려워하는 실패 모드입니다: 스페인에서 영어 페이지가 순위가 올라가고, 콜롬비아의 영어 검색에서 스페인어 페이지가 순위가 올라가거나 Google이 각 로케일에서 자신의 정규 페이지를 선택하는 경우.
끔찍한 부분은 아무것도 깨진 것처럼 보이지 않는다는 것입니다. 모든 페이지는 올바르게 렌더링됩니다. 주석은 HTML에 존재합니다. 대부분의 CMS 플러그인이 생성했습니다. 생략은 클러스터를 기계적으로 열거할 때만 보이게 됩니다 — 이것이 감사를 수행하는 방식이며, 인간은 결코 하지 않습니다.
데이터 세트
| 자기 참조가 존재합니다 | 135 | 54 (40.0%) |
| 대체 항목 간 링크를 반환합니다 | 135 | 0 |
| x-default이 유효한 대상에 가리킵니다 | 133 | 7 (5.3%) |
| 대상이 정상(리다이렉트/차단 없음)입니다 | 135 | 9 (6.7%) |
방법론: 도메인별 최신 완료 감사 스냅샷, 5월 4 – July 19, 2026, 익명화됨. 우리 샘플은 국제적으로 편향되어 있습니다 — 대부분의 감사 사이트는 일부 hreflang 주석을 가지고 있었으므로 이 비율은 다국어 사이트를 설명하며, 전체 웹을 나타내지 않습니다. 대상-건강 수는 적습니다; 비율이 아니라 패턴으로 보아야 합니다.
실패 서명은 어디서나 동일합니다
증거에서 눈에 띈 것은 비율이 아니라 일관성. 모든 54 자기 참조 실패는 동일한 결과를 보였습니다: 홈페이지가 대체 항목을 선언하지만 자신을 생략합니다. 이는 거의 항상 생성기 문제이며, 편집 문제는 아닙니다. 플러그인이 다른 로케일에서 주석 세트를 만들고 현재 페이지를 삽입하지 않습니다. 출력이 소스에서 그럴듯해 보이기 때문에 — 깔끔한 hreflang 링크 태그 목록 — 아무도 의문을 제기하지 않습니다.
나머지 실패도 인식 가능한 패턴을 따릅니다:
- x-default이 언어 변형을 가리킵니다. 모든 7개의 x-default 실패는 같은 실수였습니다:
x-default가 중립 선택자나 주요 시장 페이지 대신 영어 페이지로 설정되었습니다. x-default은 귀하가 제공하지 않는 언어를 사용하는 검색자를 위한 대체 옵션이며, 이를 1 로케일에 가리키면 해당 로케일이 전 세계의 기본 답변이 됩니다. - 제공할 수 없는 대상. 몇몇 사이트는 리다이렉트되는 대체 항목을 연결하거나 403을 반환하거나 robots.txt에 의해 차단되거나 다른 URL으로 정규화됩니다. Google에 가리키는 주석은 선언된 대로 색인화할 수 없으며 존재하지 않는 주석입니다.
올바른 클러스터는 어떻게 보이는가
건강한 클러스터는 닫힌 루프이다: 각 페이지는 자신을 포함해 모든 페이지를 나열하고, x-default.
<!-- On https://example.com/ (English) --><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/" />
Diagram source
graph TD
EN["/ (en)"] -->|나열| EN
EN -->|나열| ES
EN -->|나열| PT
ES["/es/ (es)"] -->|나열| EN
ES -->|나열| ES
ES -->|나열| PT
PT["/pt/ (pt)"] -->|나열| EN
PT -->|나열| ES
PT -->|나열| PT
XD["x-default"] -.->|대체| EN페이지에서 자신으로 가는 화살표가 하나라도 누락되면 루프가 열리며, 모호성을 어떻게 처리할지는 Google이 결정한다, 당신이 아니라.
10 분 안에 당신의 것을 확인하는 방법
홈페이지에서 View-source를 열고 hreflang 항목을 세어라. 사이트가 3 로케일과 x-default를 제공한다면, 4 항목을 보게 될 것이며, 그 중 1은 당신이 서 있는 페이지여야 한다. 1 현지화 페이지에서도 반복해 보라; 그 집합은 동일해야 한다. 각 주석이 달린 URL를 가져와 200을 반환하고, 색인 가능하며, 자신을 정규화하는지 확인하라. 집합에서 리다이렉트, 차단, 또는 정규화 불일치가 있으면 계약에서 끊어진 링크가 된다.
CMS 플러그인에서 주석이 생성되는 경우, 설정 페이지가 아니라 플러그인의 출력을 확인하세요 — 54 실패한 사이트는 관리 패널 어디선가 hreflang "enabled"가 설정되어 있었을 가능성이 높습니다. 유료 SEOReport 진단은 매 실행마다 전체 클러스터를 열거하고, 정확히 어떤 항목이 루프를 깨뜨리는지 보여줍니다.
국제 SEO는 세부 사항에 대해 관대하지 않으며, 세부 사항이 메커니즘이기 때문입니다. 우리 샘플에서 자기 참조를 제대로 처리한 사이트는 더 나은 번역가나 더 큰 예산을 가지고 있지 않았습니다. 그들은 닫힌 루프를 가졌으며, 루프가 열릴 때 이를 인지할 수 있는 방법이 있었습니다.