콘텐츠 양보다 품질 게이트(Quality Gates)가 AdSense 승인을 더 잘 보호한다고 믿는 이유
요약
AdSense 승인을 위해 콘텐츠의 양보다 품질 게이트(Quality Gates)를 구축하는 것이 더 효과적임을 주장합니다. 자동화된 스크립트를 통해 상투적인 문구, 필수 메타데이터, 조작된 지표 등을 검사하여 기준 미달 시 게시를 차단하는 'fail-closed' 전략을 소개합니다.
핵심 포인트
- 콘텐츠 양을 늘리는 것보다 품질 검증 프로세스가 AdSense 승인에 유리함
- fail-closed 방식의 품질 게이트를 통해 기준 미달 콘텐츠의 자동 배포 차단
- 스크립트를 활용한 프론트매터, 상투적 문구, 지표 조작 패턴 자동 감사
- 품질 임계값을 충족하지 못한 페이지는 noindex 처리하여 리스크 관리
세 개의 사이트에서 겪은 네 번의 AdSense 거절은 당신의 콘텐츠 전략에 대한 직관을 바꿔놓을 것입니다.
프로그래매틱 사이트(programmatic sites)에 대한 표준적인 조언은 양(volume)입니다. 더 많은 페이지는 더 많은 잠재적 진입점, 더 많은 크롤링 이벤트(crawl events), 더 빠른 인덱싱 피드백을 의미합니다. 저도 그 조언을 따랐습니다. 하지만 거절 횟수는 페이지 수가 늘어남에 따라 함께 증가했습니다. 콘텐츠가 많아질수록 검토자가 결함을 찾아낼 여지도 많아졌고, 그들은 매번 결함을 찾아냈습니다.
이 글은 그 반대의 베팅에 대한 저의 주장입니다. 즉, fail-closed 품질 게이트(fail-closed quality gates)가 콘텐츠 속도(content velocity)보다 AdSense 승인을 더 잘 보호한다는 것입니다. 이는 반증 가능하며, 마감 기한이 있고, 제 생각을 바꿀 수 있는 조건들도 명시하겠습니다.
이 코드베이스에서 "fail-closed"가 실제로 의미하는 것
경고를 생성하지만 여전히 게시를 허용하는 품질 게이트는 품질 게이트가 아닙니다. 그것은 오전 7시에 배치 작업(batch job)을 실행할 때 제가 자유롭게 무시할 수 있는 제안일 뿐입니다.
이 프로젝트의 모든 기사는 Dev.to, Hashnode 또는 Bluesky에 도달하기 전에 scripts/audit-articles.mjs를 거칩니다. 이 스크립트는 다음 사항을 확인합니다:
- 필수 프론트매터(frontmatter) 키 (title, description, tags, publish_to, 그리고 quality_contract v2 키)
- 승인된 풀(pool)과 대조한 태그 — 범위를 벗어나는 모든 것은 실패하며, "seo"라는 이름도 실패 처리됩니다.
- 상투적인 문구 (13가지 패턴: 편집자라면 절대 통과시키지 않을 흔한 AI 작성 특징 및 마케팅 용어)
- 본문 최소 단어 수
- 조작된 지표 패턴 (regex를 사용하여 "visits" 또는 "users"와 같은 단어에 붙은 의심스러운 정수 패턴을 포착)
어떤 검사라도 실패하면 스크립트는 exit 1을 반환합니다. 워크플로우(workflow)의 게시 단계는 오직 감사가 exit 0으로 종료될 때만 실행됩니다. 파일은 스테이징된 변경 사항(staged change)으로서 저장소(repo)에 남아 있지만, 배포되지는 않습니다.
디렉토리 페이지에는 병렬적인 게이트(gate)가 존재합니다. 3단계 품질 사다리(three-tier quality ladder)를 통과하지 못한 페이지들은 삭제되는 대신 noindex 처리됩니다. 즉, 페이지는 존재하지만 콘텐츠가 최소 임계값(threshold)을 충족할 때까지 검색 엔진에 노출되지 않습니다.
이 게이트는 대다수의 기사를 차단하고 있지 않습니다. 지금까지 발행된 107개의 기사 중 모든 기사가 이를 통과했습니다. 게이트는 서툰 초안 작성을 위한 임시방편(band-aid)이 아닙니다. 자동화된 루틴이 제가 설정한 규칙을 위반하는 결과물을 생성할 수 있는 꼬리 위험(tail case)에 대비한 보험입니다. 실수로 포함된 상투적인 문구(cliché) 하나나 실수로 반올림된 방문 횟수(visit-count) 하나도 통과할 수 없습니다.
양(Volume)에 대한 반론, 솔직하게 말하자면
양을 우선시해야 한다는 논거는 실질적입니다. 1,000개의 페이지가 인덱싱된 사이트는 100개의 페이지가 있는 사이트보다 더 넓은 노출 면적(surface area)을 가집니다. 크롤링 빈도(crawl frequency)는 업데이트 빈도와 상관관계가 있으며, 최신성 신호(freshness signals)도 존재합니다.
또한 더 미묘한 버전의 논거도 있습니다. AdSense 심사에서는 페이지 수보다 문장의 고유성(sentence uniqueness)이 더 중요하며, 다양한 콘텐츠를 생성하고 있다면 양은 곧 고유성과 상관관계를 갖는다는 점입니다. 이 논거는 "페이지가 많을수록 = 승인"이라는 뜻이 아니라, "콘텐츠가 더 다양할수록 = 이것이 저품질 콘텐츠 농장(thin-content farm)이 아니라는 더 강력한 신호"라는 뜻입니다.
저는 콘텐츠 생성을 계속할 수 있을 만큼 이 반론을 충분히 수용했습니다. 저는 107개의 기사와 수천 페이지의 인덱싱된 콘텐츠를 보유한 3개의 디렉토리 사이트를 운영하고 있습니다. 발행을 멈추지 않았습니다. 문제는 한계 효용(at the margin) 측면에서 무엇을 우선시하느냐입니다. 다음 한 시간을 또 다른 기사를 쓰는 데 쓸 것인가, 아니면 게이트를 더 엄격하게 다듬는 데 쓸 것인가 하는 점입니다.
물량 우선(volume-first) 방식의 경험적인 문제는 그것이 저에게 통하지 않았다는 점입니다. 사이트에 이전보다 더 많은 콘텐츠가 쌓였을 때마다 각각 세 번의 별도 신청을 진행했습니다. 거절 사유에는 "페이지 부족"이 언급되지 않았습니다. 대신 저가치 콘텐츠 신호 (low-value content signals): 빈약한 개별 페이지, 템플릿과 유사한 항목, 편집적 맥락(editorial context)의 부재가 언급되었습니다.
이것은 양의 문제가 아니라 품질의 문제입니다.
거절 이력이 실제로 내게 알려준 것
네 번의 AdSense 거절은 세 가지 범주로 모였습니다.
카테고리 1: 대규모의 템플릿 유사 페이지. AI가 동일한 문장 구조를 사용하여 수백 개의 "게임 X는 게임 Y와 유사합니다"라는 페이지를 생성할 때, 이 페이지들은 글자 수 측면에서는 기술적으로 고유할지 모르나 시각적 및 의미론적으로는 균일합니다. AdSense의 자동 검토 시스템은 이를 대규모 콘텐츠 남용(scaled content abuse)으로 읽습니다. 이는 Google이 사이트 품질 가이드라인(site quality guidelines)에 따라 명시적으로 페널티를 부여하는 영역이며, 2024년 이후 더욱 엄격해졌습니다.
카테고리 2: 편집자의 목소리(editorial voice) 부재. 초기 디렉토리 페이지에는 데이터(게임 가격, Steam 리뷰 수, 유사 게임 링크)는 있었지만, 왜 누군가가 다른 옵션보다 특정 옵션을 선호해야 하는지에 대한 이유가 없었습니다. 그것들은 판단이 결여된 정보 전달에 불과했습니다. 출처의 사실을 단순히 재진술하기만 하는 페이지는 AdSense 모델에서 가치를 더하지 못합니다.
카테고리 3: 눈에 보이는 저자나 목적의 부재. 제가 결국 구축하게 된 EEAT 투명성 페이지 (EEAT transparency pages) — /about, /methodology, 기사 내 저자 선언 — 등은 첫 번째 신청 주기에는 없었습니다. 사이트를 운영하는 사람이 있다는 증거가 없었기 때문에, 사이트는 콘텐츠 팜(content farm)처럼 보였습니다.
이러한 실패들은 페이지를 더 추가한다고 해서 해결되지 않았을 것입니다. 템플릿과 유사한 페이지를 더 추가하는 것은 카테고리 1(category 1) 상황을 더 악화시켰을 것입니다. 각 문제에 대한 해결책은 콘텐츠를 추가하는 것이 아니라, 기존 콘텐츠의 품질을 개선하는 것이었습니다.
현재 게이트 커버리지(gate coverage)와 포착하지 못하는 것
기사(articles)의 경우, 감사 스크립트(audit script)가 6가지 제약 클래스(constraint classes)를 강제합니다. 디렉토리 페이지(directory pages)의 경우, 페이지가 라이브 인덱스(live index)에 진입하기 전에 실행되는 4개의 별도 QC 스크립트를 보유하고 있습니다. Bluesky 포스트의 경우, 4단계 게이트 QC 필터가 포스트가 대기열에 들어가기 전에 거절합니다.
세 가지 발행 채널 모두에서 나타난 패턴은 동일합니다. 게이트(gate)가 없는 자동화된 파이프라인(automated pipeline)은 결국 제가 중요하게 생각하는 제약 조건을 위반하는 무언가를 만들어내게 됩니다. 차단하지 않는 경고는 강제(enforcement)가 아닙니다.
페이지 수준에서 두 전략을 정직하게 비교하면 다음과 같습니다:
| 차원 | 볼륨 우선 (Volume-first) | 게이트 우선 (Gates-first) |
|---|---|---|
| 인덱싱된 페이지 수 성장 | 빠름 | 느림 |
| ... |
저는 AdSense 심사 시점에 오른쪽 열(Gates-first)이 승리할 것이라는 데 내기를 걸고 있습니다. 이 표에 대한 반론은 "낮은 분산(lower variance)"이 품질의 하한선(quality floor)이 충분히 높다는 것을 의미하지는 않는다는 점입니다. 즉, 품질이 일관되게 나쁜 대신 일관되게 평범하다는 것을 의미합니다. 이것이 게이트가 포착하지 못하는 실패 모드(failure mode)이며, 이 내기에 반대하는 가장 강력한 논거입니다.
게이트는 아무것도 적극적으로 나쁘지 않다는 것을 알려줄 뿐입니다. 무엇인가가 좋다는 것을 알려주지는 않습니다. "금지된 태그가 없고 상투적인 표현(clichés)이 없다"는 것은 AdSense 승인을 위한 필요조건(necessary condition)이지 충분조건(sufficient condition)은 아닙니다. 만약 하한선이 여전히 기준치 미만이라면, 게이트는 일률적으로 평범한 콘텐츠만을 통과시키고 있는 것입니다.
타임라인 및 내 생각을 바꿀 변수
이 내기의 결과는 실험 9개월 차인 2027년 1월에 결정됩니다. 그때까지 저는 세 개의 사이트 중 적어도 하나는 AdSense 심사를 통과할 것으로 예상합니다. 만약 하나도 통과하지 못한다면, 아마도 다음 조건 중 하나가 원인일 것입니다:
조건 A: 게이트(Gate)가 잘못된 문제를 해결하고 있는 경우. 만약 기사 게이트(article gate)를 개선한 후에도 카테고리 1(템플릿 유사 페이지)을 이유로 거절이 계속된다면, 문제는 기사 수준이 아니라 디렉토리 페이지(directory page) 수준에 있는 것입니다. 기사 게이트는 제대로 작동하고 있지만, 페이지 게이트(page gate)를 더 엄격하게 설정할 필요가 있습니다.
조건 B: 볼륨(Volume)이 실제 제약 사항인 경우. 만약 거절 사유로 처음으로 "콘텐츠 부족"이 언급된다면, 검토자가 무엇을 평가하고 있는지에 대해 제가 잘못 판단한 것입니다. 저는 그동안 피해왔던 볼륨 실험을 실행해야 합니다. 즉, 60일 동안 공격적으로 콘텐츠를 생성한 후 다시 신청하는 것입니다.
조건 C: 콘텐츠 품질이 아닌 EEAT가 제약 사항인 경우. 저자 신뢰 신호(Author trust signals) — 인바운드 링크(inbound links), 웹 전반에 걸친 저자 프로필, 편집적 인정(editorial recognition) — 가 일정 수준 이상의 콘텐츠 품질보다 더 중요할 수 있습니다. 만약 이것이 실패 모드라면, 게이트는 필요조건이지만 충분조건은 아닙니다.
결과가 나오면 9개월 차 업데이트를 작성하겠습니다. 저는 5월의 AI 개요 vs 디렉토리 베팅 때도 동일하게 했습니다. 그 건도 비슷한 시기에 결론이 납니다.
제휴 수익 경로는 이미 헤지(hedge)로서 운영되고 있습니다. 어차피 트래픽이 낮은 신규 디렉토리의 경우 제휴(Affiliate)가 AdSense보다 유리하므로, 게이트 베팅은 즉각적인 수익화를 위한 AdSense 승인 여부에 달려 있지 않습니다.
FAQ
게이트는 모든 기사에 적용되나요, 아니면 새로운 기사에만 적용되나요?
새로운 기사에만 적용됩니다. 감사 스크립트(audit script)는 CI 워크플로(workflow) 내에서 발행 전 체크(pre-publish check)로 실행됩니다. 이미 발행된 기존 기사들은 실행될 때마다 소급하여 재검사되지 않습니다. 기존 세트의 기준점(baseline)을 잡기 위해 일괄 감사(bulk audit)를 한 번 실행한 적은 있지만, 지속적인 강제 적용은 발행 단계에서만 이루어집니다.
조작된 지표 정규 표현식(fabricated metric regex)의 오탐률(false positive rate)은 얼마인가요?
만약 9개월 차에 세 사이트 모두 거절된다면, 차선책(fallback)은 무엇인가요?
현재 계획은 무기한으로 제휴 마케팅 수익화(affiliate monetization)를 진행하는 것이며, 12개월 차에는 AdSense 승인 여부가 아닌 트래픽과 콘텐츠 자산 가치(content asset value)를 기반으로 매각하는 것입니다. 매각은 AdSense가 활성화되어 있는지 여부에 의존하지 않습니다.
게이트(gate)를 통과하지 못해도 수동으로 게시할 수 있나요?
네, CI(지속적 통합) 외부에서 게시 스크립트(publish script)를 직접 실행함으로써 가능합니다. 게이트는 CI 가드레일(guardrail)이지, 암호학적 잠금(cryptographic lock)이 아닙니다. 하지만 자동화된 루틴(automated routine)에는 우회 방법이 없습니다. 어떤 실패든 루틴을 중단시키며 수동 결정(manual decision)을 요구합니다. 자동화된 게시 시스템에서 "수동 결정이 필요하다"는 것은 사실상 차단(block)을 의미합니다.
이 베팅이 단순히 운이 아니라 옳았음을 어떻게 증명할 수 있나요?
가장 많은 페이지를 보유한 사이트가 아니라, 가장 엄격한 게이트(클리셰 금지, 조작된 지표 금지, 모든 기사에 금지된 태그 금지)를 적용한 사이트가 AdSense 심사를 가장 먼저 통과한다면, 그것이 바로 양(volume)보다 게이트(gates)가 중요하다는 증거가 될 것입니다. 만약 페이지 수가 가장 많은 사이트가 가장 먼저 통과한다면, 제 생각이 틀린 것입니다.
세 개의 AI 큐레이션 디렉토리 사이트를 운영하는 6개월간의 진행 중인 실험의 일부입니다. 여기에 언급된 기술적 주장들은 실제이며, 이 글은 AI의 도움을 받아 작성되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기