Programmatic SEO means building many pages from one template and a set of data, so each page answers one specific search. Done well, it serves thousands of real searches that no team could write by hand. Done badly, it is exactly what Google’s spam policies call scaled content abuse. The difference is simple: each page has to give the searcher something useful that they cannot get from the page next to it.
In this guide I explain how programmatic SEO works, where Google draws the line, and the process I follow to build pages at scale without putting a site at risk.
What Programmatic SEO Actually Is
Every programmatic SEO project has three parts:
- A search pattern. A phrase people search with one part that changes, like “plumber in [city]” or “[currency] to [currency] rate”.
- A dataset. A table where each row becomes one page and each column fills a part of the template.
- A template. One page design that pulls the right data into the right places.
Here are a few common patterns:
- Travel: “flights from [city] to [city]”, with prices, routes and travel times.
- Software: “[app] integration with [app]”, with what the connection does and how to set it up.
- Jobs and pay: “[job title] salary in [city]”, with pay ranges from real listings.
- Local services: “[service] in [area]”, with providers, prices and coverage.
- Tools and data: “[unit] to [unit] converter” or “[product] specs”, with calculators or spec tables.
You have probably used many of these pages without noticing they came from a template. That is the point. A good programmatic page feels like it was made for your exact search, because the data on it really is specific to that search.
Most of these patterns target long-tail searches: low-volume, specific phrases that add up to a lot of traffic. If you are new to this kind of keyword, my guide on finding and using long-tail keywords covers the basics.
Is Programmatic SEO Against Google’s Rules?
No. Google has no rule against templates or against making many pages. Large parts of the web, from shop category pages to weather pages, are built this way. What Google targets is the purpose and value of the pages, not the method used to make them.
Two of Google’s spam policies matter most here.
Scaled Content Abuse
Google added this policy in March 2024, when it replaced the older policy on spammy automatically generated content. It covers making many pages mainly to manipulate rankings rather than to help people. The key words are “no matter how it’s created”. Pages written by AI, by scripts or by a room full of freelancers are all judged the same way.
Google’s examples include generating many pages with AI or similar tools without adding value, scraping feeds or search results to build pages, stitching content from other sites together, and pages full of keywords that make little sense to a reader.
In January 2025, Google also added a section on scaled content abuse to its search quality rater guidelines. Raters do not change rankings directly, but this tells you how Google thinks about the topic.
Doorway Abuse
Doorways are pages made to rank for many similar searches that then push visitors somewhere else. Google’s examples include pages aimed at different cities or regions that all funnel people to one page, and many near-identical pages that look more like search results than a clear site structure.
This is the trap I see most often with location pages. A business that serves one area creates 200 “[service] in [town]” pages with the town name swapped and nothing else. Those pages are doorways, even if the business means well.
The Honest Test
When I review a programmatic SEO plan, I ask one question first: if Google did not exist, would we still build these pages for our users? If the answer is yes, because people browse them, compare them or use them inside the site, you are on safe ground. If the pages only make sense as search landing pages, the plan needs to change.
For more on how Google judges automated and AI text in general, see my article on what Google’s rules say about AI-generated content.
When Programmatic SEO Is a Good Fit (and When It Is Not)
Programmatic SEO works when three things are true at once.
- People search with a repeatable pattern. There are many variations, and each one gets at least some real searches.
- Each variation needs a different answer. The flight price from Delhi to Dubai is not the flight price from Delhi to London. If every variation has the same answer, you need one page, not hundreds.
- You have data that changes by variation. Ideally data you own or have collected yourself, like your own prices, stock, reviews, listings or usage numbers.
It is a poor fit when:
- The only thing that changes between pages is a word in the heading.
- Your “data” is copied from public sources that already rank well.
- The pages need deep expert judgment, like medical or legal advice, that a template cannot give.
- Your site is new, with little trust, and you plan to launch tens of thousands of pages at once.
In my experience, the third point under “good fit” decides most projects. Owning unique data is the real advantage. A template is easy to copy. A dataset you built over years is not.
How to Do Programmatic SEO Step by Step
This is the process I use. The steps are in order for a reason: most failed projects skip the first three and jump straight to building pages.
1. Find the Search Pattern
Start with a head term (the fixed part of the search) and list the modifiers (the parts that change). For example, the head term “salary” with modifiers for job titles and cities.
Use a keyword tool to pull every variation, then check the Performance report in Search Console for searches you already get impressions for. Your own data often shows patterns no tool lists.
2. Check the Intent for a Sample of Variations
Pick 20 to 30 variations and search each one in Google. Look at what ranks. Are the results individual pages for that exact variation, or one general guide? If Google shows one general guide for most of them, Google is telling you a set of separate pages is not what people want.
I also check whether the results differ between variations. If “accountant in Leeds” and “accountant in York” show almost the same pages, the searches may be closer than they look.
3. Build or Source the Dataset
This is the most important step, and the one I’d spend the most time on. Write down every field each page will show, and where that data comes from. Good sources include:
- Your own product, pricing, stock or booking data.
- Data your users create, like reviews, questions or listings.
- Data you collect, like surveys, tests or measurements.
- Licensed or public datasets, but only when you add something on top, like analysis, comparison or a tool.
Then check coverage. If half the rows are missing key fields, half your pages will be thin. Fix the data before you build anything.
4. Design the Template Around the User’s Task
Think about what someone searching “[service] in [area]” needs to do: compare options, check prices, see who covers their street, and contact someone. The template should help with that task, not just hold text.
Useful template parts include:
- A short, specific summary at the top built from the data (for example, the price range and number of providers).
- Tables, filters, maps or calculators that use the page’s own data.
- Sections that only appear when there is data for them.
- Links to closely related pages, like nearby areas or similar products.
5. Write Rules for Text and Empty Data
Avoid one paragraph with the keyword swapped in. Instead, write text blocks that change based on the data. A page with three providers should read differently from a page with forty.
Most importantly, decide what happens when data is missing. My rule of thumb: if a page does not meet a minimum amount of real data, it does not get published or it gets a noindex tag (a line of code that asks Google to keep the page out of search results). Here is a simple version of that logic:
if provider_count >= 3 and price_data is not empty:
publish page (indexable)
elif provider_count >= 1:
publish page with noindex
else:
do not create the page
6. Launch a Small Batch First
Do not publish everything on day one. I start with a batch of the variations with the best data, often a few hundred pages at most. Add them to an XML sitemap, link to them from your site, and wait.
Over the next few weeks, watch the Page indexing report in Search Console. If many pages sit in “Crawled – currently not indexed” or “Discovered – currently not indexed”, Google is not convinced the pages are worth indexing. That is a signal to improve the template or the data before you add more.
You can spot-check single pages with the URL Inspection tool to see how Google rendered them. My URL Inspection tool guide explains what each part of the result means.
7. Measure, Improve and Prune
Track clicks, impressions and conversions by page group, not page by page. Then act on what you see:
- Improve templates for groups that get impressions but few clicks.
- Merge or remove pages that never get indexed or never get visits.
- Keep data fresh. A price or availability page with old data is worse than no page.
The Technical Setup That Keeps Programmatic Pages Healthy
Big page counts create technical problems a small site never sees. These are the parts I check before launch.
Site Structure and Internal Links
Pages need a clear place in your site. Build browse pages that link down to them, like a country page that links to region pages, which link to city pages. This helps people and crawlers, and it is one of the clearest signs you are not building doorways.
Planning this structure is very close to planning topic clusters: a few strong hub pages, with many specific pages under them, all linked both ways.
Sitemaps
One XML sitemap file can hold up to 50,000 URLs and must be no larger than 50MB uncompressed. For bigger sites, split pages into several sitemaps, one per page type, and list them in a sitemap index file. Splitting by type also makes the Sitemaps report in Search Console much easier to read.
Duplicate and Near-Duplicate Pages
Filters and sorting often create many URLs with the same content. Pick one main version and point the others to it with a canonical tag (a line of code that tells Google which version of a page is the main one). If two variations would show the same data, like a town and its suburb, I’d make one page that covers both.
Crawl Budget
Google says crawl budget is mainly a concern for very large sites, roughly a million or more pages, or sites with many thousands of pages that change daily. Most programmatic projects are smaller than that. Still, if you create huge numbers of low-value URLs, Google may spend its time on those instead of your important pages.
Titles, Descriptions and Structured Data
Build titles and meta descriptions from the data, not just the keyword. “Plumbers in Leeds: 14 Local Firms, Prices From £60” is more useful than “Best Plumbers in Leeds”. If you add structured data, the values must match what the page shows.
Using AI in Programmatic SEO Without Crossing the Line
AI tools make it easy to write a unique-looking paragraph for every page. That is also why so many programmatic sites now get into trouble. Unique wording is not the same as unique value.
Here is how I think about AI in these projects:
- Good use: turning real data into a clear summary, like describing what the price range on a page means.
- Good use: helping write and test the template’s text blocks, which a person then reviews.
- Risky use: writing general paragraphs about a city or product that add nothing to the data.
- Bad use: inventing facts, reviews or details to fill pages where you have no data.
Google’s guidance on creating helpful, people-first content asks whether you are using extensive automation to produce content on many topics. It also asks whether readers would need to search again to get a better answer. I use those two questions as a final check on every template.
If you use AI to write text for each page, have a person read a random sample before launch and after every big change. AI makes confident mistakes, and at scale one bad prompt becomes thousands of wrong pages.
Signs Your Programmatic Pages Are Crossing the Line
This comparison is the quick check I use when reviewing a set of programmatic pages.
| Safe programmatic SEO | Scaled content abuse or doorways |
|---|---|
| Each page shows data specific to its variation | Pages differ only by a swapped word |
| Pages are part of a browseable site structure | Pages exist only as search landing pages |
| Data is owned, collected or clearly improved | Data is scraped or copied without adding value |
| Thin variations are merged, held back or noindexed | Every possible variation is published |
| Pages help the user finish a task on the page | Pages push users to one other page |
| Text explains the data | Text is filler written around the keyword |
If most of your pages sit in the right column, do not try to hide it with better wording. Cut the page count, merge variations and put the effort into data.
Common Programmatic SEO Mistakes
These are the mistakes I see most often when I look at sites built at scale:
- Starting with the template instead of the data. A nice design cannot save pages with nothing on them.
- Publishing every combination. Not every “[thing] in [place]” pair has searches or data. Many should never exist.
- Launching tens of thousands of pages at once. You lose the chance to learn from a small batch, and you may fill the index with weak pages.
- Orphan pages. Pages listed only in a sitemap, with no links from the rest of the site, often struggle to get indexed.
- Letting data go stale. Old prices, closed businesses and expired listings damage trust fast.
- Ignoring the rest of the site. If programmatic pages make up most of your site and they are weak, they can drag down how Google sees the site as a whole.
Conclusion
Programmatic SEO is not a trick and it is not banned. It is a way to answer many similar searches with pages that each carry real, specific information. Google’s line is about value: pages made at scale only to rank, with little to offer, fall under scaled content abuse or doorway abuse, however they were made.
If you want to try it, start small. Pick one search pattern, check the intent, build a solid dataset and launch a few hundred of your best pages. Watch how Google indexes them before you grow. And if you are planning the hub pages that will hold everything together, my guide to pillar pages and topic clusters is a good next read.



