본문으로 건너뛰기

SEO rule reference / metadata

메타데이터: 검색엔진에게 페이지를 소개하는 문장

검사기가 메타데이터 카테고리에서 확인하는 14개 항목의 판정 기준과 배점 근거, 실무에서 자주 나오는 오해, 그리고 이 검사가 확인하지 못하는 범위를 정리합니다.

검사 항목
14개
배점
SEO 100점 중 20점
수정
작성자
애드브랜치 편집팀

메타데이터는 페이지가 자기 자신을 검색엔진에게 어떻게 소개하는가를 확인하는 카테고리입니다. SEO 100점 중 20점을 차지하며, 검색 접근성 다음 순서로 보여 줍니다. 크롤러가 페이지에 도달할 수 있다는 것이 확인된 뒤에야 “그래서 이 페이지가 무엇인지”를 설명하는 문장이 의미를 갖기 때문입니다.

이 카테고리의 항목은 모두 <head> 안의 몇 줄에서 나옵니다. <title>, meta description, rel=canonical, meta robots, hreflang, html lang. 본문 한 글자 바꾸지 않고 이 몇 줄만 고쳐도 검색결과에서 페이지가 보이는 방식이 달라지는 영역이라, 실무에서 투입 대비 효과가 가장 큰 곳이기도 합니다. 반대로 말하면 사고가 가장 조용히 나는 곳이기도 합니다. 템플릿 한 줄의 실수가 사이트 전체 페이지에 그대로 복제되는데, 화면에서는 아무것도 달라 보이지 않습니다.

20점이라는 배점은 검색 접근성과 같지만 성격이 다릅니다. 검색 접근성의 실패는 페이지를 검색결과에서 없애고, 메타데이터의 실패는 페이지를 덜 선택되게 만듭니다. 그래서 이 카테고리 안에서는 4점짜리 항목이 없습니다. 가장 높은 title 누락이 3점이고, 나머지는 2점 또는 1점입니다. 배점은 “틀렸을 때 페이지가 무엇을 잃는가”를 기준으로 정했습니다. 검색결과에 표시되는 문장을 잃는 것과, 대표 URL 통제권을 잃는 것과, 언어 묶음 하나가 풀리는 것은 무게가 다릅니다.

다섯 묶음으로 읽는 14개 항목

1. 검색결과에 보이는 문장이 있는가

title 누락(3점)은 이 카테고리에서 배점이 가장 높습니다. <title>은 검색결과 제목의 기본 재료이자 브라우저 탭, 북마크, 공유 미리보기에 모두 쓰이는 값입니다. 없으면 Google 이 본문의 h1 이나 앵커 텍스트에서 제목을 만들어 씁니다. 그 결과가 나쁘지 않을 때도 있지만, 어떤 문구가 뽑힐지는 통제할 수 없습니다. 이 항목이 실무에서 틀리는 방식은 두 가지입니다. 하나는 정말로 태그가 없는 경우이고, 다른 하나는 <title>이 두 개 이상 있는 경우입니다. 헤더 컴포넌트와 페이지 템플릿이 각각 title 을 넣는 구조에서 흔히 생기며, 검사기는 이 경우도 문제로 잡습니다. 어느 쪽이 쓰일지 브라우저마다, 검색엔진마다 다르기 때문입니다.

title 권장 길이(2점)는 30~60자 범위를 봅니다. 여기서 먼저 밝혀 둘 것이 있습니다. Google 은 title 글자 수를 강제하지 않습니다. 60자는 검색결과 한 줄에 표시되는 폭을 픽셀 단위로 환산했을 때의 대략적인 경험값이며, 한글은 글자당 폭이 넓어 같은 글자 수여도 더 일찍 잘립니다. 30자 하한은 반대 방향의 문제를 잡기 위한 것입니다. “홈”, “소개”, “블로그” 같은 한두 단어 제목은 검색결과에서 무엇에 관한 페이지인지 전혀 알려 주지 못합니다. 이 항목이 2점인 이유는, 잘리거나 짧은 제목은 페이지를 사라지게 하지 않고 덜 클릭되게 만들 뿐이기 때문입니다. 흔한 오해 하나를 덧붙입니다. 60자를 넘겼다고 Google 이 페이지를 불리하게 다루지는 않습니다. 잘려서 보일 뿐이고, 핵심 키워드가 앞에 있다면 잘린 뒤에도 의미는 남습니다.

meta description 누락(2점)은 요약문이 있는지 봅니다. description 은 순위 신호가 아닙니다. 이 점은 Google 이 공식적으로 여러 차례 밝혔습니다. 그런데도 검사기가 2점을 매기는 이유는, 검색결과 스니펫이 클릭률을 좌우하고 스니펫의 기본 재료가 description 이기 때문입니다. 없으면 Google 이 본문에서 질의와 관련된 문장을 잘라 스니펫을 만드는데, 그 문장이 목차나 쿠키 안내문일 수도 있습니다.

meta description 권장 길이(1점)는 70~160자를 봅니다. 이 항목의 배점이 title 길이보다 낮은 것은 의도적입니다. Google 은 description 을 title 보다 훨씬 자주 다시 씁니다. 질의에 따라 본문에서 더 적절한 문장을 찾으면 작성자가 쓴 description 을 무시합니다. 그래서 길이를 정확히 맞추는 것보다 앞쪽 70자 안에 페이지의 핵심 정보가 들어 있는가가 더 중요합니다. 길이 검사는 그 조건을 간접적으로 확인하는 장치에 가깝습니다.

제목·설명 반복 키워드

제목·설명 반복 키워드는 점수 미반영 진단입니다. 판정하기 전에 제목과 설명을 NFKC 방식으로 정규화하고 소문자로 바꿉니다. 라틴 문자와 숫자로 된 단어는 2자 이상, 한글 단어는 2음절 이상만 토큰으로 삼으며, 한글 토큰 끝의 조사 하나를 제거한 뒤 및, 또는, 그리고, 위한, 대한, 통한, 하는, 있는, 없는, 모든은 제외합니다. 제목의 같은 토큰이 2회 이상, 설명의 같은 토큰이 3회 이상 나오거나 정규화한 제목과 설명이 같으면 개선 권장으로 표시합니다. 두 값이 모두 없으면 해당 없음이고, 나머지는 통과입니다.

네이버는 반복 키워드나 제목과 같은 설명이 검색 노출에 불리할 수 있다고 안내합니다. 그러나 이 검사기의 토큰 분리, 일부 한국어 조사 제거, 횟수 경계는 애드브랜치가 정한 기준입니다. 제목의 불가피한 고유명사 반복과 검색어 나열을 완전히 구별하지 못하므로, 경고만 보고 필요한 단어까지 지우지 마세요. 네이버 콘텐츠 마크업 안내

2. 대표 URL 을 스스로 정하고 있는가

같은 내용이 여러 URL 로 접근되는 것은 거의 모든 사이트에서 일어납니다. http와 https, www 유무, 끝 슬래시 유무, 추적 파라미터, 정렬 파라미터. Google 은 이 변형들 중 하나를 대표로 골라 색인하는데, 사이트가 어느 것이 대표인지 말해 주지 않으면 Google 이 스스로 판단합니다. canonical 세 항목은 그 판단을 사이트가 가져오는지를 봅니다.

canonical 누락(2점)은 <head> 안에 rel=canonical 링크가 있는지 봅니다. 2점인 이유는 이것이 없어도 Google 이 대체로 합리적인 선택을 하기 때문입니다. 다만 “대체로”입니다. 파라미터가 붙은 URL 이 외부에서 많이 링크되면 그쪽이 대표로 선택될 수 있고, 그러면 검색결과에 ?utm_source= 가 붙은 주소가 나옵니다. 여기서도 두 개 이상 선언된 경우를 문제로 봅니다. canonical 이 둘이면 Google 은 둘 다 무시합니다. 하나만 남기는 것이 없는 것보다 낫고, 없는 것이 둘 있는 것보다 낫습니다.

canonical 대상 유효성(2점)은 선언된 URL 이 해석 가능한지, 같은 사이트를 가리키는지, fragment 가 없는지 봅니다. 실무에서 이 항목이 틀리는 방식은 대개 템플릿 변수 실수입니다. 스테이징 도메인이 canonical 에 남아 운영 사이트 전체가 스테이징을 대표로 지정하는 사례, 상대 경로로 적어 페이지마다 다른 기준으로 해석되는 사례, #section 이 붙어 통째로 무시되는 사례가 여기서 잡힙니다. 다른 도메인을 canonical 로 지정하는 것 자체는 정당한 용도가 있습니다. 콘텐츠를 다른 사이트에 정식으로 재게시할 때 원본을 가리키는 방식입니다. 검사기는 그 경우와 실수를 구분할 수 없으므로, 의도한 것이라면 이 항목의 지적은 무시해도 됩니다.

자기참조 canonical(1점)은 canonical 이 지금 검사 중인 URL 과 같은지 봅니다. 앞의 두 항목을 통과하고도 이 항목에 걸린다면, canonical 이 다른 페이지를 가리키고 있다는 뜻입니다. 페이지네이션 2페이지가 1페이지를 canonical 로 지정하는 것이 대표적인 오용입니다. 두 페이지의 내용이 다르므로 Google 은 이 선언을 신뢰하지 않고, 신뢰를 잃은 canonical 은 다른 페이지에서도 약하게 취급됩니다. 1점인 이유는 자기참조가 아닌 canonical 중 상당수가 의도된 것이기 때문입니다. 검사기는 “확인해 보라”는 뜻으로 낮게 표시합니다.

3. 지시문이 스스로를 해치고 있지 않은가

meta robots nofollow 조합(2점)은 noindex와 nofollow가 함께 쓰인 경우를 찾습니다. 색인 여부 자체는 검색 접근성 카테고리에서 봤고, 여기서는 그 조합이 사이트 구조에 미치는 부작용을 봅니다. 흔한 오해는 “색인에서 빼려면 noindex, nofollow 로 쓴다”는 것입니다. 많은 플러그인과 튜토리얼이 이 조합을 기본값처럼 안내합니다. 그러나 nofollow는 이 페이지에서 나가는 링크를 따라가지 말라는 신호입니다. 절대적인 차단은 아니고 Google 이 참고하는 힌트이지만, 태그 페이지나 검색결과 페이지처럼 색인은 막되 링크 허브 역할을 하는 페이지에 이것을 붙이면 그 너머의 페이지들로 가는 발견 경로가 약해집니다. 다만 사이트맵이나 다른 사이트의 링크 등 다른 경로로는 여전히 발견될 수 있습니다. 색인만 막고 싶다면 noindex 만 쓰거나 noindex, follow 로 씁니다. 2점인 이유는 이 문제가 해당 페이지가 아니라 다른 페이지들의 발견에 영향을 주기 때문입니다.

4. 언어를 정확히 선언하고 있는가

hreflang 선언 문법(1점)은 hreflang 값이 BCP 47 형식인지, href 가 절대 URL 인지 봅니다. 자주 틀리는 값은 kr, en_US, korean 입니다. 한국의 언어 코드는 ko 이고 kr 은 국가 코드입니다. 언어만 쓰려면 ko, 지역까지 쓰려면 ko-KR 이며 구분자는 밑줄이 아니라 하이픈입니다. 잘못된 선언은 경고 없이 통째로 무시되므로, 문법 오류 하나가 언어 연결 전체를 없앱니다.

hreflang 상호참조(1점)는 현재 페이지가 자기 자신을 가리키는 alternate 선언을 포함하는지 봅니다. 한쪽만 선언하고 반대쪽이 되받지 않으면 Google 은 그 선언을 무시합니다. 한국어 페이지가 영어 페이지를 가리키고, 영어 페이지도 한국어 페이지를 가리키고, 각자 자기 자신도 가리켜야 Google 이 이것을 하나의 묶음으로 인식합니다. 모든 페이지가 서로 되받지 못하더라도 Google 은 서로 되받는 쌍은 처리합니다. 검사기는 단일 페이지만 읽으므로 상대 페이지가 되돌아 참조하는지는 확인할 수 없고, 확인 가능한 절반인 자기참조만 봅니다. 두 항목이 모두 1점인 이유는 단일 언어 사이트에는 hreflang 이 필요 없기 때문입니다. hreflang 이 아예 없는 페이지는 이 항목에서 감점되지 않습니다. 있는데 잘못된 경우만 잡습니다.

문서 언어 일관성(1점)은 <html lang> 에 선언한 언어와 본문에서 실제로 감지되는 언어가 일치하는지 봅니다. 가장 흔한 사례는 템플릿의 lang="en" 을 그대로 두고 한국어 콘텐츠를 얹은 경우입니다. Google 은 언어 판단에 lang 속성을 거의 쓰지 않고 본문을 직접 봅니다. 그런데도 검사하는 이유는 브라우저 번역 제안, 스크린 리더의 발음 규칙, 일부 검색엔진의 지역 판단이 이 값을 참조하기 때문입니다. 배점이 낮은 것은 Google 검색 자체에 미치는 영향이 작기 때문이고, 그럼에도 항목으로 둔 것은 고치는 데 1분이 걸리지 않기 때문입니다.

5. 사이트 전체에서 고유한가

사이트 전체 title 중복(1점)과 사이트 전체 description 중복(1점)은 다른 페이지와 비교해야 알 수 있습니다. 현재 검사기는 본문 페이지를 하나만 읽으므로 두 항목을 확인 불가로 남깁니다. 사이트맵의 다른 페이지를 추가 수집하거나 중복이 없다고 판정하지 않습니다. 한 페이지 안에서 단어가 반복되는지를 보는 제목·설명 반복 키워드와는 별개의 문제입니다.

실무에서 이 문제는 거의 항상 템플릿에서 옵니다. 모든 페이지의 title 이 사이트 이름만으로 되어 있거나, description 에 사이트 소개문이 고정으로 들어가 있는 경우입니다. 페이지별 값이 없을 때 사이트 기본값으로 대체하는 로직이 있다면, 그 대체가 얼마나 자주 일어나는지 확인해 보는 것이 이 항목의 실질적인 수정 방법입니다.

이 검사가 확인하지 못하는 것

정직하게 범위를 밝힙니다.

  • 단일 페이지 검사입니다. 다른 페이지의 본문은 추가로 읽지 않습니다. hreflang 상대 페이지의 되돌아 참조와 사이트 전체의 중복 규모는 확인하지 못합니다.
  • 초기 HTML 기준입니다. JavaScript 실행 후의 DOM 은 보지 않습니다. 클라이언트 라우터가 title 을 바꾸거나, 스크립트가 canonical 을 주입하는 구조라면 검사 결과와 실제 렌더링 결과가 다를 수 있습니다. 다만 Google 도 첫 번째 읽기는 초기 HTML 로 하므로, 그 차이 자체가 문제가 될 수 있습니다.
  • 길이 기준은 경험값입니다. 3060자, 70160자는 검색결과 표시 폭을 고려한 업계 관행이며 Google 의 규격이 아닙니다. 한글과 영문의 폭 차이, 모바일과 데스크톱의 폭 차이를 검사기는 구분하지 않습니다.
  • 의도된 canonical 과 실수를 구분하지 못합니다. 다른 도메인이나 다른 페이지를 가리키는 canonical 이 정당한 재게시 선언인지 템플릿 오류인지는 사람이 판단해야 합니다.
  • 언어 감지는 근사치입니다. 본문 언어는 문자 종류의 비율로 추정하며, 여러 언어가 섞인 페이지에서는 판정이 흔들릴 수 있습니다.
  • 판정은 애드브랜치의 우선순위입니다. 배점과 심각도는 이 검사기가 정한 기준이며, Google 이나 AI 검색엔진의 순위 판정 그 자체가 아닙니다. 이 카테고리를 만점으로 만들어도 검색 순위나 AI 답변의 인용이 약속되지는 않습니다. 검색결과에 나올 자격을 갖춘 페이지가 더 잘 설명되도록 돕는 것이 이 항목들의 역할입니다.

이어서 읽기

항목별 수정 방법과 코드 예시는 아래 표에 정리돼 있습니다. 개념을 더 깊이 보려면 title 과 meta description 작성법, canonical URL 설정 가이드, robots.txt 작성법과 흔한 실수, SEO 점검 체크리스트를 함께 읽어 보세요.

항목별 판정 기준과 수정 방법

아래 14개 항목은 검사기가 이 카테고리에서 실제로 실행하는 검사입니다. 배점과 문구는 검사 코드에서 그대로 가져옵니다.

title 누락

3점 · title-missing

왜 중요한가
title 은 검색결과 제목의 기본 재료입니다. 없으면 Google 이 임의의 문구로 대체해 클릭률이 떨어질 수 있습니다.
수정 방법
<head> 안에 페이지 내용을 요약하는 <title> 을 정확히 하나만 두세요.

문제 예시

<head>
  <meta charset="utf-8">
</head>

고친 예시

<head>
  <meta charset="utf-8">
  <title>페이지 주제를 담은 제목 — 사이트 이름</title>
</head>

관련 가이드 읽기 →

title 권장 길이

2점 · title-length

왜 중요한가
30~60자는 검색결과 표시 폭을 고려한 업계 권장값입니다. Google 이 강제하는 글자 수는 아닙니다.
수정 방법
핵심 키워드를 앞에 두고 30~60자 사이로 다듬으세요.

문제 예시

<title>홈</title>

고친 예시

<title>무료 SEO·GEO 검사기 사용법과 결과 읽는 법 — 애드브랜치</title>

관련 가이드 읽기 →

meta description 누락

2점 · meta-description-missing

왜 중요한가
description 이 없으면 Google 이 본문에서 임의로 스니펫을 만들어 의도한 요약이 노출되지 않을 수 있습니다.
수정 방법
페이지 내용을 요약한 meta description 을 하나만 두세요.

문제 예시

<head>
  <title>페이지 제목</title>
</head>

고친 예시

<head>
  <title>페이지 제목</title>
  <meta name="description" content="이 페이지가 무엇을 알려 주는지 한두 문장으로 요약합니다.">
</head>

관련 가이드 읽기 →

meta description 권장 길이

1점 · meta-description-length

왜 중요한가
70~160자는 가독성을 위한 업계 권장값이며, Google 은 질의에 따라 스니펫을 다시 쓸 수 있습니다.
수정 방법
핵심 정보를 앞쪽에 두고 70~160자로 정리하세요.

문제 예시

<meta name="description" content="소개">

고친 예시

<meta name="description" content="URL 하나로 SEO 와 GEO 를 함께 점검하고, 문제마다 근거와 수정 코드를 확인하는 방법을 정리했습니다.">

관련 가이드 읽기 →

canonical 누락

2점 · canonical-missing

왜 중요한가
대표 URL 을 명시하지 않으면 파라미터·www 변형 등 중복 URL 중 어느 것이 대표로 선택될지 통제하기 어렵습니다.
수정 방법
<head> 에 절대 URL 로 된 rel=canonical 링크를 하나만 두세요.

문제 예시

<link rel="canonical" href="/blog/post">

고친 예시

<link rel="canonical" href="https://example.com/blog/post">

관련 가이드 읽기 →

canonical 대상 유효성

2점 · canonical-target-valid

왜 중요한가
다른 도메인이나 해석 불가한 URL 을 canonical 로 지정하면 이 페이지가 색인 대표에서 밀려날 수 있습니다.
수정 방법
canonical 은 같은 사이트의 HTTPS 정식 URL 을 fragment 없이 지정하세요.

문제 예시

<link rel="canonical" href="https://another-site.example/page#section">

고친 예시

<link rel="canonical" href="https://example.com/blog/post">

관련 가이드 읽기 →

자기참조 canonical

1점 · canonical-self-reference

왜 중요한가
자기참조 canonical 은 파라미터가 붙은 변형 URL 이 색인되는 것을 줄여 줍니다.
수정 방법
특별한 이유가 없다면 canonical 을 현재 페이지의 정식 URL 과 같게 맞추세요.

문제 예시

<link rel="canonical" href="https://example.com/blog/post?utm_source=newsletter">

고친 예시

<link rel="canonical" href="https://example.com/blog/post">

관련 가이드 읽기 →

meta robots nofollow 조합

2점 · meta-robots-directive-quality

왜 중요한가
noindex 와 nofollow 를 함께 쓰면 색인 제거와 링크 추적 차단을 동시에 요청하게 되어 사이트 내부 발견 경로가 끊길 수 있습니다.
수정 방법
색인만 막으려면 noindex,follow 를 쓰고, 공개 페이지에는 제한 지시를 두지 마세요.

문제 예시

<meta name="robots" content="noindex, nofollow">

고친 예시

<meta name="robots" content="noindex, follow">

관련 가이드 읽기 →

hreflang 선언 문법

1점 · hreflang-syntax

왜 중요한가
language tag 나 URL 이 잘못된 hreflang 은 통째로 무시되어 언어별 페이지 연결이 끊깁니다.
수정 방법
hreflang 값은 BCP 47 형식(ko, en-US)으로, href 는 절대 URL 로 적으세요.

문제 예시

<link rel="alternate" hreflang="korean" href="/ko/">

고친 예시

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

관련 가이드 읽기 →

hreflang 상호참조

1점 · hreflang-reciprocal

왜 중요한가
각 언어 버전은 자기 자신을 포함한 모든 변형을 참조해야 Google 이 언어 묶음을 인식합니다.
수정 방법
현재 페이지 URL 을 가리키는 self alternate 선언을 추가하세요.

문제 예시

<link rel="alternate" hreflang="en" href="https://example.com/en/post">

고친 예시

<link rel="alternate" hreflang="ko" href="https://example.com/blog/post">
<link rel="alternate" hreflang="en" href="https://example.com/en/post">

관련 가이드 읽기 →

사이트 전체 title 중복

1점 · title-duplicate-sitewide

왜 중요한가
여러 페이지가 같은 title 을 쓰면 검색결과에서 구분되지 않아 클릭률이 낮아질 수 있습니다.
수정 방법
페이지마다 내용을 구분하는 고유한 title 을 쓰고, 템플릿에는 페이지 고유 값을 넣으세요.

문제 예시

<title>블로그 | 사이트 이름</title>

고친 예시

<title>{{ 글 제목 }} | 사이트 이름</title>

관련 가이드 읽기 →

사이트 전체 description 중복

1점 · description-duplicate-sitewide

왜 중요한가
같은 description 이 반복되면 Google 이 이를 무시하고 본문에서 스니펫을 새로 만들 가능성이 큽니다.
수정 방법
페이지마다 내용을 요약한 고유한 description 을 작성하세요.

문제 예시

<meta name="description" content="사이트 공통 소개 문구">

고친 예시

<meta name="description" content="이 글이 다루는 내용을 한두 문장으로 요약합니다.">

관련 가이드 읽기 →

제목·설명 반복 키워드

점수 미반영 진단 · title-description-repetition

왜 중요한가
네이버 서치어드바이저는 title 과 description 에 2회 이상 반복되는 키워드, 제목과 같은 설명은 검색 노출에 불이익을 받을 수 있다고 안내합니다. 반복 기준은 공개되지 않아 이 검사는 애드브랜치가 정한 기준으로 표시만 하고 점수에는 넣지 않습니다.
수정 방법
같은 단어를 되풀이하지 말고, 제목은 주제를 한 번에 설명하는 문구로, 설명은 제목과 다른 1~2문장 요약으로 쓰세요.

문제 예시

<title>SEO SEO 최적화 가이드</title>

고친 예시

<title>검색엔진 최적화 실전 가이드</title>

관련 가이드 읽기 →

문서 언어 일관성

1점 · document-language-consistency

왜 중요한가
선언한 언어와 실제 본문 언어가 다르면 번역·음성 지원과 지역별 노출 판단이 어긋날 수 있습니다.
수정 방법
html 요소의 lang 을 실제 본문 언어와 같게 맞추세요.

문제 예시

<html lang="en">

고친 예시

<html lang="ko">

관련 가이드 읽기 →

내 페이지는 이 항목들을 통과할까

URL 하나를 넣으면 이 카테고리의 14개 항목을 포함해 110개 검사 항목을 한 번에 판정하고, 문제마다 근거와 수정 코드를 보여 줍니다.

다른 카테고리