Glossary

Programmatic SEO, and when it becomes doorway pages

Generating many pages from one data set works when each page carries data only you have. It fails when they are one page renamed.

Published September 3, 2026 Read as Markdown

Programmatic SEO is generating many pages from a structured data set, one per entity or combination, so each can rank for a specific long-tail query. It works when each page answers a real question with data only that page carries. It fails when the pages are one page with the nouns swapped.

Why it works when it works

Somebody types a very specific question. There are millions of such questions and no team writes millions of pages by hand. If you hold the data that answers a whole family of them, generating the pages is the only sane way to publish it.

The condition is the data. A page per product, built from a data set that nobody else has, is a real page. A page per product, built from a template and a name, is not.

Where it turns into doorway pages

Search engines call the failure mode scaled content abuse, and the mechanism is worth understanding because the penalty is not page by page. A large set of near-identical pages can drag down the pages on the same domain that were fine.

The tell is measurable. Take every page, split it into sentences, and count how many of each page's words appear in sentences that also appear on several other pages.

We ran that on this library while building it and did not like the answer. The 18 sector playbooks were 48% shared text, and three identical 80-word blocks appeared on all 134 product pages. That is the pattern, whatever the intent behind it.

What we changed, as a worked example

Four things, and they generalise.

Move repeated explanation to one page and link to it. The methodology paragraph appeared on every generated page. It is now one page and every other page points at it in a sentence. That is a footnote, which is normal, rather than duplication.

Derive the advice from the page's own data. The generic seven-step list on all 18 playbooks became three or four steps chosen from that sector's numbers: whether hand-written code is a real competitor there, whether the leader is attackable, whether the personas split.

State one conclusion, not every possibility. The product pages used to print both diagnoses, presence problem and integration problem, and let the reader pick. Now each page computes which one applies from its own consideration ratio and says only that.

Add data the page alone has. The pages for products that never won were the thinnest. They now carry a table of which agents raised the product and how often, which is data that exists nowhere else.

The result: playbooks from 48% to 27%, language pages from 36% to 22%, the whole library at 18%.

And publish fewer pages. We had 62 language-and-sector combinations that cleared a minimum run count. We published 5 language pages instead, each covering every category. Sixty-two thin pages would have ranked worse than five substantial ones.

The test to apply before generating anything

Four questions. A no to any of them means do not generate the set.

  1. Does somebody actually type this question? Not a plausible-sounding query. One you can find being asked.
  2. Does each page carry data that only it has? If two pages could be merged into one table without loss, publish the table.
  3. Would a reader be satisfied, or would they have preferred the list? If the list is better, the list is the page.
  4. Can you measure the shared text and defend the number? If you cannot measure it, you will not notice when it drifts.

The strongest defence is the boring one

Unique data. A page that reports something nobody else can report is a real page even when it came out of a template, because the value is in the content rather than the prose around it.

A page that reports nothing is a doorway page even when a person wrote it by hand.

Common questions

What is programmatic SEO?

Generating many pages from a structured data set, one per entity or combination, so each page can rank for a specific long-tail query. A page per product, per city, per integration.

When does programmatic SEO become doorway pages?

When the pages differ only in the entity name and add nothing a reader could not get from a list. Search engines call this scaled content abuse and filter it, and the filtering can drag down the pages that were fine.

How do you tell the difference?

Measure how much of each page's body text also appears on other pages. If most of a page is shared boilerplate with a name substituted, it is a doorway page whatever you intended.

What makes a generated page legitimate?

It answers a question somebody actually asks, with data that page alone carries, in enough depth that a reader would not have preferred a table. Unique data is the strongest defence.

Where this comes from

Armature ran 5,292 judged sessions with Claude Code, Codex and Cursor inside 51 realistic codebases, and published every run. The numbers on this page come from that work.

Read next

All library pages