먼저 결론부터
hreflang은 같은 내용의 페이지가 여러 언어로 있을 때 그 관계를 검색엔진에 알리는 표시입니다.1[1]구글 문서의 영어 원문은 이렇습니다. “If you have multiple versions of a page for different languages or regions, tell Google about these different variations. Doing so will help Google Search point users to the most appropriate version of your page by language or region.” 한국어는 저희가 옮긴 것입니다. 구글 한국어판은 기계 번역이라 이 글에서는 영어 원문을 기준으로 인용합니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 한국어판과 영어판이 따로 있을 때 “이 둘은 같은 글의 다른 언어판”이라고 적어 두는 것입니다. 적어 두면 구글이 사용자의 언어에 맞는 쪽을 검색 결과에 보여 줍니다. 여기서는 hreflang이 하는 일과, 이름이 같은 다른 것과의 차이를 봅니다.
hreflang은 페이지들을 한 덩어리로 묶는 표시입니다. <head> 안에 언어마다 한 줄씩 넣습니다.
<link rel="alternate" hreflang="ko" href="https://example.com/ko/page"><link rel="alternate" hreflang="en" href="https://example.com/en/page">안 넣어도 구글이 다른 언어판을 찾기는 합니다. 다만 구글은 명시적으로 지정하는 쪽을 권합니다.2[2]구글은 “별도의 조치를 취하지 않아도” 다른 언어 버전을 찾을 수 있다고 하면서도 명시적인 지정을 권합니다. 넣는 방법은 세 가지인데, 구글은 “The three methods are equivalent from Google’s perspective and you can choose the method that’s the most convenient for your site.”라고 밝히고 있습니다. HTML <link>, HTTP 헤더, 사이트맵 가운데 편한 것을 고르시면 됩니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)
한 가지 오해를 먼저 풀어야 합니다. hreflang은 페이지의 언어를 알려 주는 표시가 아닙니다. 구글은 페이지의 언어를 hreflang이 아니라 눈에 보이는 글자로 판단합니다.3[3]구글 문서의 문장입니다. “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page; instead, we use algorithms to detect the language of a page.” 언어는 알고리즘이 본문을 보고 판단한다는 뜻입니다. 그러니 한국어 페이지에 hreflang="en"을 적어도 그 페이지가 영어로 취급되지는 않습니다. hreflang이 하는 일은 언어를 정하는 것이 아니라 짝을 묶는 것입니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)
hreflang을 검색하면 전혀 다른 설명이 섞여 나옵니다. <a> 태그에도 같은 이름의 속성이 있기 때문입니다.4[4]‘hreflang’으로 검색하면 상위 9곳 가운데 두 곳(MDN, tcpschool)이 이 속성을 설명하는 지면입니다(2026년 9월 기준). 같은 이름을 쓰지만 들어가는 태그가 다릅니다. 이 글의 hreflang은 <link> 안에, 저쪽은 <a> 안에 들어갑니다.
둘은 하는 일이 다릅니다. <a> 쪽은 그 링크가 가리키는 문서가 무슨 언어인지 적어 두는 힌트일 뿐입니다.5[5]MDN은 <a> 요소의 hreflang 속성을 “Hints at the human language of the linked URL. No built-in functionality.”라고 설명합니다. 그 자체로는 하는 일이 없는 힌트라는 뜻입니다. 브라우저도 검색엔진도 이것으로 무엇을 바꾸지 않습니다.출처[4] MDN - a 요소의 hreflang 속성 검색엔진이 언어판을 묶는 데 쓰지 않습니다. 이 글이 다루는 것은 <link rel="alternate" hreflang="..."> 쪽입니다.
hreflang이 한물갔다는 말이 돕니다. ‘hreflang’을 검색하면 “여전히 유효한가?”라고 묻는 글이 7위에 떠 있습니다.6[6]저희가 2026년 9월에 모아 둔 ‘hreflang’ 검색 결과에서 7위가 “다국어 SEO의 미래: hreflang 태그는 여전히 유효한가?”였습니다. 상위 9곳 가운데 유효성을 의심하는 제목은 이 한 곳이었습니다. 결론부터 말씀드리면 유효합니다. 구글이 문서에 그렇게 써 두었기 때문입니다. 여기서는 구글이 적어 둔 문장과, 일리스가 한 다른 말을 봅니다.
구글은 계속 지원하고 사용한다고 밝히고 있습니다. 이 문장이 실린 자리가 중요합니다. 서치 콘솔의 국제 타겟팅 보고서를 없앤다는 안내문입니다.7[7]서치 콘솔 도움말의 영어 원문입니다. “The International Targeting report has been deprecated. Google will continue to support and use hreflang tags on your pages. However, the ability to target search results to specific countries using Search Console country targeting was determined to have little value for the ecosystem, and is no longer supported.” 한 문단 안에 “계속 쓴다”와 “없앤다”가 같이 들어 있어, 앞부분만 보고 반대로 읽기 쉬운 자리입니다.출처[2] Search Console 도움말 - The International Targeting report is deprecated (영어 원문)
없어진 것은 그 보고서와, 서치 콘솔에서 검색 결과를 특정 국가로 겨냥하던 기능입니다. 보고서가 사라진 것을 태그가 사라진 것으로 읽으면 안 되는 것입니다.
저희가 그 “여전히 유효한가?” 글을 직접 열어 봤습니다. 로그인 벽이 있고, 보이는 부분은 질문만 던지고 답을 주지 않습니다.8[8]‘hreflang’ 검색 결과 7위에 올라 있던 글입니다(2026년 9월 기준). 저희가 2026년 10월 4일에 열어 보니 로그인하지 않으면 앞부분만 보이고, 보이는 범위에서는 “AI와 머신러닝 같은 기술이 발전함에 따라, hreflang 태그가 여전히 유효한가?”라고 묻기만 합니다. 개발사가 링크드인에 올린 홍보 글이었습니다.
의심에 근거가 아주 없지는 않습니다. 게리 일리스는 2024년 구글 팟캐스트에서 수동 표시를 줄이고 자동 판단을 늘리고 싶다고 말했습니다.9[9]Search Engine Journal이 2024년 7월에 전한 구글 Search Off The Record 팟캐스트 내용입니다. 일리스의 말은 “Ultimately, I would want less and less annotations, site annotations, and more automatically learned things.”였고, 이어서 “I think we should have overrides”라고 덧붙였습니다. 같은 기사는 “While no official changes have been announced”라고 적습니다. 저희는 팟캐스트 원본이 아니라 이 매체의 보도로 확인했습니다.출처[8] Search Engine Journal - Google May Rely Less On Hreflang, Shift To Auto Language Detection (2024)
그러나 이것은 바라는 방향이지 바뀐 규칙이 아닙니다. 일리스 본인도 직접 지정할 수단은 있어야 한다고 덧붙였고, 그 말을 전한 매체도 공식 발표는 없었다고 적었습니다. 지금 하실 일은 달라지지 않습니다.
hreflang은 넣기만 하면 되는 표시가 아닙니다. 조건을 못 맞추면 구글이 통째로 무시합니다.10[10]구글은 조건을 못 지킨 표시를 어떻게 하는지 분명히 적어 둡니다. 흔한 실수를 설명하면서 “those annotations may be ignored or not interpreted correctly”라고 했습니다. 무시되거나 엉뚱하게 읽힌다는 뜻이라, 잘못 넣으면 안 넣은 것만 못할 수도 있습니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 조건은 둘이고 둘 다 까다롭지 않습니다. 여기서는 두 쪽이 서로 가리키는 것과, 각 언어판이 자기 자신을 넣는 것을 봅니다.
한국어판이 영어판을 가리켰다면 영어판도 한국어판을 가리켜야 합니다. 한쪽만 걸려 있으면 그 표시는 쓰이지 않습니다.11[11]구글 문서의 영어 원문입니다. “If two pages don’t both point to each other, the tags will be ignored.” 무시된다(ignored)는 말이 분명하게 적혀 있습니다. 구글이 흔한 실수로 드는 첫 항목도 이것인데, “Missing return links”라는 이름으로 “If page X links to page Y, page Y must link back to page X.”라고 설명합니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)
까다롭게 구는 이유가 있습니다. 그렇지 않으면 남의 사이트가 제멋대로 내 페이지를 자기 언어판이라고 주장할 수 있기 때문입니다.12[12]구글이 상호 참조를 요구하는 이유를 같은 문단에 적어 두었습니다. “This is so that someone on another site can’t arbitrarily create a tag naming itself as an alternative version of one of your pages.” 한쪽 말만 믿으면 남이 내 페이지를 자기 언어판이라고 가로챌 수 있기 때문입니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 서로 확인해야 인정하는 구조인 것입니다.
각 언어판은 다른 언어판뿐 아니라 자기 자신도 목록에 넣어야 합니다.13[13]구글 문서의 영어 원문입니다. “Each language version must list itself as well as all other language versions.” must라고 적혀 있습니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 한국어판 <head>에 한국어판을 가리키는 줄이 하나 있어야 한다는 뜻입니다.
이상하게 들리지만 이렇게 하면 일이 쉬워집니다. 구글은 모든 페이지에 똑같은 묶음이 들어간다고 적고 있습니다.14[14]구글이 HTML로 넣는 방법을 설명하며 적은 문장입니다. “For each variation of the page, include a set of <link> elements in the <head> element, one link for each page variant including itself. The set of links is identical for every version of the page.” 마지막 문장이 실무에서 가장 쓸모 있습니다. 묶음이 모든 언어판에서 똑같으니, 템플릿에 한 벌만 만들어 공통으로 넣으면 됩니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 언어판마다 다르게 만들 필요 없이, 한 벌을 만들어 모든 쪽에 그대로 넣으시면 됩니다.

한 가지 주의하실 것이 있습니다. 이 조건은 구글 한국어판 문서만 봐서는 알기 어렵습니다. 영어 원문의 “자기 자신(itself)“이 한국어판에서 “해당 언어”로 바뀌어 있기 때문입니다.15[15]구글 검색 센터 한국어판은 기계 번역입니다. 페이지 HTML에 lang="ko-x-mtfrom-en"이 들어 있고, mtfrom은 machine-translated from이라는 뜻입니다(2026년 10월 4일 확인). 이 문장에서 실제로 뜻이 바뀌었습니다. 영어 원문은 “Each language version must list itself as well as all other language versions.”인데, 한국어판은 “각 언어 버전은 해당 언어뿐만 아니라 다른 모든 언어 버전을 나열해야 합니다.”입니다. 자기 자신을 넣으라는 핵심이 지워져 있습니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)
그리고 구글이 공식으로 드는 흔한 실수 세 가지에 자체 참조 누락은 들어 있지 않습니다.16[16]구글이 “Common mistakes”로 드는 항목은 셋입니다. 반환 링크 누락, 잘못된 언어 코드, 잘못된 지역 코드입니다. 자체 참조 누락은 이 목록에 없습니다. 다만 본문 가이드라인에서는 must로 요구하고 있어, 목록에 없다고 안 해도 된다는 뜻은 아닙니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문) 업계 쪽은 다르게 봅니다. 저희가 읽은 17곳 가운데 9곳이 자기 참조 누락을 실수로 꼽았습니다.17[17]저희가 hreflang을 다룬 한국어 글 5곳과 영어 매체 12곳, 모두 17곳을 읽고 주장을 세었습니다(2026년 10월 기준). 자기 참조 누락을 실수로 꼽은 곳이 9곳, 규칙으로만 말한 곳이 5곳이었습니다. 상호 참조 누락은 실수로 꼽은 곳이 8곳이었습니다.
규칙은 간단한데 실제로는 많이 틀립니다. Ahrefs가 도메인 374,756곳을 조사해 67%에 문제가 있었다고 밝혔습니다.18[18]Ahrefs의 문장은 “When we ran a study on hreflang across 374,756 domains, we found that 67% of the hreflang implementations had issues.”입니다. 같은 글에 문제 유형별 비율도 있는데, 그 숫자는 그림 안에 있어 글자로 확인하지 못했습니다. 그래서 이 글에는 67%만 씁니다.출처[7] Ahrefs - Hreflang: The Easy Guide for Beginners 저희도 직접 세어 봤습니다. 여기서는 저희가 센 숫자와, 틀린 것들이 어떤 모양인지를 봅니다.
저희가 모아 둔 한국어 검색 결과 지면을 도메인마다 한 쪽씩 받아 553곳을 읽었습니다. 그중 hreflang을 쓰는 곳이 **123곳, 22.2%**였습니다. 쓰는 곳에서 센 결과가 아래입니다 있었습니다.19[19]저희가 다른 글을 쓰려고 모아 둔 한국어 검색 결과 지면에서 도메인마다 한 쪽씩 600개를 골라 받았고, 차단이나 시간 초과를 뺀 553곳을 읽었습니다(2026년 10월 4일). 같은 사이트를 여러 번 세지 않으려고 도메인마다 한 쪽만 봤습니다. 그 123곳에서 센 결과입니다.
| 무엇 | 몇 곳 |
|---|---|
| x-default가 없음 | 31곳 (25%) |
| 자기 자신을 안 가리킴 | 5곳 (4%) |
| 코드 꼴이 틀림 | 3곳 (2%) |
| 상호 참조가 안 됨 | 확인한 61곳 중 4곳 |
Ahrefs의 67%보다 훨씬 낮습니다. 저희 표본이 검색 상위에 뜬 지면이라 큰 사이트에 치우쳐 있기 때문으로 보입니다. 웹 전체를 잰 숫자가 아닙니다.20[20]이 숫자를 읽으실 때 한계를 함께 보셔야 합니다. 첫째, 표본이 한국어 검색에서 상위에 뜬 지면이라 크고 잘 만든 사이트에 치우쳐 있습니다. 둘째, HTML 원문만 보았으므로 자바스크립트로 그려 넣거나 사이트맵·HTTP 헤더로 넣은 hreflang은 세지 못했습니다. 셋째, 상호 참조는 123곳 전부가 아니라 61곳만 상대 쪽을 다시 받아 확인했습니다. 그러니 “웹이 이렇다”가 아니라 “상위에 뜬 지면을 세어 보니 이랬다”로 읽으셔야 합니다.
가장 많이 빠진 것은 x-default였습니다. 어느 언어판과도 맞지 않는 방문자에게 보여 줄 기본 쪽을 가리키는 값입니다.21[21]구글의 설명입니다. “The reserved x-default value is used when no other language/region matches the user’s browser setting. This value is recommended for specifying the fallback page for users whose language settings don’t match any of your site’s localized versions.” 권장(recommended)이라고 적혀 있고 필수라고는 적혀 있지 않습니다. 그래서 없다고 해서 표시가 무시되지는 않습니다.출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)
자기 자신을 안 가리킨 5곳을 하나씩 열어 봤습니다. 전부 같은 유형이었습니다. 글 하나하나가 자기가 아니라 홈이나 목록을 가리키고 있었습니다.22[22]저희가 2026년 10월 4일에 다섯 곳을 직접 열어 확인했습니다. 어느 회사인지는 적지 않습니다. 실수를 공개로 지적할 일이 아니고, 쓸모 있는 것은 이름이 아니라 모양이기 때문입니다. 다섯 곳 모두 사이트 자체는 멀쩡히 돌아가고 있어, 눈으로는 알 수 없는 종류의 실수입니다.
한 벌을 모든 쪽에 넣으라는 구글 안내를 주소까지 고정값으로 박아 넣는 것으로 받아들이면 이렇게 됩니다.
코드 꼴이 틀린 3곳은 각각 다른 실수였습니다. 하나는 붙임표 자리에 밑줄을 썼고(ko_KR), 하나는 보통 붙임표가 아닌 다른 문자가 섞여 있었습니다. 눈으로는 구별되지 않습니다.23[23]밑줄을 쓴 경우는 구글이 알아서 고쳐 준다고 전하는 업계 글이 있습니다. 다만 구글 문서에는 그런 문장이 없어 기대하지 않으시는 편이 낫습니다. 코드 규격은 언어를 ISO 639-1로, 지역을 ISO 3166-1 Alpha 2로 적는 것이고, 구글은 “Specifying the region alone is not valid.”라고 못 박고 있습니다. 지역만 적으면 안 된다는 뜻입니다. [1]출처[1] Google 검색 센터 - Tell Google about localized versions of your page (영어 원문)[5] IETF RFC 5646 (BCP 47) - Tags for Identifying Languages
무엇을 언어판 묶음 한 벌을 만들어 모든 언어판의 <head>에 똑같이 넣고, 그 묶음에 자기 자신과 x-default를 포함합니다
안 하면 서로 가리키지 않거나 자기가 빠지면 구글이 그 표시를 무시합니다
확인 각 언어판에서 페이지 소스를 열어 rel="alternate" 줄을 세고, 그중 지금 보고 있는 주소가 있는지 봅니다. 상대 언어판에서도 같은 방법으로 내 주소가 있는지 봅니다
안 되어 있다면 템플릿에 주소를 고정값으로 박아 두지 마시고, 페이지마다 자기 주소가 들어가게 고치십시오
국내 검색만 보신다면 이 글의 내용이 필요 없을 수 있습니다. 네이버 안내에는 hreflang이 아예 없기 때문입니다.24[24]저희가 네이버 서치어드바이저 웹마스터 가이드 19쪽을 받아 낱말을 찾아봤습니다(2026년 10월 4일). hreflang, 다국어, alternate, 언어 네 낱말이 한 번도 나오지 않았습니다. 구글이 세 가지 적용 방법을 문서로 안내하는 것과 대조됩니다.출처[6] 네이버 서치어드바이저 - 웹마스터 가이드 여기서는 네이버와 빙이 hreflang을 어떻게 다루는지 봅니다.
저희가 네이버 서치어드바이저 웹마스터 가이드를 전부 받아 찾아봤습니다. hreflang, 다국어, alternate, 언어라는 낱말이 한 번도 나오지 않았습니다.25[25]찾아본 범위를 밝힙니다. 서치어드바이저 /guide/ 아래 19쪽을 모두 받아 네 낱말을 찾았습니다. 네이버 웹마스터 블로그와 공지, 웹마스터 도구 안쪽 도움말은 보지 못했으므로 “네이버 어디에도 없다”고까지는 말씀드리지 않겠습니다.출처[6] 네이버 서치어드바이저 - 웹마스터 가이드
없다는 것이 “쓰면 안 된다”는 뜻은 아닙니다. 다만 네이버가 그것을 본다는 근거도 없습니다. 한국어 사이트만 운영하신다면 넣지 않으셔도 됩니다.
빙은 웹마스터 가이드라인에 적지 않았습니다. 대신 2025년 12월 블로그에서 언어와 지역을 겨냥할 때 hreflang을 쓰라고 했습니다.26[26]빙 웹마스터 가이드라인 본문에는 hreflang이라는 낱말이 없습니다. 대신 2025년 12월 빙 웹마스터 블로그에 “Use hreflang to define language and regional targeting”이라고 적혀 있습니다. 같은 글은 점검 항목에도 hreflang을 넣어 “metadata, internal links, redirects, canonical tags, and hreflang relationships”를 확인하라고 합니다.출처[9] Bing Webmaster Blog - Does Duplicate Content Hurt SEO and AI Search Visibility? (2025)
정리하면 이렇습니다. 해외 검색을 보신다면 넣으시고, 국내만 보신다면 다른 일을 먼저 하시면 됩니다.
hreflang은 캐노니컬 태그와 함께 다루셔야 합니다. 구글은 표준 페이지를 같은 언어로 지정하라고 하고, 캐노니컬 주석에 hreflang 속성을 붙이면 그 주석을 쓰지 않습니다.27[27]구글 문서의 영어 원문 두 문장입니다. “If you’re using hreflang elements, make sure to specify a canonical page in the same language, or the best possible substitute language if a canonical page doesn’t exist for the same language.” 그리고 “rel=“canonical” annotations that suggest alternate versions of a page are ignored; specifically, rel=“canonical” annotations with hreflang, lang, media, and type attributes are not used for canonicalization.” 거꾸로 구글이 대표 주소를 고를 때는 “for canonicalization purposes Google prefers URLs that are part of hreflang clusters”라고도 적습니다. 둘은 서로 참고하는 사이인 것입니다.출처[3] Google 검색 센터 - Consolidate duplicate URLs (영어 원문) 주소를 어떻게 짜는지는 URL 구조에서, 주소 전체는 URL에서 다룹니다.
출처