PaperBleachPaperBleach
logo

Programmatic SEO With AI: How to Differentiate Pages So Google Doesn’t See Doorways

P
Paperbleach

03 Feb 2025

You can spin up 5,000 pages from a spreadsheet in an afternoon. The hard part isn’t generating them. It’s making sure Google sees 5,000 useful pages instead of one template wearing 5,000 hats.

That’s the doorway problem. And most people get it backwards: AI didn’t create it, and used the right way, AI is the cleanest fix for it.

Key takeaways

  • A doorway page isn’t defined by how it was made. It’s defined by whether a visitor gets something they couldn’t get from a near-identical sibling page.
  • AI doesn’t cause doorway problems. A rigid template with swapped variables does. AI can fix it by writing per-URL copy grounded in per-URL data.
  • Differentiation has to come from facts that change row to row, not from synonym shuffling or reworded boilerplate.
  • Google’s doorway guidance and its March 2024 scaled-content-abuse policy target the same thing: many pages, little unique value.
  • Run an n-gram overlap check across same-category pages before you publish, and noindex the rows that have nothing distinct to say.

What Google actually means by “doorway”

Google’s spam policy describes doorway abuse as pages created to rank for specific, similar queries that lead users to intermediate pages less useful than the final destination. The classic version is dozens of near-duplicate landing pages — “plumber in Dallas,” “plumber in Fort Worth,” “plumber in Arlington” — that say the same thing with the city name swapped, then push everyone to the same contact form.

Notice what’s missing from that definition: any mention of how the page was written. Google doesn’t care whether a human typed it or a model generated it. It cares whether the page exists for the reader or only for the crawler.

In March 2024, Google added a “scaled content abuse” policy that sharpened the point. It builds on the older “automatically generated content” rule, but the emphasis moved toward intent and value: producing many pages mainly to manipulate rankings, with little value for users, is the violation — whether a person, an automation, or an AI made them. Google’s own wording is that this applies “no matter how the content is created.” So the question is no longer “did a machine write this?” It’s “would a real person find this page distinctly useful, or is it interchangeable with its neighbors?”

That reframe matters, because it means programmatic SEO isn’t inherently risky. Substitutability is the risk.

Why old programmatic SEO felt like doorways

The original programmatic playbook was basically mail merge. One template, one paragraph of copy, and a {variable} swapped in per row. The structured-data slot might be real, but the prose wrapping it was identical across every URL.

Here’s roughly how it read on every page:

> Looking for the best CRM in {city}? Our platform helps businesses in {city} grow. With powerful features built for {city} teams, there’s no better choice in {city}.

Swap the token and you’ve got a thousand pages a reader can’t tell apart. That’s a doorway set even if a human wrote the template by hand. The pages share closing lines, share value props, and give you no reason to visit more than one. Google’s quality signals pick up on that overlap fast.

The old fix was expensive: hire writers to give each page a genuinely different intro and a real local angle. At a thousand pages, nobody did that, so the whole category earned a bad name.

How AI changes the math, if you ground it

A language model fed each row’s actual data can write a distinct intro, a distinct “why this matters here” section, and distinct FAQs for every URL — the work that used to be too expensive to do by hand. That’s the legitimate use. The catch lives in one word: *grounded*.

The data layer stays the source of truth. The model handles phrasing, structure, and emphasis. It doesn’t invent the facts. Let it freewheel and it’ll produce fluent paragraphs that say nothing specific, and you’re right back to interchangeable copy — just with fancier vocabulary. Reworded boilerplate is still boilerplate.

Two failure modes look alike from the outside but come from opposite directions:

  • Template sameness. Same words, swapped tokens. Reads robotic and repetitive.
  • Ungrounded AI fluff. Different words every time, but no real per-page facts. Reads smooth and empty.

Both produce thin, substitutable pages. The first is obvious to a regex scan. The second slips past word-count checks and only shows up when you ask, “what does this page tell me that the last one didn’t?” For why shallow AI copy underperforms in the first place, see why thin, unedited AI pages read shallow and hurt SEO.

A concrete example: cost-of-living city pages

Say you’re building 800 city pages for a relocation tool. (The numbers below are made up for illustration — your real ones come from your data.) Here’s the gap between a doorway set and a defensible one.

Doorway version. Every page: “Thinking of moving to {city}? {city} is a great place to live with plenty to offer. Use our calculator to plan your move to {city}.” The only thing that changes is the name. A reader learns nothing about Austin they didn’t already learn about Boise.

Differentiated version. Each page is built on a row with real, distinct values: median rent, average commute time, state income tax, your own users’ median reported moving budget for that metro, the three nearest cities people also compared. The AI layer turns those numbers into prose that reads differently because the underlying facts are different:

> Renting a one-bedroom in Austin runs about $1,650 a month — roughly 40% more than Boise, the city our users most often weigh it against. Texas has no state income tax, which is the lever most movers in our data point to when the rent gap gives them pause.

You can’t copy-paste that paragraph onto the Boise page. The numbers force it to be unique, and those numbers are exactly what the visitor showed up for. The mechanical sameness that detectors and quality systems flag tends to track with flat, low-variance writing — the statistical fingerprint covered in how perplexity and burstiness reveal mechanical writing. Real, varied data breaks that pattern on its own.

The lesson generalizes: your differentiator is whatever data legitimately changes per row. If nothing meaningful changes, the page shouldn’t exist.

A pre-publish checklist to stay out of doorway territory

Run these before you ship a batch, not after Google ships you a ranking drop.

1. The substitution test

Pull two random pages from the same category and ask: if I deleted one and pointed its traffic at the other, would a visitor lose useful information? If the honest answer is “not really,” you’ve got a doorway set. Add per-row data or merge the pages.

2. N-gram overlap scan

Scan rendered pages for shared sentence tails and repeated paragraph structures across a category. If a phrase shows up on more than roughly a third of pages, it’s template residue. Replace it with row-specific detail, or prepare 8 to 15 semantic variants and cycle them so adjacent pages differ. Functional endings (“Austin’s no-income-tax rule changes the math for high earners”) beat evaluative ones (“Austin is a great choice”).

3. The evidence-block rule

Every page needs a block of real, structured, page-specific data — a table, a comparison, verified numbers. If a row can’t fill it, that row doesn’t get a published page.

4. A read-aloud spot-check on the prose

The intros and FAQs are where ungrounded fluff hides. Read a few aloud. If they could describe any row in the set, rewrite them against the actual data.

5. Prune and noindex aggressively

Better to publish 300 strong pages than 3,000 where 2,700 are interchangeable. Noindex or skip the thin rows. Crawl budget and site-wide quality signals both reward restraint. If you’re weighing whether scaled output is worth the build at all, our pricing page lays out where the per-page editing work actually pays off.

Frequently asked questions

Are AI-generated programmatic pages against Google’s guidelines? No. The policy is about value, not method. AI output that answers a real query with page-specific facts is fine; reworded boilerplate at scale is not, no matter who wrote it.

How is a doorway different from a normal landing page? A landing page serves the visitor. A doorway serves the crawler and funnels everyone to one destination. The tell is substitutability across a large cluster of near-identical URLs.

How much unique content does each page need? There’s no magic word count. A page with 200 words of real, distinct data beats 800 words of reworded template text. What matters is whether the unique parts are facts a reader cares about.

Can I check pages before publishing? Run an n-gram overlap scan for shared phrasing and apply the substitution test. Both are cheap and catch most doorway risk early.

The bottom line

Programmatic SEO gets penalized when pages are interchangeable, and AI is neutral on that question. It can make pages worse by generating fluent emptiness, or better by writing real, row-grounded copy at a scale humans never could. The deciding factor isn’t the tool. It’s whether each URL earns its place by telling a visitor something its neighbors can’t.

Want a quick gut-check on whether your body copy reads mechanically before you scale it across thousands of URLs? Run a sample through PaperBleach and watch for where the writing flattens out. For more on AI, detection, and search, browse more on AI, detection, and SEO.

Try it on your own text

Paste your draft into PaperBleach to humanize AI text so it reads naturally — then check your score against built-in AI detection. Free on your first run.