전체 가이드

hreflang이란? 작성법, 규칙, 흔한 실수까지 쉽게 정리

hreflang 태그가 무엇인지, 다국어 사이트에 왜 필요한지, 정확한 작성법, x-default, canonical과의 관계, 그리고 Google이 무시하게 만드는 실수를 설명합니다.

업데이트 2026년 9월 24일 · 4분 분량

사이트는 번역되어 있고 모든 언어가 잘 열립니다. 그런데 Google은 영어권 방문자를 한국어 페이지로 보내거나, 한 가지 언어만 색인합니다. 대부분의 원인은 hreflang이 없거나 잘못된 것입니다.

이 가이드에서는 hreflang의 역할과 규칙, 그리고 Google이 무시하게 만드는 실수를 다룹니다. 읽으면서 내 사이트를 확인해 보려면 무료 다국어 SEO 검사기를 사용하세요.

hreflang이란

hreflang<link> 태그의 속성으로, 검색 엔진에 "이 페이지는 다른 언어로도 있고, 주소는 이것입니다"라고 알려 줍니다. 그러면 Google은 검색하는 사람에게 그 사람의 언어 버전을 보여 주고, 버전들을 서로 경쟁하는 페이지가 아니라 하나의 묶음으로 취급합니다.

각 언어 버전의 <head>에 넣는 전형적인 블록은 다음과 같습니다.

<link rel="alternate" hreflang="ko" href="https://example.com/pricing/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/pricing/" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/pricing/" />

hreflang은 강한 신호이지 명령이 아닙니다. 규칙 하나만 틀려도 무시됩니다.

왜 중요한가

hreflang이 없으면 보통 세 가지 일이 생깁니다.

규칙

상호 참조

영어 페이지가 한국어 페이지를 가리키면 한국어 페이지도 영어 페이지를 다시 가리켜야 합니다. 그렇지 않으면 Google은 그 쌍을 버립니다. 가장 쉬운 방법은 모든 버전에 같은 블록을 출력하는 것입니다.

전체 URL

항상 프로토콜과 호스트를 포함한 전체 URL을 쓰세요. /en/이 아니라 https://example.com/en/입니다. httpswww를 포함해 실제 URL과 정확히 같아야 합니다.

자기 참조

각 페이지는 블록에 자기 자신도 포함합니다. 한국어 페이지는 자신의 URL을 가리키는 hreflang="ko"를 적습니다.

올바른 ISO 코드

언어는 ISO 639-1 코드(ko, en, ja)이고, 필요하면 하이픈과 ISO 3166-1 지역(en-US, zh-TW)을 붙입니다. 지역만 쓰는 것은 유효하지 않습니다. 가장 흔한 실수는 다음과 같습니다.

틀림맞음
krko (kr은 국가 코드)
en-UKen-GB
jpja
cnzh 또는 zh-CN
ko_KRko-KR (밑줄이 아니라 하이픈)

코드가 틀리면 그 태그는 무시됩니다. 국내 사이트에서는 kr 실수가 특히 많습니다.

x-default

x-default는 검색하는 사람의 언어가 어느 언어와도 맞지 않을 때 보여 줄 페이지를 Google에 알려 줍니다. 꼭 필요하진 않지만, 없으면 Google이 추측합니다. 다른 항목처럼 모든 언어 버전의 블록에 추가하세요.

hreflang을 넣는 세 가지 방법

  1. HTML <head> 안. 가장 흔하고 확인하기 쉬운 방법입니다.
  2. XML 사이트맵 안.<url>xhtml:link 요소로 대체 페이지를 나열합니다. 모든 것이 한 파일에 있어 대규모 사이트에 유용합니다.
  3. HTTP Link 헤더. <head>가 없는 PDF 같은 비 HTML 파일용입니다.

한 가지 방법을 고르세요. 섞어 써도 되지만 내용이 다르면 신호가 충돌합니다.

hreflang과 canonical

대부분의 다국어 사이트가 여기서 문제가 생깁니다. canonical은 " 페이지의 대표 URL은 이것"이라고 말하고, hreflang은 "이 다른 URL들이 다른 언어로 된 같은 페이지"라고 말합니다. 서로 다른 질문에 답하는 것입니다.

규칙: 각 언어 버전의 canonical은 자기 자신을 가리킨다.

<!-- https://example.com/en/pricing/ 에서 -->
<link rel="canonical" href="https://example.com/en/pricing/" />
<link rel="alternate" hreflang="ko" href="https://example.com/pricing/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/pricing/" />

영어 페이지의 canonical이 한국어 페이지를 가리키면, Google은 영어 페이지를 중복으로 보고 canonical을 따르며 hreflang을 무시합니다. 번역은 중복 콘텐츠가 아니므로 언어를 넘나드는 canonical은 아무것도 지켜 주지 않습니다.

html lang도 잊지 마세요

<html lang="ko"> 속성은 페이지 자체의 언어를 선언합니다. hreflang을 대신하지는 않지만, 블록에서 그 페이지에 쓰는 코드와 일치해야 합니다. 영어 페이지인데 lang="ko"라고 되어 있으면 엇갈린 신호를 보냅니다.

흔한 실수

hreflang 확인 방법

번역된 페이지를 열고 소스 보기(Ctrl+U 또는 Cmd+Option+U)에서 hreflangcanonical을 검색하세요. 그다음 목록의 URL 하나를 열어 다시 링크하는지 확인합니다.

몇 페이지만 넘어도 느려집니다. 더 빠른 방법은 무료 다국어 SEO 검사기에 페이지를 넣는 것입니다. head, HTTP 헤더, 사이트맵의 hreflang(코드, 전체 URL, 자기 참조, x-default, 중복)을 검증하고, html lang과 비교하고, canonical을 확인하며, 최대 6개의 번역 버전을 열어 잘 열리는지, 다시 링크하는지, 언어를 선언하는지 확인합니다. hreflang 외의 항목은 다국어 SEO 점검 체크리스트를 보세요.

Lantis가 hreflang을 처리하는 방식

4개 언어, 50페이지 사이트에 hreflang을 직접 쓰면 수백 개의 태그를 계속 맞춰야 합니다. Lantis는 각 언어를 전용 URL(/en/ 같은 하위 폴더)로 제공하고, 모든 언어의 hreflang과 x-default, 올바른 html lang, 자기 참조 canonical을 자동으로 추가합니다. Framer, Webflow, WordPress, Shopify 등 코드 한 줄로 어떤 사이트에서든 작동합니다. 번역은 AI가 하며 비주얼 에디터와 용어집이 있습니다.

요금은 언어당 월 €3부터(2개 언어부터 €2.50, 10개부터 €2)이며, 처음 100건의 번역은 카드 없이 무료입니다. Framer에서는 Lantis 플러그인을 설치하세요. 단계별 가이드는 FramerWebflow에 있습니다.

자주 묻는 질문

hreflang은 순위 요소인가요?

직접적인 요소는 아닙니다. 검색하는 사람에게 어떤 언어 버전을 보여 줄지 결정해, 각 시장에서 클릭을 늘리고 버전이 하나로 묶이는 것을 막아 줍니다.

x-default가 꼭 필요한가요?

강력히 권장됩니다. 없으면 Google이 지원하지 않는 언어의 사람에게 무엇을 보여 줄지 추측해야 합니다. 주 언어나 언어 선택 페이지를 가리키게 하세요.

ko-KR과 ko 중 무엇을 써야 하나요?

한국어 버전이 하나뿐이라면 ko면 충분합니다. ko-KR 같은 지역 코드는 국가별로 다른 버전(가격이나 표기가 다름)이 있을 때만 쓰세요.

다른 언어로 보기 English · Français · Deutsch · Italiano · Português · हिन्दी · Русский · 日本語 · Türkçe · Bahasa Indonesia · العربية

함께 읽으면 좋은 글