← 모두의 툴

hreflang, 절반이 틀리게 쓰는 SEO 태그 — 양방향 참조와 x-default 실수 정리

가이드 · 2026-08-19 최종 확인

hreflang은 <head>에 몇 줄 추가하면 끝나는 태그처럼 보이지만, 실제로는 페이지 간 "쌍"이 맞아야 작동하는 신호입니다. 한쪽 페이지에만 걸어두고 반대쪽을 빠뜨려도 브라우저에는 아무 이상이 없어 보이고, 구글도 에러를 띄우지 않습니다. 그냥 조용히 그 hreflang 관계 전체를 무시할 뿐입니다. 이 가이드에서는 hreflang이 왜 필요한지, 가장 흔한 실수인 양방향 참조 누락이 왜 위험한지, 그리고 modoohub.com 자체가 이 규칙을 실제로 지키고 있는지 직접 코드를 점검한 결과를 정리합니다.

1. hreflang은 왜 필요한가 — 중복 콘텐츠 vs 지역별 노출

같은 툴을 한국어·영어·중국어·일본어로 제공한다고 할 때, 이를 도메인이나 경로만 다른 별도 URL로 나누면 구글 입장에서는 "내용이 거의 같은 페이지가 여러 개" 있는 상태로 보일 수 있습니다. hreflang이 없으면 구글은 이 중 하나만 대표로 골라 색인하거나, 엉뚱한 언어 버전을 한국어 사용자에게 검색 결과로 보여줄 수 있습니다. hreflang은 "이 URL들은 중복이 아니라 같은 콘텐츠의 언어·지역별 버전"이라고 명시적으로 알려주는 역할을 합니다. 그 결과 중복 콘텐츠로 인한 순위 손실을 막는 동시에, 사용자의 언어 환경에 맞는 버전을 정확히 노출시킬 수 있습니다.

2. 가장 흔한 실수 — 양방향 참조(return tag) 누락

hreflang의 핵심 규칙은 "A 페이지가 B 페이지를 가리키면, B 페이지도 반드시 A 페이지를 되가리켜야 한다"는 것입니다. 예를 들어 한국어 페이지 head에 hreflang="en"으로 영어 페이지 URL을 넣었다면, 그 영어 페이지의 head에도 hreflang="ko"로 원래 한국어 페이지 URL을 넣어야 관계가 성립합니다. 이걸 return tag, 또는 양방향 참조라고 부릅니다. 문제는 이게 깨져도 겉으로는 아무 표시가 안 난다는 점입니다. 크롤링 도구도, 브라우저도, 심지어 서치 콘솔조차 명확한 에러로 잡아주지 않는 경우가 많습니다. 구글은 그냥 신뢰할 수 없는 신호로 판단해 해당 hreflang 세트 전체를 조용히 무시하고 원래대로 URL 각각을 독립 페이지처럼 취급해버립니다. 결국 언어별로 정교하게 태그를 달아놨어도, 한쪽 페이지에서 걸어주는 걸 빠뜨리는 순간 그 작업 전체가 무효가 되는 셈입니다.

또 다른 흔한 실수: ① x-default 누락 — 어떤 언어에도 해당하지 않는 방문자에게 보여줄 기본 버전을 지정하지 않으면 구글이 임의로 버전을 골라버립니다. ② 언어 코드와 지역 코드 혼용 — 어떤 페이지는 "en"으로, 다른 페이지는 "en-US"로 쓰는 식으로 표기가 일관되지 않으면 같은 언어를 가리키는 건지 구글이 판단하기 어려워집니다. ③ self-referencing 누락 — 페이지 A 자신도 자기 자신을 hreflang으로 포함해야 하는데 이를 빠뜨리는 경우입니다.

3. modoohub.com은 실제로 이 규칙을 지키고 있는가

이번 가이드를 쓰면서 사이트 코드를 직접 점검했습니다. 결과는 절반은 안심, 절반은 발견이었습니다. 툴 페이지 394개는 모두 ko/en/zh/ja/x-default 5개 hreflang을 canonical URL과 정확히 맞춰 달고 있었고, 모든 파일에서 x-default 누락 사례가 하나도 없었습니다. 각 툴 페이지가 물리적으로 하나의 HTML 파일이고 언어 전환은 ?lang= 쿼리 파라미터와 JS로 처리되는 구조라, 어떤 언어로 접속해도 head의 hreflang 블록 자체는 동일하게 응답됩니다. 즉 구조상 양방향 참조가 저절로 성립하는 형태입니다.

하지만 사이트의 얼굴이라 할 index.html은 달랐습니다. index.html의 hreflang 블록에는 ko, en, zh-Hans, zh-Hant, hi, de, fr, x-default가 있는데, 정작 사이트 UI가 실제로 지원하는 4개 언어(ko/en/zh/ja) 중 hreflang="ja" 태그가 빠져 있었습니다. 게다가 hreflang="de"와 hreflang="fr" 항목은 독일어·프랑스어 콘텐츠가 있어서가 아니라 둘 다 영어 버전 URL(?lang=en)을 그대로 가리키고 있었습니다. 이는 구글에 "이 URL이 독일어·프랑스어 사용자를 위한 버전"이라고 잘못 알리는 셈이라, 당장 순위 하락으로 이어지진 않아도 의도한 타겟팅 효과를 기대할 수 없는 상태입니다. 이 발견은 이번 점검을 통해 확인해 수정 대기 목록에 남겼습니다.

4. 정리 — hreflang 점검 시 확인할 순서

자주 묻는 질문

Q. hreflang 태그는 왜 필요한가요?

A. 같은 콘텐츠를 언어·지역별로 여러 URL에 나눠 두면 구글이 이를 중복 콘텐츠로 오인해 검색 노출을 낮출 수 있습니다. hreflang은 이 URL들이 사실은 같은 내용의 번역·현지화 버전임을 알려서, 사용자 언어에 맞는 버전을 검색 결과에 정확히 보여주게 합니다.

Q. 양방향 참조를 빠뜨리면 어떤 문제가 생기나요?

A. A 페이지가 hreflang으로 B 페이지를 가리키는데 B 페이지가 A 페이지를 되가리키지 않으면, 구글은 에러를 표시하지 않고 그 hreflang 관계 전체를 조용히 무시합니다. 크롤링 리포트에 아무 경고도 안 뜨기 때문에 원인 파악이 특히 어렵습니다.

Q. x-default는 언제 꼭 필요한가요?

A. 방문자의 언어가 사이트가 제공하는 어떤 hreflang 값과도 일치하지 않을 때 보여줄 기본 버전을 지정하는 태그입니다. 필수는 아니지만 없으면 구글이 임의로 버전을 골라 노출하므로, 언어 선택 화면이나 기본 언어 페이지를 x-default로 명시하는 것이 안전합니다.

Q. modoohub.com도 이 규칙을 지키고 있나요?

A. 툴 페이지 394개는 ko/en/zh/ja/x-default 5개 hreflang을 canonical과 일치시켜 일관되게 달고 있어 문제가 없었습니다. 다만 index.html은 ja 언어 UI를 지원하면서도 hreflang="ja" 태그가 빠져 있고, de·fr 코드는 실제 독일어·프랑스어 콘텐츠가 아닌 영어 페이지를 가리키고 있어 이번 점검으로 발견해 수정 대상으로 남겼습니다.