Programmatic SEO: When It Works, When It Backfires
Programmatic SEO can build thousands of pages that rank, or thousands that get your site classified as thin. The difference comes down to two tests you can apply before you generate anything.
Entities in this article
Programmatic SEO is the practice of generating many pages from a template and a dataset rather than writing each one by hand. Done well, it is how Zapier built tens of thousands of integration pages and how travel and real estate marketplaces cover every city, neighbourhood, and route they operate in.
Done badly, it is the fastest way to accumulate thousands of near-identical pages that dilute your site, waste crawl budget, and get the whole domain treated as low quality.
The technique itself is neutral. What determines the outcome is a question most teams skip: does each generated page have a reason to exist that a human would recognise? This article gives you two concrete tests for that, and the implementation detail that separates programmes that compound from programmes that get rolled back.
What Programmatic SEO Actually Is
The mechanics are simple. You have a dataset with rows. You have a page template with slots. You join them, and each row becomes a page.
A tool comparison site has a row per tool pair and generates “X vs Y” pages. A jobs marketplace has a row per role-and-city combination. An eCommerce retailer has a row per product attribute intersection and generates “waterproof hiking boots for wide feet” style pages beneath its main collections.
The appeal is obvious. One template plus one dataset produces coverage that would take a content team years to write. The demand you are capturing is real: long-tail queries collectively account for a very large share of search volume, and no manual content programme can economically address them one at a time.
The failure mode is equally obvious once you have seen it. If your dataset is thin, every page is thin, and you have industrialised the production of pages nobody needs.
The Two Tests
Before generating anything, run every proposed page type through both of these. A page type that fails either one should not be built.
Test One: Unique Data
Does each generated page contain substantive information that appears on no other page on your site?
Not a swapped noun. Not a different city name in the same three paragraphs. Actual differing content: distinct specifications, distinct pricing, distinct availability, distinct imagery, distinct user-contributed reviews, distinct data points.
The clean way to check this is to write out two adjacent pages from your dataset in full and read them side by side. If the only differences are the variable substitutions, the test has failed. A page about “plumbers in Bristol” that differs from “plumbers in Leeds” only by the city name has no reason to exist as a separate document, and search engines have been effective at identifying this pattern for well over a decade.
The strongest programmatic programmes are built on datasets that were expensive or difficult to assemble. That difficulty is the moat. If your dataset is something a competitor could reproduce in an afternoon with a spreadsheet, the pages built on it will not hold their positions.
Test Two: Unique Demand
Does each generated page correspond to a query real people actually issue?
This is where most programmes overreach. It is trivially easy to generate the full cartesian product of your variables. If you have 200 products and 50 cities, you can generate 10,000 pages. But search demand is never distributed evenly across a cartesian product. Perhaps 400 of those combinations have genuine query volume, and the other 9,600 are pages nobody will ever search for.
Generating all 10,000 does not give you 400 winners plus 9,600 harmless extras. It gives you 400 winners buried inside a site that now looks, in aggregate, like a low-quality automated property.
The discipline is to validate demand per combination before generation, and to build only the rows that clear a threshold. This is the step that turns programmatic SEO from a volume play into a precision one, and it is the step that gets skipped because it is the least fun part.
Our approach to this at the research stage is covered in more detail in commercial keyword research — the same demand-validation logic applies whether a page is written by hand or generated.
Where Programmatic SEO Genuinely Works
Some page types pass both tests structurally, almost by definition.
Marketplace inventory. If you have real listings, each listing page carries genuinely unique data by construction, and category-and-location pages aggregate real supply that changes over time. The dataset is the business.
Integration and compatibility pages. “Does X work with Y” is a question people really ask, and the answer differs materially per pair. Zapier’s programme works because each page documents an actual integration with actual triggers and actions.
Product attribute intersections in eCommerce. Filtered views like “merino base layers in tall sizes” pass both tests when you genuinely stock that intersection and when buyers genuinely search for it. This is closely related to category page SEO, and the same rules about indexation control apply.
Comparison and specification pages built on structured product data, where the specifications are real and differ meaningfully.
Data and statistics pages where you hold proprietary numbers that update over time.
Where It Backfires
Location pages for a business with one location. If you serve customers nationally from one place, generating a page per city produces content whose only variable is a place name you have no genuine connection to. This is the single most common programmatic failure in local service businesses.
Full cartesian products. As above. The combinatorial explosion is the enemy, not the friend.
Thin definitional glossaries generated at scale, where each entry is three sentences a model could produce and every competitor already has.
Pages built from a dataset you licensed that fifty other sites also licensed. Same data, same pages, no differentiation.
Implementation Details That Decide the Outcome
Passing both tests gets you a viable page type. These details decide whether it performs.
Control Indexation Deliberately
Generate broadly if it serves users, but index selectively. Pages that exist for navigation or filtering but have no independent search demand should be crawlable and useful while carrying noindex, or be canonicalised to the parent view.
This distinction matters more than almost anything else on this list. A faceted navigation system that lets a user filter to any combination is good UX. Letting search engines index all of those combinations is how sites end up with hundreds of thousands of URLs and a crawl budget problem.
Build Real Internal Link Paths
Generated pages that are only reachable from an XML sitemap tend to be crawled slowly and treated as peripheral. Each page needs a genuine position in the site’s link graph: reachable from a hub page, linking to relevant siblings, linking up to its parent.
Building these link paths as part of the generation logic rather than as an afterthought is what makes a programmatic set behave like a coherent section of the site rather than a detached appendix.
Set a Quality Floor and Enforce It
Some rows in your dataset will be sparse. A product with no reviews, no imagery, and three specification fields does not make a good page regardless of how good the template is.
Define a minimum data completeness threshold and simply do not generate pages for rows that fall below it. Revisit as the data improves. It is far easier to add pages later than to remove pages that have already been indexed and linked.
Add a Non-Templated Layer Where It Matters
For your highest-value combinations, a genuinely written section on top of the generated structure does a disproportionate amount of work. This is a hybrid model: template handles the structural and data-driven portions, a human or a carefully supervised editorial process handles the judgment portions.
The pages that consistently outperform in programmatic sets are almost always the ones that received this treatment.
Plan for Maintenance From Day One
Generated pages go stale in bulk. When your source data changes, thousands of pages change with it, and a schema error or a data pipeline failure propagates just as widely.
Programmes that survive have monitoring on the underlying dataset, a regeneration cadence, and an alert when the number of pages failing the quality floor starts climbing. Programmes that do not have these tend to degrade quietly for months before anyone notices.
Programmatic SEO and AI Search
One development worth flagging: generative search systems retrieve passages rather than whole pages, and they weight source consistency heavily. This cuts both ways for programmatic content.
The upside is that well-structured generated pages, with clear data in real tables and unambiguous specifications, are unusually easy for these systems to extract from. Structured data at scale is an asset here.
The downside is that inconsistency at scale is now more costly. If your generated pages contradict your product pages or your feed, you have industrialised the production of contradictions. Claim consistency, discussed in our piece on GEO versus SEO, needs to be enforced in the generation pipeline rather than audited page by page after the fact.
The Short Version
Programmatic SEO is a distribution mechanism, not a strategy. It multiplies whatever you feed it.
Feed it a genuinely differentiated dataset joined to validated demand, with deliberate indexation, real internal linking, an enforced quality floor, and a maintenance plan, and it produces coverage no manual programme could match economically.
Feed it a thin dataset and a cartesian product, and it produces exactly the outcome its critics describe.
The two tests are the whole thing. Unique data, unique demand. Run every proposed page type through both before you generate a single URL.
If you are weighing a programmatic programme and want an honest read on whether your dataset and your demand actually support it, that assessment is where we would start. Book a free strategy call and we will tell you what we would build and, more usefully, what we would not.