
Short answer: To do programmatic SEO without creating thin pages, build each page from a template plus a dataset that gives it facts no other page has, publish only combinations with real search demand, set a written quality threshold that every row must pass before it becomes a page, and noindex, merge or remove anything that falls below it. Launch a small batch, review it by hand, then scale.
This guide is for SaaS teams, marketplaces, directories, ecommerce stores and SEOs who want to publish hundreds or thousands of pages from data without triggering Google’s spam systems. You will be able to judge whether a page pattern deserves to exist, size a project realistically with the calculator below, and run a pre-launch quality gate before a single page goes live.
What programmatic SEO is (and what it is not)
Programmatic SEO is the practice of generating a large set of search-targeted pages from a template and a database, so one design can serve many closely related queries. Every project has three parts:
- A head term and a set of modifiers. The head term is the thing (“hotels”, “CRM integration”, “tax calculator”) and the modifiers are the variables (“in Lahore”, “with Slack”, “for freelancers”). Together they form a repeatable keyword pattern.
- A dataset. A spreadsheet, database or API with one row per page and a column for every fact that page will show: prices, specifications, opening hours, reviews, coordinates, compatibility, counts.
- A template. A layout with fixed sections and slots the data fills, plus rules for titles, meta descriptions, headings, internal links and structured data.
Done well, it is how integration platforms rank for app pairs, money transfer services rank for currency conversions and property portals rank for neighbourhood searches. What it is not: swapping a city name into the same 600 words, or asking an AI model to “write a unique page” for each keyword with no new facts behind it. Those pages are technically different strings, but they say the same thing.
What Google’s spam policies now say
In March 2024 Google released a core update together with new spam policies. Google’s spam policies define scaled content abuse as generating many pages for the primary purpose of manipulating search rankings rather than helping users, and say this applies no matter how the content is created. The listed examples include using generative AI to produce many pages without adding value, scraping feeds or search results (including synonymising or translating them), stitching together content from other pages, and pages that contain search keywords but make little sense to a reader. Google’s announcement put it plainly: the policy targets content produced at scale to boost rankings “whether automation, humans or a combination are involved.”
Two older rules matter just as much for templated pages:
- Doorway abuse: Google’s examples include pages targeted at specific regions or cities that funnel users to one page, and substantially similar pages that are closer to search results than a clear, browsable hierarchy. That is the classic “[service] in [suburb]” project.
- Helpful content in core ranking: the same update folded the helpful content system into the core ranking systems, so unhelpful pages are judged at every core update. My breakdown of the March 2024 core update covers how that played out.
The honest summary: programmatic SEO is not banned. Google’s guidance on generative AI content warns against generating many pages without adding value, not against automation itself. What gets penalised is scale without substance. In my audits, the sites hit after 2024 shared the same symptoms: thousands of location or “best X for Y” pages with no unique data, thin or duplicated body copy, and Search Console showing most of them as “Crawled, currently not indexed” long before rankings dropped across the rest of the site.
Rather have an expert do this for you?
Hand it over and get back to running your business.
The four tests every programmatic page must pass
Before I build a template, I agree four rules with the client. If a row cannot pass all four, that page is not published, or it is published with noindex.
1. Unique data per page
Each page needs facts that exist only on that page and that a searcher wants. For a currency pair that is the rate, a rate history and fees by provider. For “[software] alternatives” it is the actual feature, pricing model and integration comparison. For “[service] in [city]” it is genuine local information: local regulations, delivery times, local reviews, the work you have actually done there. If the only thing that changes between two pages is the name in the heading, they are the same page.
2. Real demand per page
Every page should map to a query real people search, or a combination that is clearly useful even at low volume. Most long-tail combinations show “0 to 10” in keyword tools, so I also check Search Console impressions, autocomplete and on-site search. Multiplying every city by every service is how sites end up with 20,000 pages and a few hundred with any impressions.
3. A written quality threshold
I write the threshold as data rules, for example: at least eight of twelve fields populated, at least three reviews, at least one data point updated in the last 90 days, a minimum number of listings. A script checks each row before it becomes a page. This is the single most effective safeguard I know, because it stops empty pages at the source rather than after Google has crawled them.
4. Clear noindex and consolidation rules
Some pages help users navigate but are not worth indexing: a filter combination with two results, a location you serve but have nothing specific to say about. These can exist with noindex, follow. Where two combinations mean the same thing (“cheap” and “affordable”, “Karachi” and “KHI”), one should canonicalise to the other or not exist. I also set a rule for pages that fall below the threshold later, such as when listings sell out: they switch to noindex automatically or redirect to the parent category.
| Signal on the page | Thin programmatic page | Useful programmatic page |
|---|---|---|
| Body content | Same paragraphs with the modifier swapped | Sections built from row-specific data |
| Data | None, or copied from another site | Proprietary, licensed, or public data cleaned and combined in a new way |
| Demand | Every combination of two lists | Combinations validated by search and usage data |
| Freshness | Written once, never updated | Updated when the underlying data changes |
| Indexing | Everything in the sitemap | Only rows that pass the threshold |
| Internal links | Orphaned, or one giant list | Hub, sibling and parent links that help navigation |
How many pages should you actually publish?
Most programmatic plans start from the maximum possible number of pages. I start from the other end: how many combinations have demand, and how many of those have enough data to pass the threshold. The calculator below makes that visible before anyone builds anything.
Programmatic page sizing calculator
How to read it: the demand and data percentages are your own estimates from keyword research and a dataset audit. The bands are my working rules from projects, not Google thresholds. The point is to publish the indexable number, not the possible number.
How to do programmatic SEO step by step
Step 1: Find a repeatable keyword pattern
Start from the head terms your business can genuinely serve, then look for modifiers that create distinct intent. Patterns that tend to work:
- “[product] vs [product]” and “[product] alternatives” for SaaS
- “[tool] integration with [tool]” for platforms with an app marketplace
- “[currency] to [currency]” or “[unit] to [unit]” for calculators and converters
- “[category] in [city]” for directories and marketplaces with real listings
- “[template type] for [industry]” for template libraries
Use Keyword Planner, Ahrefs or Semrush for volumes, but read the results pages too. If the top results for a pattern are editorial guides, a templated page will struggle. If they are templated pages from strong data sites, your data must be at least as good. My keyword research guide covers clustering queries by intent before choosing a pattern.
Step 2: Build or source the dataset
The dataset is the product. Sources, from strongest to weakest: your own data (inventory, transactions, usage, reviews, case work), licensed data, public data you clean and combine in a way nobody else has, and scraped data, which I avoid because it is neither unique nor always permitted, and scraping is named in Google’s scaled content examples. Store it in a database, Airtable or a clean CSV with a column for every template field and a “last updated” date per row. Then validate it: duplicates, missing values, wrong units and outdated records all become visible errors on live pages.
Step 3: Design the template around the searcher’s task
Ask what someone searching “[A] to [B]” or “[service] in [city]” is trying to do, then design for that first. A good template usually has:
- A direct answer near the top: the rate, price range, verdict or count of options
- Data sections that change meaningfully between pages: tables, charts, lists, maps
- Conditional sections that render only when the row has data, so empty headings never appear
- Title and meta patterns that read naturally, with the modifier near the start
- Structured data that matches what is visible on the page; see my guide to schema markup
- Links to the parent hub, close siblings and the next logical step
If you use AI for any copy, use it to describe data already on the page (summarising a comparison table, explaining a trend), never to invent text where there is no data. My guide to AI-generated content and SEO covers where that line sits.
Worked example: two rows, one template
Imagine a B2B directory with the pattern “[service] companies in [city]”. Row 1, “packaging suppliers in Lahore”, has 14 verified listings, 31 reviews, minimum order quantities for 9 suppliers and a last update 20 days ago. Row 2, “packaging suppliers in Sukkur”, has 1 listing, no reviews and a last update 8 months ago. With the threshold “at least 5 listings, 3 reviews and an update in the last 90 days”, row 1 becomes an indexable page with a comparison table, a map and a review summary. Row 2 does not get a page; Sukkur listings appear on the Sindh region page instead until there is enough data. Without the threshold, both pages would share the same intro text and row 2 would be a doorway page.
Step 4: Generate a small batch and review it by hand
Publish 50 to 200 pages first, not 5,000. Read at least 20 of them as a user would: on mobile, arriving from a search result, with no context. Are they genuinely different from each other? Would you be happy if a customer landed on the weakest one? Fix the template and the threshold before scaling. In WordPress, Webflow or a custom stack the generation itself is the easy part; the review is what protects the domain.
Step 5: Plan internal linking and structure
Programmatic pages need a browsable hierarchy: a hub for the pattern, category or region pages beneath it, then individual pages. Breadcrumbs and contextual links from editorial content help Google find and understand them. Avoid footers with hundreds of links and pages that exist only in the sitemap. My guide to site architecture for SEO shows how to keep click depth shallow at scale.
Step 6: Control indexing and crawling
Put only threshold-passing pages in XML sitemaps, split by pattern, so you can see indexing rates per pattern in Search Console. Use noindex for user-only pages, canonicals for true duplicates and robots.txt only for areas you never want crawled (blocking a URL in robots.txt does not remove it from the index). Google’s crawl budget guide is aimed at sites of roughly 10,000+ pages with daily changes, 1 million+ pages, or a large share of URLs stuck in “Discovered, currently not indexed”. Programmatic projects reach those numbers quickly, so read my notes on crawl budget before you launch.
Step 7: Measure, prune and update
Track per pattern, not only per page: how many pages are indexed and how many have impressions, clicks and conversions after three to six months. Pages with no impressions after a fair period either need better data or should be merged, noindexed or removed; letting them pile up is how index bloat starts. Refresh the data on a schedule and log what changed, so you can connect updates to performance.
Pre-launch quality gate for programmatic pages
- Pattern validated: the results page for sample queries shows pages of the type you plan to build.
- Demand checked: each combination has search volume, impressions or a clear user need.
- Threshold written: minimum fields, counts and freshness that a row must meet.
- Threshold enforced in code: rows that fail do not become indexable pages.
- Unique data visible above the fold: the page answers the query with row-specific facts.
- No empty sections: conditional blocks hide when data is missing; no “0 results” pages.
- No placeholders: titles, headings and meta descriptions checked for leftover variables.
- Duplicates handled: synonymous combinations merged or canonicalised.
- AI text tied to data: any generated copy only explains facts already on the page.
- Structured data matches visible content: validated on a sample of pages.
- Hierarchy in place: hub, category and sibling links; no orphan pages.
- Sitemaps split by pattern: containing only pages that pass the threshold.
- Test batch reviewed by a person: at least 20 pages read on mobile.
- Freshness owner named: someone is responsible for updating the data.
Ticks are saved in your browser. If any item is unticked, launch fewer pages rather than skipping it.
Examples of programmatic SEO that works
- Integration directories such as Zapier’s publish pages for app pairs backed by real integration data: the triggers, actions and workflows for that exact pair.
- Currency converters from money transfer services show live rates, history and fee comparisons for each pair, which a generic article cannot give.
- Review platforms such as Tripadvisor and Yelp build “[category] in [city]” pages from real listings and user reviews, so each page is genuinely different.
- Property portals generate neighbourhood pages from listings, prices and local data that changes constantly.
What they share is not the template; it is the data. None of these pages would survive if the data were stripped out.
Common mistakes I find in programmatic SEO audits
- Publishing every combination of two lists, so most pages have no demand and no unique content
- Location pages for places where the business has no presence or specific knowledge, which is the doorway pattern
- AI-written “unique” intros that change the words but not the information
- Empty sections, “0 results” pages and placeholder text such as “[city]” left in live titles
- Filtered URLs generating millions of crawlable combinations
- No owner for data freshness, so prices, availability and dates go stale within months
- Thousands of pages sitting in “Discovered, currently not indexed” with nobody checking
If several of these sound familiar, an SEO audit that looks at indexing by page type is usually the right first step, and much of the fix is technical SEO work on templates, canonicals and sitemaps.
Is programmatic SEO right for your site?
It suits businesses that already hold structured, useful data at scale: marketplaces, directories, SaaS platforms with integrations, travel and property sites, and ecommerce stores with large catalogues. Multi-country brands can template localised pages too, as long as each version reflects real local differences such as currency, delivery and regulations.
It rarely suits a local service business wanting 200 “[service] in [suburb]” pages, or a new site with no data and no authority. I see this often with Pakistani agencies and service firms building “[service] in [every city in Pakistan]” pages with identical text. For those businesses, a handful of carefully written pages for the cities they genuinely serve will almost always do better.
Frequently asked questions
Is programmatic SEO against Google’s guidelines?
No. Generating pages from templates and data is not against Google’s policies. Producing many pages mainly to manipulate rankings without helping users is, and since March 2024 that falls under the scaled content abuse policy whether people, AI or scripts created the pages.
Can I use AI to write programmatic pages?
You can use AI in the process, but it cannot be the source of the value. Use it to summarise or explain data that is genuinely on the page, then review samples by hand. AI text with no unique data behind it is exactly the pattern Google’s policy describes.
How many pages should I launch with?
Start with a test batch of 50 to 200 pages from your strongest rows. Check indexing, impressions and engagement over the following weeks before expanding. Launching thousands at once makes quality problems hard to spot until they affect the whole site.
Should weak programmatic pages be noindexed or deleted?
If a page helps users navigate but has little unique content, noindex, follow is reasonable. If it serves no user purpose, remove it and redirect to the closest parent page. If two pages target the same intent, merge them. The worst option is leaving thousands of weak pages indexed.
How long does programmatic SEO take to show results?
Indexing alone can take weeks for a large batch, and long-tail rankings typically build over three to six months, depending on domain strength and data quality. Patterns with strong data and real demand usually show impressions sooner.
Can programmatic pages hurt the rest of my site?
They can. Google evaluates helpfulness partly at site level, and a large block of weak pages can affect how the whole domain performs, not only the weak pages. That is why the threshold and the pruning rules matter more than the template.
Sources
- Google Search Central, “Spam policies for Google web search” (last updated 2026).
- Google, The Keyword, “New ways we’re tackling spammy, low-quality content on Search” (March 2024, updated April 2024).
- Google Search Central, “Google Search’s guidance on using generative AI content on your website” (last updated 2026).
- Google Search Central, “Crawl budget management for large sites” (last updated 2026).
- Ahrefs, “96.55% of content gets no traffic from Google” (2023).
If you are planning a programmatic build, or cleaning up one that has stopped performing, I can review your dataset, templates and indexing before you scale further. Request a free SEO audit and tell me which page patterns you are working with.
Request received
Thank you! Saad will contact you within the next 24 hours.
Keep an eye on your phone and inbox.
