DEV Community

Cover image for Why I'm betting quality gates protect my AdSense approval better than content volume
MORINAGA
MORINAGA

Posted on

Why I'm betting quality gates protect my AdSense approval better than content volume

Four AdSense rejections across three sites will change your intuition about content strategy.

The standard advice for programmatic sites is volume: more pages means more potential entry points, more crawl events, faster indexing feedback. I followed that advice. The rejections tracked the page count up. The more content I had, the more there was for a reviewer to find fault with — and they found fault every time.

This article is my argument for the opposite bet: that fail-closed quality gates protect AdSense approval better than content velocity does. It's falsifiable, it has a deadline, and I'll name the conditions that would change my mind.

What "fail-closed" actually means in this codebase

A quality gate that produces a warning but still publishes is not a quality gate. It's a suggestion I'm free to ignore when I'm running a batch job at 7am.

Every article in this project goes through scripts/audit-articles.mjs before it reaches Dev.to, Hashnode, or Bluesky. The script checks:

  • Required frontmatter keys (title, description, tags, publish_to, and the quality_contract v2 keys)
  • Tags against an approved pool — anything outside it fails; "seo" fails by name
  • Cliché phrases (13 patterns: common AI-writing tells and marketing-speak that no editor would let through)
  • Body word count minimum
  • Fabricated metric patterns (regexes that catch suspiciously round numbers attached to words like "visits" or "users")

If any check fails, the script exits 1. The publish step in the workflow runs only if the audit exits 0. The file stays in the repo as a staged change but does not distribute.

The directory pages have a parallel gate. Pages that don't pass the three-tier quality ladder stay noindexed rather than removed — they exist but aren't surfaced to search engines until the content meets the minimum threshold.

The gate isn't blocking the majority of articles. In 107 published articles so far, every one has cleared. The gate isn't a band-aid for bad drafting — it's insurance against the tail case where an automated routine produces something that violates a rule I've set. One slipped cliché or one accidentally round visit-count won't make it through.

The volume counterargument, stated honestly

The case for volume-first is real. A site with 1,000 indexed pages has more surface area than a site with 100. Crawl frequency correlates with update frequency. Freshness signals exist.

There's also a subtler version: sentence uniqueness matters more than page count for AdSense review, and volume correlates with uniqueness if you're generating varied content. The argument isn't "more pages = approval" — it's "more diverse content = more signal that this isn't a thin-content farm."

I accepted this counterargument enough to continue generating content. I have 107 articles and three directory sites with multi-thousand-page indexed content. I haven't stopped publishing. The question is what I prioritize at the margin: does the next hour go into another article or into tightening the gate?

The empirical problem with volume-first is that it didn't work for me. Three separate applications, each submitted when the sites had more content than the previous one. The rejection reasons didn't cite "not enough pages." They cited low-value content signals: thin individual pages, template-similar entries, missing editorial context.

That's a quality problem, not a quantity problem.

What the rejection history actually told me

The four AdSense rejections clustered around three categories:

Category 1: Template-similar pages at scale. When the AI generates a hundred "Game X is similar to Game Y" pages using the same sentence structure, they're technically unique by character count but visually and semantically uniform. AdSense's automated review reads this as scaled content abuse — a bucket Google explicitly penalizes under its site quality guidelines and that has grown stricter since 2024.

Category 2: Missing editorial voice. The early directory pages had data (game price, Steam review count, similar-game links) but no reason why someone would prefer one option over another. They were information delivery without judgment. A page that only restates facts from a source doesn't add value in AdSense's model.

Category 3: No visible author or purpose. The EEAT transparency pages I eventually built — /about, /methodology, authorship declaration on articles — were absent in the first application cycles. The site looked like a content farm because there was no evidence of a person running it.

None of these failures would have been fixed by adding more pages. Adding more template-similar pages would have made category 1 worse. The fix for each was to improve the quality of what existed, not add to it.

Current gate coverage and what it doesn't catch

For articles, the audit script enforces six constraint classes. For directory pages, I have four separate QC scripts that run before pages enter the live index. For Bluesky posts, the four-gate QC filter rejects posts before they queue.

The pattern that emerged across all three publishing channels is the same: an automated pipeline without a gate will eventually produce something that violates a constraint I care about. A warning that doesn't block is not enforcement.

Here's the honest comparison between the two strategies at the page level:

Dimension Volume-first Gates-first
Indexed page count growth Fast Slow
Per-page quality floor Variable Enforced minimum
AdSense reviewer signal More entries to find problems in Fewer entries, each harder to reject
Freshness / crawl signal Stronger Weaker
Operator time cost ETL pipeline time Gate logic maintenance
AdSense application risk Higher variance per page Lower variance per page

I'm betting the right column wins at AdSense review time. The counter to this table is that "lower variance" doesn't mean the quality floor is high enough — it means it's consistently mediocre instead of inconsistently bad. This is the failure mode the gate doesn't catch, and it's the strongest version of the argument against this bet.

The gate tells me nothing is actively bad. It doesn't tell me anything is good. "No prohibited tags and no clichés" is a necessary condition for AdSense approval, not a sufficient one. If the floor is still below the bar, the gate has been clearing content that's uniformly mediocre.

Timeline and what would change my mind

The bet resolves at month 9 of this experiment, which is January 2027. By then, I expect at least one of the three sites to have cleared AdSense review. If none have, one of these conditions is probably responsible:

Condition A: The gate is solving the wrong problem. If rejections continue citing category 1 (template-similar pages) even after I've improved the article gate, the issue is at the directory page level, not the article level. The article gate is working; the page gate needs to be stricter.

Condition B: Volume is the actual constraint. If the rejection cites "insufficient content" for the first time, I've been wrong about what the reviewer is evaluating. I'll need to run the volume experiment I've been avoiding: generate aggressively for 60 days and reapply.

Condition C: EEAT is the constraint, not content quality. Author trust signals — inbound links, author profiles across the web, editorial recognition — might matter more than content quality beyond a floor. If this is the failure mode, the gate is necessary but not sufficient.

I'll write a month-9 update when I have a result. I did the same with the AI overviews vs directories bet from May — that one resolves at the same time horizon.

The affiliate revenue path is already running as a hedge. Affiliate beats AdSense for new directories at low traffic anyway — the gate bet doesn't hinge on AdSense approval for immediate monetization.

FAQ

Do the gates apply to every article, or only new ones?
Only new ones. The audit script runs as a pre-publish check in the CI workflow. Existing published articles aren't retroactively re-checked on each run. I ran a bulk audit once to baseline the existing set, but ongoing enforcement is only at the publish step.

What's the false positive rate on the fabricated metric regex?
Not zero. The pattern catches any round large number followed by words like "visitors" or "subscribers" — so a sentence citing a verified subscriber count would also trip it. In practice, I avoid citing any specific metric I haven't directly measured, so the gate's strictness is aligned with the content policy rather than creating real friction.

If all three sites get rejected at month 9, what's the fallback?
The current plan is affiliate monetization indefinitely, with a sale at month 12 based on traffic and content asset value rather than AdSense approval. The sale doesn't depend on AdSense being live.

Can you fail the gate and still publish manually?
Yes, by running the publish script directly outside CI. The gate is a CI guardrail, not a cryptographic lock. But the automated routine doesn't have a bypass — any failure stops the routine and requires a manual decision. For an automated publishing system, "requires a manual decision" is effectively a block.

What would prove the bet was right, not just lucky?
If the first site to clear AdSense review is the one with the strictest gate (no clichés, no fabricated metrics, no prohibited tags across all articles), rather than the one with the most pages, that's evidence for gates over volume. If the highest-page-count site clears first, I was wrong.


Part of an ongoing 6-month experiment running three AI-curated directory sites. The technical claims here are real; this article was AI-assisted.

Top comments (0)