hreflang
도구
같은 내용의 언어별 페이지가 서로 짝이라는 사실과 각자 어느 언어용인지를 검색 엔진에 알려 주는 속성입니다.
등장 배경
한 내용을 두 언어로 내면 검색 엔진 쪽에서 두 가지가 어긋납니다. 하나는 둘을 짝으로 보지 못해 서로 경쟁하는 페이지로 취급하는 것입니다. 글이 거의 같으니 한쪽만 대표로 골라 목록에 올리고 나머지를 접어 두는 일이 생깁니다.
다른 하나는 잘못된 쪽을 보여 주는 것입니다. 한국에서 한국어로 검색한 사람에게 영문판이 뜨면 그 사람은 대개 뒤로 나갑니다.
그래서 페이지마다 자기 언어와 짝의 주소를 함께 적어 두는 표시가 생겼습니다.
해결하는 문제
이 표시가 실제로 하는 일은 셋입니다.
- 짝을 맺어 줍니다. 각 페이지에서 자기 자신을 포함해 모든 언어판의 주소와 언어를 나열합니다. 한국어 페이지가 영문판을 가리키면서 영문판은 한국어판을 가리키지 않으면 검색 엔진은 그 선언을 통째로 무시합니다.
- 언어와 지역을 나눠 알립니다. 값은 언어 코드만 쓰거나 언어와 지역을 함께 씁니다. 지역까지 나눌 필요가 없으면 언어만 적습니다.
- 해당 언어가 없는 사용자에게 보여 줄 기본을 정합니다. 목록에 없는 언어로 검색한 사람에게 어느 페이지를 내보낼지 지정하는 값을 따로 둡니다. 이것을 비워 두면 검색 엔진이 짐작해서 고릅니다.
넣는 자리는 셋입니다. 페이지 머리 부분에 태그로 적거나, 서버 응답 헤더로 보내거나, 사이트맵에 함께 적습니다. 언어가 둘이고 페이지가 스무 개면 태그가 편하고, 언어 다섯에 페이지 수천 개면 사이트맵이 낫습니다. 검색 봇이 훑어 가는 크롤링부터 막혀 있으면 이 표시도 읽히지 않습니다.
자주 나는 실수는 네 가지입니다. 상호 참조를 빠뜨리는 것, 자기 자신을 목록에 넣지 않는 것, 한국어 코드로 kr 을 적는 것(kr 은 국가 코드이고 언어는 ko 입니다), 그리고 짝으로 적어 둔 주소가 리다이렉트되거나 없는 페이지인 것입니다.
실무 용례
"영문 페이지에서 한국어판을 가리키는 선언이 빠졌습니다. 이러면 무시됩니다."
상호 참조가 없으면 표시 자체가 작동하지 않는다는 지적입니다.
"언어가 다섯이 되면 태그로는 관리가 안 됩니다. 사이트맵으로 옮기죠."
넣는 자리를 페이지 수와 언어 수에 맞춰 바꾸자는 제안입니다.
"한국에서 검색했는데 영문판이 뜹니다. hreflang 확인해 주세요."
잘못된 언어판이 노출되는 문제를 이 표시부터 확인하자는 요청입니다.
페이지덱이 도움말 문서를 영문으로 함께 내면서 이 작업을 했습니다. 현우가 두 달 동안 한국어 문서 유입이 줄어드는 것을 보고 검색 결과를 확인했더니, 같은 주제의 문서 가운데 영문판만 뜨는 경우가 서른 건 넘게 있었습니다. 태오가 두 판에 상호 참조를 붙이고 기본값을 영문으로 지정했습니다. 표현을 각 언어에 맞게 고치는 현지화는 그다음 분기 일이었습니다.
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16