aimake.log
인프라

애드센스가 “가치 없는 콘텐츠”로 거절했을 때 — 얇은 페이지 56개 걷어낸 기록 (만들기 07)

Cloudflare Pages에 배포까지 끝내고 3주쯤 굴린 뒤 애드센스를 신청했습니다. "검토 중"이 며칠 이어지다 결과가 왔습니다. 가치가 별로 없는 콘텐츠승인되지 않은 사이트에 관한 문제를 해결한 후 다시 검토를 요청할 수 있습니다. 한 줄이…

2026.08.13 11 MIN
세 줄 요약

애드센스 거절 사유 “가치가 별로 없는 콘텐츠”는 글이 부실하다는 뜻이 아닐 수 있습니다. 제 경우 원인은 글 17편이 아니라 같이 딸려 나간 빈 페이지 56개였습니다.

사이트 전체 82페이지의 본문 글자 수를 세어봤더니 68%가 800자 미만, 그중 49개는 300자도 안 됐습니다. 대부분 글 1편만 걸린 태그 아카이브였습니다.

Yoast의 noindex검색 색인만 막을 뿐 애드센스 크롤러는 그대로 봅니다. 얇은 페이지는 감추는 게 아니라 삭제해야 합니다.

Cloudflare Pages에 배포까지 끝내고 3주쯤 굴린 뒤 애드센스를 신청했습니다. “검토 중”이 며칠 이어지다 결과가 왔습니다.

가치가 별로 없는 콘텐츠
승인되지 않은 사이트에 관한 문제를 해결한 후 다시 검토를 요청할 수 있습니다.

한 줄이 전부였습니다. 어느 페이지가 문제인지, 뭘 고쳐야 하는지는 안 알려줍니다. 처음엔 글이 부실한 줄 알고 본문을 늘릴 궁리를 했는데, 범인은 제가 쓰지도 않은 페이지들이었습니다.

애드센스는 “글”이 아니라 “사이트”를 본다

착각의 출발점이 여기였습니다. 저는 제 사이트가 글 17편이라고 생각했습니다. 하지만 크롤러가 보는 aimake.log는 그게 아니었습니다.

워드프레스는 글을 하나 쓸 때마다 페이지를 여러 개 같이 만듭니다. 카테고리 아카이브, 태그 아카이브, 작성자 아카이브, 검색 페이지, 목록 페이지네이션. 전부 200 응답으로 살아 있는 정상 주소입니다.

글 1편이 만들어내는 페이지들글 1편을 쓰면 페이지는 몇 개가 생길까글 1편 발행내가 쓴 것태그 아카이브달아둔 태그 수만큼카테고리 아카이브글이 속한 분류작성자 아카이브1인 블로그엔 무의미목록 페이지네이션글이 늘면 /page/2/워드프레스가대신 만들어주는 것전부 200 응답= 크롤러 눈엔내 사이트의 일부심사 대상에 포함
글은 한 편인데 페이지는 네 종류가 더 생긴다 — 전부 200으로 응답한다

그래서 실제로 세어봤습니다. 정적 내보내기 결과물(build/)의 HTML을 전부 훑어 <main> 안쪽 텍스트 길이를 잰 스크립트입니다.

python3 - <<'PY'
import re, glob

def text(p):
    h = open(p, encoding='utf-8', errors='replace').read()
    h = re.sub(r'<(script|style|nav|footer|header)\b.*?</\1>', ' ', h, flags=re.S|re.I)
    m = re.search(r'<main.*?</main>', h, re.S)
    t = re.sub(r'<[^>]+>', ' ', m.group(0) if m else h)
    return re.sub(r'\s+', ' ', t).strip()

for p in sorted(glob.glob('build/**/*.html', recursive=True)):
    if '/wp-' in p: continue
    print(len(text(p)), p)
PY

결과가 이랬습니다.

구분 페이지 수 본문 길이
실제 글 17 2,500~7,700자
태그 아카이브 54 45개가 300자 미만, 나머지도 대부분 500자 안팎
작성자 아카이브 3 59자
검색 페이지 /find/ 1 2자
목록·카테고리·소개·정책 7 1,100~1,700자
합계 82

82페이지 중 56개(68%)가 본문 800자를 못 넘겼고, 그중 49개는 300자도 안 됐습니다. 사이트에 들어온 심사자가 무작위로 페이지를 열었다면, 열 번 중 일곱 번은 제목 한 줄만 덩그러니 있는 화면을 봤다는 뜻입니다.

82페이지 중 56개가 껍데기크롤러가 본 aimake.log — 82페이지본문 800자 이상 — 26개글 17편 + 목록·소개·정책 9800자 미만 껍데기 — 56개태그 52 · 작성자 3 · 검색 168%가 본문 800자를 못 넘김그중 49개는 300자도 안 됨
점 하나가 페이지 하나. 파란 점만 본문이 있는 페이지다

태그를 54개나 만든 게 왜 문제가 됐을까

글을 쓸 때마다 관련 단어를 태그로 달았습니다. 나중에 찾기 편할 것 같았거든요. 17편을 쓰는 동안 태그가 54개까지 늘었습니다.

문제는 태그마다 페이지가 하나씩 생긴다는 겁니다. 그리고 그 태그를 한 편만 달았다면, 그 페이지는 글 제목 한 줄이 전부입니다.

태그별로 글이 몇 편 걸려 있는지 세어봤습니다.

./tools/wp.sh term list post_tag --fields=name,count --format=csv \
  | awk -F, 'NR>1 && $NF<=1'
태그 상태 개수
글 2편 이상 걸린 태그 9
글 1편만 걸린 태그 45

54개 중 45개, 그러니까 83%가 1회용 태그였습니다. 각각이 100~300자짜리 페이지를 하나씩 만들고 있었습니다. 제가 만든 건 분류 체계가 아니라 빈 페이지 45장이었습니다.

noindex를 걸어놨는데 왜 안 통했을까

여기가 이 글에서 제일 값비싼 교훈입니다.

저는 Yoast SEO에서 작성자 아카이브와 검색 페이지에 이미 noindex를 걸어놨습니다. “검색엔진에 안 나오니까 없는 페이지나 마찬가지”라고 생각했습니다.

아닙니다.

noindex 는 애드센스 심사를 막지 못한다얇은 페이지를 없애는 세 가지 방법구글 검색 노출애드센스 심사1편짜리태그 페이지noindex검색 색인만 거부차단됨✕ 그대로 통과robots.txt 차단크롤링 거부, 링크는 남음차단됨△ 불완전페이지 삭제 (404)주소 자체가 사라짐차단됨✓ 심사에서 제외감추는 것과 없애는 것은 다르다 — 애드센스에 통하는 건 삭제뿐
noindex 는 검색 노출만 막는다 — 애드센스에 통하는 건 삭제뿐

noindex는 검색 결과에 표시하지 말라는 요청입니다. 크롤링을 막는 것도, 페이지를 없애는 것도 아닙니다. 애드센스 심사는 검색 색인 여부와 별개로 200으로 응답하는 페이지를 사이트의 일부로 봅니다.

조치 구글 검색에 노출 애드센스 심사 대상
noindex 안 됨 여전히 됨
robots.txt 차단 안 됨 크롤링은 막히나 링크는 남음
페이지 삭제(404) 안 됨 안 됨

즉 얇은 페이지에 대한 유일한 확실한 답은 감추기가 아니라 없애기입니다.

실제로 한 정리 4가지

① 1편짜리 태그 45개 삭제

가장 큰 덩어리부터 걷어냈습니다. 삭제 전에 DB부터 백업했습니다.

./tools/backup.sh
./tools/wp.sh term list post_tag --fields=term_id,name,count --format=csv \
  | awk -F, 'NR>1 && $NF<=1 {print $1}' \
  | xargs -n1 ./tools/wp.sh term delete post_tag

54개 → 9개. 남긴 9개는 전부 글이 2편 이상 걸린 태그라 아카이브에 목록다운 목록이 뜹니다.

앞으로의 규칙도 정했습니다 — 태그는 2편 이상 확보될 때만 만든다. 글 하나만 있는 주제는 태그를 달지 않습니다.

② 검색 페이지에 서버 렌더 목록 붙이기

/find/정적 내보내기 사이트라 Pagefind로 검색을 붙인 페이지입니다. 자바스크립트가 결과를 그리는 구조라 크롤러 눈에는 본문 2자짜리 빈 페이지였습니다.

템플릿(page-find.php)에 검색창 아래 전체 글 목록을 서버에서 미리 그려 넣었습니다.

$q = new WP_Query(['posts_per_page' => -1, 'orderby' => 'date']);
// 카테고리별로 묶어 제목·날짜·읽는 시간 출력

2자 → 1,129자. 글을 발행하면 자동으로 길어집니다. 사람에게도 이쪽이 낫습니다. 검색어를 안 쳐도 전체 목록이 보이니까요.

③ 빈 광고 슬롯 출력 자체를 막기

승인되면 바로 켤 수 있게 광고 자리를 미리 잡아뒀습니다(레이아웃이 밀리지 않게 자리는 미리 잡는 게 맞습니다). 그런데 display: none으로 감춰놨더니 HTML에는 이런 게 남아 있었습니다.

<div class="ad-slot"><span class="ad-label">광고</span><div class="slot"></div></div>

내용 없는 영역이 페이지마다 박혀 있는 셈입니다. CSS로 감추는 대신 출력 자체를 막도록 바꿨습니다.

define('AMK_ADS_ON', false);

function amk_ad($slot) {
    if (!AMK_ADS_ON) return;   // 승인 전엔 아무것도 내보내지 않음
    // …
}

승인되면 상수 하나만 true로 바꾸면 됩니다.

④ 작성자 아카이브 내보내기에서 제외

1인 블로그에서 작성자 아카이브는 존재 이유가 없습니다. 59자짜리가 3개 있었습니다. Simply Static의 urls_to_exclude/author/를 넣어 내보내기 단계에서 아예 빼고, _redirects로 홈에 301을 걸었습니다.

결과

같은 스크립트를 다시 돌렸습니다.

측정 정리 전 정리 후
전체 페이지 82 34
태그 54 9
800자 미만 페이지 56개 (68%) 7개 (21%)
/find/ 본문 2자 1,129자
빈 광고 슬롯 전 페이지 0

글은 한 편도 안 늘었는데 사이트 크기가 절반 이하로 줄었습니다. 그리고 그게 개선입니다. 애드센스가 보는 건 페이지 수가 아니라 평균 밀도니까요.

그런데 재검토는 아직 안 눌렀습니다

구조는 고쳤지만 버튼은 안 눌렀습니다. 이유는 정직하게 하나입니다 — 글이 부족합니다.

항목 현재
발행 글 17편
운영 기간 3주
일 방문자 3~5명

애드센스는 같은 사유로 재거절되면 다음 심사 주기가 크게 늘어납니다. 구조만 고치고 바로 다시 신청하면 이번엔 진짜로 “규모가 작다”는 이유로 걸릴 가능성이 큽니다. 그래서 25편을 넘긴 뒤에 누르기로 했습니다. 그때까지 할 일은 글쓰기 하나입니다.

정리

  1. “가치 없는 콘텐츠”는 글 품질 얘기가 아닐 수 있다 — 자동 생성 아카이브부터 세어볼 것
  2. 사이트 전체 페이지의 본문 글자 수를 실제로 재보라 — 감이 아니라 숫자로
  3. noindex는 애드센스를 막지 못한다 — 얇은 페이지는 감추지 말고 삭제
  4. 1편짜리 태그는 만들지 말 것 — 태그는 2편 이상 확보됐을 때
  5. JS로 그리는 페이지는 크롤러에겐 빈 페이지 — 서버 렌더 대체물을 넣을 것
  6. 승인 전 광고 자리는 CSS로 감추지 말고 출력을 막을 것
  7. 구조를 고쳤어도 글 수가 모자라면 재검토를 미루는 게 낫다

워드프레스로 블로그를 만들기 시작했을 때 신경 쓴 건 글과 디자인이었습니다. 정작 발목을 잡은 건 제가 만든 줄도 몰랐던 빈 페이지 56개였습니다.

검증 기록: 2026-08-13 실측. 정적 내보내기 결과 build/ 의 HTML 82개(정리 후 34개)를 <main> 텍스트 기준으로 전수 측정. 태그 수는 삭제 직전 백업 DB(db-20260813-1030.sql.gz)의 wp_term_taxonomy 를 파싱해 확인(post_tag 54개 중 count≤1 이 45개). 정리 후 수치는 재내보내기 후 동일 스크립트로 재측정.

Author

재박

AI로 뭔가를 만들다 막힌 지점과, 그걸 어떻게 뚫었는지 기록합니다.

RSS
구독
이어서 읽기
aimake.log AI로 실제 결과물 만드는 실전 기록 소개 개인정보처리방침 RSS