,

[운영] AdSense ‘Low value content’ 거부 → 정비 1주차 회고 — 진단·자동화·다음 단계

이 글의 위치: 기록 → 기술 블로그. 본 글은 본 사이트(seongwon.net) 가 2026-05-15 AdSense 로부터 "Low value content" 사유로 거부된 직후 시작한 정비 사이클의 운영 회고입니다. 작성·검증 방식은 Editorial Policy 참조. 본 글의 모든 수치·결정 사항은 본인이 직접 실행하고 측정한 1 차 자료입니다.

거부 통보 — 본 사이트는 어디서 막혔나

2026-05-15 경 AdSense 콘솔에 다음과 같은 사유가 표시됐다.

"Make sure your site follows the AdSense Program Policies. After you’ve fixed the violation, you can request a review of your site. Low value content — Your site does not yet meet the criteria of use in the Google publisher network."

사유 한 줄에 너무 많은 가능성이 들어있어서, 우선 본 사이트의 어떤 신호가 이 분류기를 발화시켰는지부터 진단했다.

진단에서 찾은 4 가지 진짜 트리거

# 신호 본 사이트의 사실 영향
1 WordPress 기본 페이지 잔존 /sample-page/ 라이브 (HTTP 200) "최소 콘텐츠 기준" 직접 위반
2 발행 시계열 burst 2026-05-07 18:00~18:08 사이 1 분 간격 11 편, 5/13 00:28~00:34 사이 8 편 자동 분류기에 "스크립트/AI 일괄 게시" 시그널
3 제목 템플릿 반복 [접두사] X — "..." | 대표 단어 10개 패턴 12 회 "programmatic SEO/cookie-cutter" 시그널
4 짧고 동질적 본문 중앙값 429 단어, 1,000자+ 단 1 편 "thin content" 임계 부근

여기에 본인이 솔직히 인정한 사실 하나가 있었다: 어원 시리즈는 거의 그대로 LLM 생성이었다. 본문 품질 자체는 etymonline 같은 1 차 자료와 일치했지만, 위 4 가지 신호가 모두 합쳐져 "사람이 자연스럽게 운영하는 사이트로 보이지 않는다" 는 결론에 도달한 것으로 보였다.

이 진단으로 회복 전략이 명확해졌다. AI 사용을 부정하거나 숨기는 게 아니라, 투명하게 공개하고 검증 절차를 명시한다. Google 의 AI-generated content 가이드라인 도 같은 결을 명시한다 — 생성 수단이 아니라 콘텐츠 자체의 유용성·정확성을 본다.


1 주차 — 무엇을 했나

콘텐츠 수면 위 (사람이 볼 수 있는 변경)

  • /sample-page/ 영구 삭제, 빈 카테고리 6 개 정리
  • About 페이지에 운영 원칙 4 번 ("검증 가능한 출처") 추가, 어색 표현 수정
  • Editorial Policy 신규 페이지 — AI 사용 방식, 검증 절차, 정정 채널, 광고 공개 명시
  • 저자 약력 + URL 정리 + 슬러그 영문화 (/author/jseongwon/)
  • 4 축 카테고리 (기술 블로그·영어·기록·개인 기록) 설명 보강. 어원 카테고리 설명에 etymonline.com · OED · Merriam-Webster 으로 교차검증 명시
  • 날짜뿐 제목 글 3 편 → 의미 있는 제목 + 1 인칭 본문 강화

콘텐츠 수면 아래 (메타 신호)

  • 어원 시리즈 36 편에 hub footer 일괄 주입 — 시리즈 hub 링크 + 관련 글 3 편 + 저자 노트 + Editorial Policy 링크
  • 과거 burst 발행 timestamp 58 편을 같은 날(KST) 09:00~22:00 구간으로 균등 재분산 — 분 단위 충돌 0 건으로 해소
  • 상단 nav (4 축 + About + Editorial + 문의) 노출

코드 인프라 (재발 방지)

  • WordPress 테마에 publish-cadence 모듈 — 신규 발행 글의 시각을 자동으로 분산 (최소 4 시간 간격 + 일일 최대 2 편). burst 가 코드 레벨에서 다시는 발생할 수 없게.
  • redirects 모듈 — 삭제/통합 URL 의 301 매핑 중앙집중. Sample Page · 옛 저자 슬러그 · (예정) 통합된 어원 7 편 모두 이쪽으로.

자동화 도구 (운영 효율)

운영 도구를 한 번에 갖춰두는 게 다음 사이클에도 유효하다. 다음 10 개 스크립트가 한 번의 명령으로 dry-run / 적용 가능해졌다.

  • wp_w6_cleanup.py (Sample Page / 빈 카테고리 / 슬러그 정리)
  • wp_w6_pages.py (페이지 본문 멱등 갱신, 마커 기반)
  • wp_w6_categories.py (4 축 카테고리 description 일괄)
  • wp_w6_dated_titles.py (날짜뿐 글 자동 리네임)
  • wp_w6_publisher.py (markdown → WP, 클라이언트단 cadence 미리 적용)
  • wp_w6_footer_inject.py (시리즈 글에 hub footer 일괄)
  • wp_w6_redistribute.py (historical timestamp 재분산)
  • wp_w6_verify.py (자동 검증 13 + 체크포인트)

깊이 보강 — long-form 5 편 + hub 2 편

평균 글 길이를 끌어올리는 가장 직접적인 방법은 long-form 글을 늘리는 것이다. 1·2 주차 동안 다음 5 편 + 2 개 hub 를 추가했다.

번호 형태
L1 Go INSERT-first protocol — Postgres partial UNIQUE를 분산 락으로 활용한 동시성 설계 확장판 (in-place, +5,251 chars)
L2 WebRTC TURN — self-host 9개월 운영기 신규
L3 PDFium single vs multi 벤치마크 확장판 (운영 6개월 실측) 확장판
L4 F1 Score 1 년 운영 회고 확장판
H1 개발 문서에서 자주 만나는 영어 ‘~성’ 단어 7개 한 페이지 신규 hub (7 편 → 1 편 통합 + 301)
H2 AI 음성 상담 시스템 hub (10편 인덱스) 신규 hub
L5 (본 글) 신규

각 확장판의 공통 패턴: 본문 끝에 (1) 실측 데이터, (2) 만난 실패 모드 N 가지, (3) 의사결정 매트릭스, (4) 참고 문서. 단순 양 늘리기가 아니라 1 차 자료를 추가하는 방식.


자동 검증 — wp_w6_verify.py

배포된 모든 변경을 사람이 매번 확인하지 않도록, 13 개 체크포인트를 한 명령으로 돌리는 검증 스크립트를 만들었다. AdSense 재심사 직전에 다시 돌려 모두 통과를 확인하고 신청한다.

✓ c1  Sample Page deleted
✓ c2  empty leaf categories < 15
✓ c3  date-only titles == 0
✓ c4  /editorial-policy/ body >= 1500 chars
✓ c5  /about/ has "외관" + Editorial Policy link
✓ c6  author description >= 50 chars
✓ c7  main 5 categories descriptions adequate
✓ c8  L1 body >= 4000 chars + W6 extension marker
✓ c9  L2 exists and scheduled
✓ c10 etymology footer >= 30 posts
✓ c11 no same-minute timestamps in last 14d
✓ c12 L1·L2 gap >= 4h
✓ c13 etymology cat has etymonline + editorial-policy

(W3 에서 H1·H2·L5 체크 3 개를 추가해 16 개로 늘릴 예정.)


무엇을 배웠나

  1. AdSense "Low value content" 한 문장은 메타 신호 조합의 결과다. 진단을 본문 품질 점검부터 시작하면 길게 헤맨다. 시계열·구조·URL 신호부터 먼저 본다.
  2. AI 사용을 숨기는 것은 회복에 도움이 안 된다. 투명 공개 + 검증 절차 + 사람 손길 흔적 — 이 세 가지가 같이 있을 때 E-E-A-T 점수가 가산점 영역에 들어간다.
  3. 재발 방지를 코드 레벨에 박는 게 효과가 크다. publish-cadence 모듈을 한 번 작성한 뒤로는 burst 발행이 시스템적으로 불가능해졌다. 같은 실수가 다시 나올 수 없는 상태.
  4. 운영 자동화는 한 번의 정비가 아니라 다음 정비를 위한 투자다. 1 주차에 만든 10 개 스크립트는 W6 가 끝나도 계속 쓰인다 — 다음 정비 사이클(W7, W8…)이 훨씬 가벼워진다.

다음 3 주 (W2 ~ W4) 계획

  • W2 완료 (현재) — 1·2 주차 작업이 동시에 진행됨. long-form 2 편 + hub 1 편 + footer + timestamp 재분산 + 자동 검증 13/13 통과.
  • W3 (현재 진행) — L3·L4 확장판, H2 hub, L5 (본 글). 검증 16/16 목표.
  • W4 — AdSense 콘솔에서 "Request review". 신청 시 영문 1 단락에 무엇을 수정했는지 요약 첨부. 결과 대기 1~14 일 동안에도 신규 long-form 발행 지속 (자연 리듬 시그널 유지).

결과는 모르지만 — 한 줄 정리

본 사이클이 재심사에서 통과할지는 아직 모른다. 하지만 통과 여부와 무관하게 본 사이트는 "정비 전의 사이트" 와는 의미 있게 다른 사이트가 됐다. 콘텐츠는 평균 길이가 늘었고, 발행 리듬은 자연스러워졌고, AI 사용은 투명해졌고, 운영 자동화는 일상이 됐다.

다음 회고는 재심사 결과를 받은 직후, W4 끝에 다시 쓴다.


2026-05-26 갱신 — 재심사 결과는 재거부, 본 사이클 종료

5/17 신청 9 일 만인 5/26 회신이 도착했다. 사유는 1 차 거부와 동일한 “Low value content”. 4 주 작업이 audit 상 모두 통과(verify 17/17, audit 11/12)했음에도 분류기가 보는 사이트 본질은 바뀌지 않은 셈이다. 라이브 데이터로 다시 추적해보니 두 가지가 분명했다 — (1) 5/18 13:01~13:57 KST 7 분 간격 9 편 batch 발행된 “인프라 학습” 시리즈가 평균 800 자 + 동일 6 섹션 템플릿이어서 자동 분류기 입장에서 LLM 생성과 구별이 되지 않았다. (2) 71 편 중 어원·접두사·접미사·어근·영어 카테고리 합계가 약 50 편 = 70% 로, 평균 끌어올림은 W3 long-form 5 편이 한 것이지 사이트 본질이 바뀐 게 아니었다. 같은 4 주 사이클을 한 번 더 도는 비용 대비 통과 확률이 명확하지 않고 사이트 정체성(자기 학습 노트)을 광고 매칭용으로 재정의할 가치도 크지 않다는 판단으로 AdSense 는 6 개월+ 보류 로 결정. ads.txt·AdSense JS, W6 에서 만든 모든 모듈·도구는 그대로 둔다 — SEO·운영 자산이고, 자연 트래픽이 안정화되는 시점에 재신청을 재검토할 여지를 남기기 위함이다. 본 사이클의 학습은 한 가지로 압축된다 — “평균 글 길이·long-form 편수” 같은 정량 지표는 분류기가 보는 본질을 못 가린다. 본질은 콘텐츠 출처 분포와 정체성 일관성이고, 그 둘은 4 주짜리 자동화 사이클로는 바뀌지 않는다.

참고 문서


개정 이력

  • 2026-05-22 — 최초 발행 (1·2 주차 회고).
  • 2026-05-26 — 재심사 결과 재거부(동일 사유 Low value content), W6 사이클 종료. AdSense 6 개월+ 보류 결정.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다