Thousands of pages, one data source:
built, not written one by one
A programmatic SEO site answers thousands of narrow search queries: every city, every product variant, every comparison pair. One template and one data source do the work a writer would otherwise do page by page. We built a 973-page site this way for an AI persona business, and the client keeps the generator, not just the pages, in their own repository.
What it is
Programmatic SEO is a site structure where one template and one data source produce many pages on their own. A real estate site with a page per city and property type. A comparison site with a page per pair of products. A service directory with a page per location. The generator reads the data, fills the template, and outputs static HTML with its own sitemap entry, title and schema markup. No one writes each page by hand.
When you need it, and when you do not
It earns its cost when your audience searches in a repeating pattern: a city plus a product, two products compared, a use case with “best X” in front. You need a clean data source for that, or a way to build one. A 973-page build we ran for an AI persona business followed exactly this shape. It is also the right tool when a catalog or directory changes often enough that hand-written pages would fall out of date within weeks.
It is the wrong tool when your site needs five or ten genuinely different pages with real narrative content. That is just writing five or ten pages well, not a generator. And if the underlying data is messy or duplicated, the generator will faithfully turn out messy, duplicated pages, only faster. That is why we check the data first.
How we build it
We start from the data: a spreadsheet, a database export, or an API. From there we decide what the smallest unit of a page should be: one city, one product, one comparison pair. Each page needs enough real, distinct content to be worth Google’s time. The template is built around the actual search intent for that unit, not a generic fill-in-the-blanks block. Internal links connect each page to the nearest related ones, so the site forms a browsable structure instead of isolated leaves.
The build step turns the data into static HTML. It generates a sitemap and sets canonical tags, so near-duplicate pages do not compete with each other. It also applies schema.org markup matched to the page type: Product, LocalBusiness, FAQPage, whatever fits. We run a thin-content check across the generated set before launch. Any page that comes out too close to a bare template skeleton gets flagged, then either enriched or dropped from the build.
For sites with more than one page type, we document how to add a new one. The real value of this approach is that your team can keep extending it without commissioning a new project every time the catalog grows.
What to watch
The data source is the actual bottleneck, not the generator. If the underlying list has 40 percent duplicate or near-empty rows, the fix is cleaning the data, not tuning the template. A build this size also needs a real re-indexing plan with Google Search Console. A few thousand pages appearing overnight can get crawled unevenly without clear internal linking and a submitted sitemap. And programmatic pages decay faster than hand-written ones if nobody revisits the data. We set up the re-run step so updating is a command, not a project.
Price and timeline
| Option | Price | What it covers | Timeline |
|---|---|---|---|
| Single template, one data source | from $2,500 | Data pipeline, one template, sitemap, schema, launch | 2 to 3 weeks |
| Multi-template directory or catalog site | from $6,000 | Several page types, shared internal linking, data cleaning pass | 4 to 5 weeks |
Running cost is hosting only, usually under $20 a month for a static build, since there is no database query per page view.
Related
This pairs with multilingual site with hreflang when the same generated pages need to exist in several languages. It also pairs with Next.js app with server rendering when some pages in the same project need to be dynamic rather than static. See the SEO and content service page for the keyword research behind the templates, and the development service page for the build process. For a real example, see the AI persona business’s 973-page SEO site and the five-language Montenegro real estate site.
Have a data source that could become a few hundred search-ready pages? Get in touch and we will look at whether it is worth building.
FAQ
How much does a programmatic SEO build cost?
From $2,500 for a data pipeline, one or two templates, and the first page set live. That runs 2 to 5 weeks, depending on how many data sources feed it and how different the templates are from each other.
How long does it take?
2 to 3 weeks for a single template fed by one clean data source. Add a week or two if the data needs real cleaning first. Add more if there are several distinct page types, each needing its own template and linking rules.
What is the stack?
A static site generator, usually Next.js in static export mode or a Python-based generator, depending on the pipeline. It reads from a CSV, spreadsheet, database or API. The build produces plain HTML plus a sitemap and structured data per page.
Who owns the code?
You. The generator, the templates and the data pipeline script live in your repository. Adding a new row to the data source and re-running the build is something your own team can do without us, once we hand it over.
Does this risk a Google penalty for thin or duplicate content?
Only if it is built carelessly. That is why each template is written around a real search intent, with enough unique content per page, not a mail-merge of one paragraph. We run a thin-content check before launch and flag any page type that does not clear it.