Taking one new project for Q4. Reach out.

Search

Programmatic SEO is a content model, not a growth hack

Generating ten thousand pages is the easy part and the part that gets penalised. The work is having something true to say on every one of them.

Programmatic SEO means generating pages from structured data rather than writing them individually. One template, one dataset, a page per row. Done well it captures search demand that nobody could reasonably write for by hand. Done badly it is the single fastest way to convince a search engine that your site is not worth crawling.

The difference is not the tooling. Generating pages is a weekend. The difference is whether each page has something true and specific on it, and that is a question about your data, not your templates.

The test a page has to pass

One question: could this page have been written about anything else by changing a few words?

If the answer is yes, it should not exist. A page whose only distinguishing feature is a city name substituted into three sentences is not a page about that city. Search engines have been able to detect that pattern for well over a decade, and the current generation of models — which is increasingly what is reading your site — is considerably better at it. The failure mode is not that the pages rank badly. It is that they teach a crawler to spend less time on your domain.

A page passes when it contains a fact that is genuinely different. Not a different noun: a different fact. Different price, different rule, different availability, different set of options, a different real number.

Which means it starts with the data

The honest sequence is backwards from how these projects usually run. Before any templates:

Find where the real variation is. You are looking for a dataset where rows meaningfully differ in ways someone would search for. Regulations that vary by jurisdiction. Compatibility that varies by model. Pricing that varies by tier. If your rows differ only by name, you do not have a programmatic SEO opportunity, you have a directory — which is a legitimate thing to build, but it is not this.

Confirm someone is searching for it. The combination has to have demand. Plenty of technically valid permutations have never been typed into a search box, and generating them is pure cost.

Decide who keeps it correct. This is the one that kills these projects. A generated page is a claim, and a thousand of them are a thousand claims that go stale together. If nobody owns the dataset, you have built a machine that manufactures wrong answers at scale — and if you publish structured data alongside them, you have made those wrong answers machine-readable.

Then the template is a writing problem

Templates fail by hedging. Copy written to be true for every row says nothing about any of them, because the only sentences that fit all cases are the ones with no content.

Write for the specific case instead and let the template carry the differences. That means conditional sections that only appear when the data supports them, real numbers rather than ranges, and a willingness to have pages of visibly different lengths. Uniform pages are a signal, and not a good one.

It also means writing the page that answers the question rather than the page that targets the phrase. Those used to be different documents. They are converging quickly, because the systems now summarising your content are reading for meaning rather than counting terms.

Publish fewer than you can

The number of pages you can generate and the number you should are different numbers, and the gap is where the judgment lives.

Set a quality floor in the pipeline — a row missing the fields that make its page worth reading does not get a page. Ship the strongest segment first and watch what search does with it before generating the rest. Keep a way to remove pages, and use it.

The uncomfortable truth is that the most valuable thing in a programmatic SEO system is usually the filter that stops most of the pages from being published. It is also the part that gets cut first, because it makes the deliverable look smaller. Sites that keep it get compounding traffic. Sites that cut it get a large number of pages and, eventually, an explanation to write about why the traffic went away.