Technical SEO

Programmatic SEO: scaling pages without producing spam

When template-generated pages work, when they get ignored, and how to build a programmatic set that survives quality updates: real data, real demand, real internal linking.

11 min read

The two halves that have to exist

Programmatic SEO is the practice of generating many pages from one template and one dataset. It works spectacularly when two conditions hold at once. First, there is a repeated query pattern with genuine demand: "flights from X to Y", "[job title] salary in [city]", "alternatives to [product]", "[framework] vs [framework]". Second, you hold a dataset that answers that pattern better than a human could write it one page at a time.

Remove either half and the model collapses. A dataset with no query pattern produces pages nobody searches for — a common outcome when a team exports whatever their database happens to contain. A query pattern with no dataset produces the other failure: a template with a variable name and three paragraphs of filler, which is the definition of scaled content abuse in Google's spam policies.

The honest test before writing any code is to ask what a single generated page will contain that a competitor could not write by hand in twenty minutes. If the answer is nothing, the programmatic approach is not going to fix that at scale — it will multiply it.

  • Query pattern with measurable demand across many variants
  • A dataset that genuinely answers that pattern
  • At least one fact per page that only you can supply
  • A reason for a human to bookmark or share the page
  • A plan for keeping the data current, not just correct today

Index selectivity: why 50,000 pages is usually the wrong answer

Search engines index selectively, and they judge a template by the aggregate quality of what it produces. Generate fifty thousand combinations where five thousand carry real data and forty-five thousand are near-empty, and the engine does not carefully index the good five thousand — it forms a view of the template and applies it broadly. This is the mechanism behind "Crawled — currently not indexed" reports that puzzle teams who assumed more pages meant more traffic.

The discipline is a publication threshold: a combination becomes a page only when it clears a minimum data bar. A city page needs enough listings; a comparison page needs both products to have populated attributes; a salary page needs enough observations to be statistically meaningful. Everything below the bar stays out of the index — not noindexed after the fact, but simply not generated as a crawlable URL.

This threshold is also what keeps crawl budget honest on large sites. A catalogue that generates a URL for every filter combination will consume its entire crawl allocation on pages nobody searches for, while the category pages that matter get fetched twice a year. Deciding which combinations deserve a URL is the same decision as deciding what to publish, and it belongs to the SEO team rather than to the ORM layer.

Making each page genuinely different

The difference between a programmatic set that ranks and one that gets ignored is how much of each page is variable. A template where only the title and one heading change produces near-duplicates; a template where the data, the counts, the comparisons, the related entities and the internal links all derive from the record produces pages that differ substantially even though they share a layout.

Practically, aim for several independent sources of variation on every page: the core data itself, an aggregate the reader cannot compute ("the median rate across 84 listings in this city"), a set of related entities computed from the dataset, and a section that only appears when the data supports it. Static boilerplate should be a minority of the visible text, not the majority.

Resist the temptation to fill the gap with generated prose. A paragraph of language-model filler about how important the topic is adds words, adds no information, and is exactly the pattern quality systems are tuned to notice. If a page needs more substance, the answer is more data or fewer pages — never more adjectives. Our guide on AI content and Google covers where generated text is legitimate and where it is a liability.

Architecture: hubs, links and the orphan problem

A programmatic set that exists only in the sitemap is a set of orphans. Sitemaps aid discovery; they do not confer importance, and pages nothing links to are crawled reluctantly and ranked poorly. The set needs a real navigational structure: hub pages by dimension (by city, by category, by attribute), each linking to its leaves, each linked from somewhere permanent.

The second structural requirement is lateral linking between leaves. A city page should link to neighbouring cities; a comparison page to the other comparisons involving the same product; a product page to its alternatives. This does more than distribute authority — it gives the crawler a path through the set that does not depend on a single hub, and it gives readers the next thing they actually want.

Pagination and faceting deserve the same care they get on an e-commerce catalogue, because a programmatic set is one. Keep paginated hubs crawlable with real URLs, avoid infinite scroll as the only path to the leaves, and be deliberate about which filter combinations become indexable pages. Our technical audit checklist covers the diagnostics for all three.

Shipping it: 200 pages, six weeks, then decide

The safest launch is a pilot. Publish two hundred pages covering the strongest segment of the dataset, link them properly, and then wait six weeks watching three numbers: what share got indexed, what share received impressions, and what the engagement looks like on the pages that received traffic. Those three answers tell you whether the template earns its place before you commit the crawl budget of the whole set.

Read the failures precisely. Low indexation means the pages are too thin or too similar — raise the data threshold. Good indexation with no impressions means the query pattern does not have the demand you assumed — fix the keyword research, not the template. Impressions with terrible engagement means the pages rank and disappoint, which is the most urgent failure because it teaches the engine something about the whole template.

When the pilot works, scale in batches rather than all at once, and keep the threshold. The programmatic sets that survive quality updates are the ones where somebody stayed willing to delete: retiring combinations whose data went stale, merging segments that split demand, and refusing the last twenty thousand pages that would have been technically possible and editorially indefensible.

Frequently asked questions

Is programmatic SEO against Google's guidelines?

Generating pages from a template is not itself a violation — most of the web's largest useful sites do it. What the spam policies target is scaled content abuse: pages created primarily to manipulate rankings that provide no value to users. The distinction is substance, not automation. If each page answers a real query with real data, the method of production is irrelevant.

How many programmatic pages can a site safely publish?

There is no count, only a ratio: how many of the pages carry enough data to be worth indexing. A site with strong authority can support tens of thousands of genuinely differentiated pages; a young domain publishing five thousand thin ones will struggle to get five hundred indexed. Start from the data threshold and let the count fall out of it.

Can I use AI to write the variable text on each page?

For formatting facts into readable sentences, yes — that is closer to templating than to writing. For manufacturing substance that the dataset does not contain, no: it produces plausible text with no information, which is precisely the pattern that gets a template devalued. The value of a programmatic page comes from the data, and no model can generate data you do not have.

What is the difference between programmatic SEO and doorway pages?

A doorway page exists to capture a query and funnel everyone to the same generic destination; it holds no information specific to its variant. A programmatic page holds data specific to its variant and is a legitimate destination in itself. The city-page test applies to both: if the page would be useless to someone standing in that city, it is a doorway page whatever the technology.

Read next