대량 발행한 콘텐츠는 왜 '가치 없음'으로 판정되는가 — 467편 사이트의 자가진단 보고

SEO애드센스콘텐츠전략검색색인블로그운영

초록

애드센스 심사에서 "가치가 별로 없는 콘텐츠" 판정을 받은 사이트의 운영자는 대개 기술 점검부터 시작합니다. ads.txt, robots.txt, 사이트맵, 서버 사이드 렌더링, 색인 상태. 그런데 이 항목들이 전부 정상인데도 반려가 반복되는 경우가 있습니다. 본 보고는 그런 사례 하나를 자사 사이트에서 직접 측정한 데이터로 분석합니다.

측정 대상은 문서 467편입니다. 세 가지 지표 — 발행 집중률(Publication Burst Ratio), 날짜 동일률(Date Duplication Rate), 문서 두께 분포와 템플릿 공유율 — 을 정의하고 저장소에서 직접 계산했습니다. 결과는 이렇습니다. 전체 467편 중 263편(56.3%)이 단 3일에 생성되었고, 학습 문서 157편 중 132편(84.1%)이 발행 날짜 값을 공유했으며, 프롬프트 문서 133편의 중앙값 두께는 2,787자로 블로그 글(9,511자)의 29% 수준이면서 58.6%가 동일한 섹션 제목을 공유했습니다.

이 수치들은 개별 문서의 품질과 무관하게 **"규모에 비해 원본성이 얕은 페이지 묶음"**이라는 패턴을 만듭니다. 구글이 2024년 3월 스팸 정책에 추가한 scaled content abuse(대규모 콘텐츠 남용)가 겨냥하는 바로 그 형태입니다. 본 보고는 이 진단에 근거해 삭제가 아니라 색인 제거를 택한 결정 규칙과 그 구현 위치를 함께 제시합니다. 재심사 결과는 본 글 작성 시점에 아직 확정되지 않았으므로, 이 글은 처방이 아니라 진단 절차의 기록입니다.


1. 서론

1.1 문제

애드센스 반려 통지문은 한 줄입니다. "가치가 별로 없는 콘텐츠". 이 문장에는 어느 페이지가 문제인지, 몇 편이 문제인지, 무엇을 고치면 되는지가 없습니다. 그래서 운영자 대부분은 두 가지 중 하나를 합니다. 기술 점검 체크리스트를 한 번 더 돌리거나, 글을 더 씁니다.

둘 다 자주 빗나갑니다. 기술 점검은 이미 통과했기 때문에 다시 돌려도 같은 결과가 나오고, 글을 더 쓰는 것은 — 만약 문제가 **"글이 많은데 얕다"**였다면 — 정확히 반대 방향의 처방입니다.

1.2 이 글의 기여

  1. 자가진단 지표 세 개를 정의하고 계산식과 실행 명령을 제시합니다. 남의 사이트를 두고 하는 추측이 아니라, 자기 저장소에서 5분 안에 숫자를 뽑을 수 있는 형태입니다.
  2. 자사 사이트 467편의 실측값을 공개합니다. 어떤 구간이 위험한지 판단할 기준점이 없으면 지표는 쓸모가 없기 때문입니다.
  3. 조치 결정 규칙을 제시합니다. 문제 문서를 삭제할지, 색인만 뺄지, 통합할지 — 세 선택지가 갈리는 지점을 명시합니다.

1.3 이 글이 주장하지 않는 것

본 보고는 "이렇게 하면 승인된다"고 주장하지 않습니다. 애드센스 심사는 블랙박스이고, 재심사 결과는 아직 나오지 않았습니다. 주장의 범위는 "관측된 패턴이 공표된 정책 문구와 정합한다"까지입니다. 6절에서 이 주장이 틀렸을 경우의 반증 조건을 명시합니다.


2. 배경: 정책은 두 층으로 되어 있다

혼동이 잦은 지점부터 정리합니다. 우리가 상대하는 규칙은 하나가 아니라 두 개이고, 서로 다른 조직이 서로 다른 목적으로 운영합니다.

구분검색 스팸 정책애드센스 프로그램 정책
운영 주체구글 검색구글 애드센스
판정 결과순위 하락, 색인 제외광고 게재 거부, 계정 정지
통지 방식대부분 통지 없음(수동 조치는 서치콘솔)심사 결과로 명시 통지
대표 문구대규모 콘텐츠 남용, 저품질 자동 생성"가치가 별로 없는 콘텐츠"

두 층은 독립적으로 보이지만 판단 근거를 상당 부분 공유합니다. 검색에서 "이 사이트는 페이지 수에 비해 원본 가치가 낮다"는 신호가 잡히면, 광고 심사에서도 같은 결론이 나올 가능성이 높습니다.

2.1 대규모 콘텐츠 남용(scaled content abuse)

구글은 2024년 3월 코어 업데이트와 함께 스팸 정책 세 가지를 추가했고, 그중 하나가 대규모 콘텐츠 남용입니다. 정책 문구에서 중요한 대목은 두 가지입니다.

  • 생성 주체를 가리지 않습니다. AI가 썼든 사람이 썼든 둘을 섞었든 동일하게 적용됩니다. "사람이 손댔으니 괜찮다"는 방어는 성립하지 않습니다.
  • 판단 축은 규모와 의도입니다. 많은 페이지를, 이용자를 돕기보다 순위를 얻으려는 목적으로 만들었는지를 봅니다.

뒤집으면 이렇습니다. 페이지를 대량으로 만드는 것 자체는 위반이 아닙니다. 각 페이지가 실제로 차별화된 값을 담고 있으면 됩니다. 문제는 "대량"과 "얕음"이 겹칠 때 발생합니다.

2.2 왜 기술 점검이 통과해도 반려되는가

기술 점검 항목은 크롤러가 페이지를 읽을 수 있는가를 봅니다. 색인·렌더링·소유권·광고 파일. 이건 입장권입니다. 심사가 보는 것은 그다음, 읽은 내용이 무엇인가입니다.

자사 사례에서 소유권 확인, ads.txt, robots.txt, 사이트맵 제출, 서버 사이드 렌더링, 주요 페이지 색인은 전부 정상이었습니다. 그런데도 반려됐습니다. 그러므로 원인은 오른쪽 상자 안에 있습니다. 문제는 그 상자 안을 어떻게 측정하느냐입니다.


3. 방법: 콘텐츠 더미를 숫자로 바꾸기

"우리 글이 얕은가?"는 감으로 답할 수 없는 질문입니다. 자기 글은 늘 괜찮아 보입니다. 그래서 저장소 파일을 직접 세는 방식으로 세 가지 지표를 정의했습니다.

3.1 지표 1 — 발행 집중률(PBR, Publication Burst Ratio)

PBR(k) = (상위 k일에 생성된 문서 수) ÷ (전체 문서 수)

여기서 "생성"은 버전 관리 기록상 파일이 처음 추가된 날입니다. 프런트매터에 적힌 날짜는 손으로 바꿀 수 있지만 커밋 기록은 그렇지 않으므로, 실제 작업 패턴을 보려면 후자가 정확합니다.

git log --diff-filter=A --name-only --format='%cd' --date=short -- content \
  | awk '/^2/{d=$0; next} /content\//{split($0,a,"/"); print d, a[2]}' \
  | sort | uniq -c | sort -rn | head -15

해석 방향: PBR이 높다는 것은 "한 사람이 꾸준히 쓴 사이트"가 아니라 "한 번에 찍어낸 사이트"라는 뜻입니다. 이 신호 자체가 위반은 아니지만, 얕은 문서와 결합하면 대규모 콘텐츠 남용의 전형적 형태가 됩니다.

3.2 지표 2 — 날짜 동일률(DDR, Date Duplication Rate)

DDR = (최빈 date 값을 가진 문서 수) ÷ (전체 문서 수)

프런트매터의 date는 구조화 데이터의 datePublished로 나갑니다. 즉 검색엔진에게 "이 132편은 같은 날 나왔다"고 우리가 직접 신고하는 값입니다. PBR이 내부 기록이라면 DDR은 외부 신고값이고, 신고값이 더 직접적인 신호입니다.

grep -h '^date:' content/learn/*.md | sort | uniq -c | sort -rn | head

3.3 지표 3 — 문서 두께 분포와 템플릿 공유율

두께는 평균이 아니라 중앙값과 최솟값으로 봅니다. 긴 글 몇 편이 평균을 끌어올려 얕은 다수를 가리기 때문입니다.

for f in content/prompts/*; do wc -m < "$f"; done | sort -n \
  | awk '{a[NR]=$1} END{print "중앙값:", a[int((NR+1)/2)], "/ 최솟값:", a[1]}'

템플릿 공유율은 같은 섹션 제목을 쓰는 문서의 비율로 근사합니다. 골격이 같다는 것은 채워 넣은 내용만 다르다는 뜻이고, 이것이 "unoriginal content"에 가장 가까운 측정 가능한 형태입니다.

grep -h '^## ' content/prompts/* | sort | uniq -c | sort -rn | head

3.4 측정 조건

  • 측정일: 2026년 9월 1일
  • 대상: content/ 아래 마크다운 문서 전량 467편
  • 두께는 프런트매터를 포함한 문자 수(wc -m, 한글 1자 = 1문자)
  • 카테고리: 블로그(posts), 학습(learn), 프롬프트(prompts), 팁(tips), 카드뉴스(card-news), 프로젝트(projects)

4. 결과

4.1 문서 두께 분포

분류문서 수중앙값(자)최솟값(자)최댓값(자)
블로그1409,511940152,542
프로젝트249,7163,82631,053
학습1574,0342,4308,858
103,2592,8825,323
프롬프트1332,7875044,971
카드뉴스31,1361,1061,288

읽는 법이 중요합니다. 어느 줄도 그 자체로는 문제가 아닙니다. 짧은 글이 나쁜 글은 아니고, 2,787자짜리 프롬프트 안내는 그 목적에 충분할 수 있습니다.

문제는 비중입니다. 사이트 전체 467편 중 290편(62.1%)이 학습·프롬프트이고, 이 두 묶음의 중앙값은 블로그의 42%와 29%입니다. 즉 사이트를 무작위로 표본 추출해 읽으면, 절반 이상이 짧고 형식이 반복되는 문서에 걸립니다. 심사자와 크롤러가 보는 것은 우리가 자랑스러워하는 상위 10편이 아니라 이 분포입니다.

4.2 발행 집중률

생성일분류문서 수
2026-04-21학습132
2026-04-23프롬프트100
2026-04-21프롬프트31
2026-01-25블로그29
2026-08-17학습20
PBR(3) = (132 + 100 + 31) ÷ 467 = 56.3%

전체 문서의 절반 이상이 3일 만에 만들어졌습니다. 하루로 좁혀도 2026년 4월 21일 하루에 163편(34.9%)입니다.

4.3 날짜 동일률

분류최빈 date해당 문서 수DDR
학습2026-04-21132 / 15784.1%
프롬프트2026-04-22100 / 13375.2%
블로그2026-01-3110 / 1407.1%

학습과 프롬프트는 구조화 데이터로 "같은 날 발행됨"을 명시적으로 신고하고 있었습니다. 블로그는 7.1%로 정상 범위입니다. 같은 사이트 안에서 이렇게 갈린다는 사실 자체가, 이 지표가 발행 방식의 차이를 잡아낸다는 방증입니다.

4.4 템플릿 공유율

프롬프트 문서 133편의 섹션 제목 분포입니다.

섹션 제목사용 문서 수비율
## 팁7858.6%
## 실전 프롬프트7254.1%
## 프롬프트 (복사)3224.1%
## 언제 쓰나3224.1%
## 잘 쓰는 팁2518.8%

또한 133편 중 34편(25.6%)이 섹션 4개 이하였습니다. 중앙값 2,787자에 섹션 4개면, 페이지 하나가 실질적으로 전달하는 것은 짧은 예시 몇 개입니다.

4.5 종합

핵심은 어느 지표도 단독으로는 위반이 아니라는 점입니다. 짧은 글도, 많은 글도, 같은 날 올린 글도, 같은 서식의 글도 각각은 정당합니다. 네 가지가 같은 문서 묶음에 동시에 겹칠 때 비로소 "규모에 비해 원본성이 얕다"는 판정이 만들어집니다. 자가진단이 어려운 이유가 여기 있습니다. 항목별로 점검하면 전부 통과하기 때문입니다.

4.6 제안하는 주의선

아래 값은 구글이 공표한 임계값이 아니라 본 사례 관측에서 도출한 실무적 눈금입니다. 절대 기준이 아니라 "이 선을 넘으면 다른 지표도 같이 보라"는 신호로 쓰기를 권합니다.

지표주의위험
PBR₁ (하루 집중)15% 이상30% 이상
DDR (날짜 동일률)30% 이상60% 이상
카테고리 중앙값 두께사이트 최상위 카테고리의 50% 미만30% 미만
템플릿 공유율40% 이상60% 이상
위 항목 동시 초과2개3개 이상

자사 학습·프롬프트 묶음은 마지막 줄에서 4개 전부 초과였습니다.


5. 조치 설계: 삭제·색인 제거·통합 중 무엇을 고를 것인가

진단이 끝나면 곧바로 "지울까요?"가 나옵니다. 이 질문이 성급한 이유는, 검색엔진에 대한 노출과 이용자에 대한 가치가 분리 가능한 두 축이기 때문입니다.

5.1 결정 규칙

네 갈래의 성격이 다릅니다.

  • 삭제: 되돌릴 수 없고 내부 링크가 깨집니다. 이용자에게도 무가치할 때만.
  • 보강: 가장 좋지만 가장 비쌉니다. 133편을 각각 두 배로 늘리는 것은 현실적이지 않습니다.
  • 통합: 검색 관점에서 최선인 경우가 많습니다. 다만 원문 구조가 목록형일 때만 깔끔합니다.
  • 색인 제거: 페이지는 살아 있고 사이트 안에서 계속 쓰이지만, 검색 결과에는 나오지 않습니다.

5.2 자사가 고른 것과 그 이유

프롬프트 상세 133편에 색인 제거를 적용했습니다. 판단 근거는 두 가지입니다.

첫째, 이용자에게는 실제로 쓰이고 있었습니다. 사이트 안에서 목록으로 탐색하며 복사해 가는 용도로는 제 몫을 했습니다. 삭제하면 그 기능이 사라집니다.

둘째, 검색 진입점으로서의 값은 낮았습니다. 짧고 서식이 겹치는 페이지 133개가 검색 결과에 흩어져 있는 것은, 사이트 전체 인상을 "얕은 페이지가 많은 곳"으로 만드는 쪽에 가까웠습니다.

한 축은 유지하고 다른 축만 끊는 것이 정답이었습니다. 이 판단은 "색인에서 빼는 것이 곧 콘텐츠를 부정하는 것"이라는 흔한 오해와 반대입니다.

5.3 구현 위치 — 프런트매터가 아니라 라우트

색인 제거를 프런트매터 필드로 처리하려는 시도가 흔한데, 133편을 일일이 고치는 방식은 누락이 생깁니다. 카테고리 전체를 대상으로 할 때는 라우트 한 곳에서 처리하는 편이 확실합니다.

// app/prompts/[slug]/page.tsx
export async function generateMetadata(): Promise<Metadata> {
  return {
    // 색인은 막고 링크는 따라가게 둔다 — 내부 링크 가치는 유지된다
    robots: { index: false, follow: true },
    // ...
  };
}

follow: true가 중요합니다. nofollow까지 걸면 이 페이지들이 가리키는 내부 문서로 이어지는 경로까지 끊깁니다. 노출을 막는 것과 연결을 끊는 것은 다른 일입니다.

5.4 사이트맵 동기화

색인에서 뺀 페이지가 사이트맵에 남아 있으면 모순된 신호를 보내게 됩니다. 사이트맵은 "이 페이지들을 색인해 주세요"라는 요청이기 때문입니다. 자사는 이 정리로 사이트맵이 496개에서 362개로 감소했습니다.

숫자가 줄어드는 것을 손해로 느끼기 쉽지만, 사이트맵의 목적은 크기 자랑이 아니라 "우리가 색인되기를 원하는 페이지 목록"의 정확도입니다.

5.5 대표 스니펫 오염이라는 별도 문제

부수적으로 발견한 문제가 하나 더 있었습니다. 포트폴리오에 실린 특정 프로젝트 설명의 업종 용어가 검색 결과에서 홈 대표 스니펫으로 채택되어, 사이트 전체가 그 업종의 사이트처럼 보이고 있었습니다.

이는 두께나 발행 패턴과 무관한, 완전히 다른 경로의 문제입니다. 조치도 달랐습니다. 해당 사례를 삭제하지 않고 상세 페이지만 색인에서 제외한 뒤, 노출되는 문구를 업종 용어 대신 제작 과정 서술로 교체했습니다.

점검 방법: site:도메인 검색으로 홈이 어떤 문장으로 요약되는지 직접 확인하십시오. 우리가 의도한 소개 문구와 다른 문장이 뽑혀 있는 경우가 생각보다 흔합니다.


6. 한계와 반증 조건

6.1 이 보고의 한계

  1. 사례 수 1. 사이트 한 곳의 관측이며 대조군이 없습니다. 4.6절의 주의선은 통계적으로 검증된 임계값이 아니라 실무 눈금입니다.
  2. 결과 미확정. 재심사 요청은 제출됐고 콘솔 상태는 "검토 중"으로 전환됐으나, 승인 여부는 본 글 작성 시점에 알 수 없습니다.
  3. 인과가 아니라 정합. 관측된 패턴이 공표 정책과 맞아떨어진다는 것이지, 그 패턴이 반려의 원인이라고 증명한 것은 아닙니다. 심사 내부 기준은 공개되지 않습니다.
  4. 혼입 요인. 색인 정리, 문구 교체, 사이트맵 축소를 같은 시점에 함께 적용했기 때문에, 결과가 나오더라도 어느 조치가 기여했는지 분리할 수 없습니다.

6.2 이 진단이 틀렸다면 나타날 신호

정직한 보고는 자기 주장이 깨지는 조건을 미리 적어야 합니다.

  • 재심사가 같은 사유로 다시 반려된다면: 문제는 학습·프롬프트 묶음이 아니라 다른 곳에 있습니다. 다음 후보는 학습 157편(중앙값 4,034자, DDR 84.1%)이고, 그다음은 블로그 초기 대량 발행분입니다.
  • 색인 정리 후 검색 유입이 크게 떨어진다면: 해당 페이지들이 실제로는 유효한 진입점이었다는 뜻이므로, 색인 제거 대신 보강이 옳은 선택이었습니다.
  • 아무것도 바꾸지 않았는데 승인된다면: 심사 편차가 지표보다 큰 요인이라는 뜻이며, 본 보고의 실용적 가치는 그만큼 줄어듭니다.

7. 운영 규칙으로 남기기

진단보다 오래 남는 것은 습관입니다. 같은 상황을 다시 만들지 않기 위해 세 가지를 규칙으로 고정했습니다.

규칙 1 — 하루 발행 상한. 새 문서는 하루 한두 편을 넘기지 않습니다. 열 편이 준비돼 있어도 열흘에 나눠 올립니다. PBR₁을 15% 아래로 유지하는 가장 단순한 방법입니다.

규칙 2 — 날짜는 실제 발행일로. 일괄 생성하더라도 date는 문서마다 다른 실제 발행일을 적습니다. 이 값이 그대로 구조화 데이터로 나간다는 사실을 기억하십시오.

규칙 3 — 새 카테고리는 두께 기준선을 먼저 정한다. 카테고리를 새로 열 때 "이 분류의 문서는 최소 몇 자, 어떤 섹션을 갖는다"를 먼저 정합니다. 기준 없이 100편을 만든 뒤에 두께를 재면, 그때는 고칠 대상이 100편입니다.


8. 결론

애드센스의 "가치가 별로 없는 콘텐츠"는 개별 글에 대한 평가처럼 읽히지만, 실제로는 묶음의 형태에 대한 평가로 작동합니다. 그래서 좋은 글을 몇 편 더 쓰는 것으로는 잘 뒤집히지 않습니다.

자가진단의 출발점은 자기 글을 다시 읽는 것이 아니라 저장소를 세는 것입니다. 하루에 몇 편이 생겼는가, 몇 편이 같은 날짜를 신고하고 있는가, 카테고리별 중앙값 두께는 얼마인가, 같은 섹션 제목을 몇 퍼센트가 공유하는가. 네 질문의 답은 명령 한 줄씩이면 나오고, 감으로는 절대 나오지 않습니다.

그리고 조치를 고를 때는 노출과 가치를 분리해서 생각하십시오. 검색에서 빼는 것과 없애는 것은 다른 일이고, 대부분의 경우 필요한 것은 앞쪽입니다.

관련해서, 색인 자체가 안 되고 있는 단계라면 네이버·구글에 회사 홈페이지가 안 나올 때를 먼저 보시고, ads.txt와 서치콘솔을 함께 점검하는 순서는 ads.txt 올렸다고 끝?에 정리해 두었습니다.


부록 A. 재현용 명령 모음

자기 저장소에서 네 지표를 한 번에 뽑는 명령입니다. 경로만 바꿔 쓰십시오.

# 1. 카테고리별 문서 수와 두께 분포
for d in content/*/; do
  n=$(ls "$d" | wc -l)
  med=$(for f in "$d"*; do wc -m < "$f"; done | sort -n \
        | awk '{a[NR]=$1} END{print a[int((NR+1)/2)]}')
  echo "$d n=$n median=$med"
done

# 2. 발행 집중률 — 커밋 기록 기준
git log --diff-filter=A --name-only --format='%cd' --date=short -- content \
  | awk '/^2/{d=$0; next} /content\//{print d}' | sort | uniq -c | sort -rn | head

# 3. 날짜 동일률 — 프런트매터 기준
grep -rh '^date:' content/ | sort | uniq -c | sort -rn | head

# 4. 템플릿 공유율
grep -rh '^## ' content/<대상디렉터리>/ | sort | uniq -c | sort -rn | head

부록 B. 참고 자료

  • Google Search Central, What web creators should know about our March 2024 core update and new spam policies — 대규모 콘텐츠 남용 정책의 원문 설명. 원문
  • Google 검색 스팸 정책 — 대규모 콘텐츠 남용, 사이트 평판 남용, 만료 도메인 남용 항목.
  • Google AdSense 프로그램 정책 — 콘텐츠 요건.

궁금한 점이 있으신가요?

협업·의뢰는 아래로, 가벼운 소통은 인스타그램 @bluefox._.hi도 환영이에요.

비용이 궁금하면 외주 계산기로 먼저 확인해보세요.