Programmatic SEO is the practice of generating many landing pages from one template and a structured dataset, so that each page targets one variation of a repeating search pattern: "[app] + [app] integration", "[currency] to [currency]", "restaurants in [city]". It works when every row of your data gives the searcher something real that the other pages don't have (a live rate, a price, a set of listings, reviews). It fails, and can get a whole site demoted under Google's scaled content abuse policy, when the pages are the same paragraph with a different keyword swapped in.
This guide covers how programmatic SEO works, what the famous examples actually put on each page, a step-by-step setup, a calculator to size your opportunity before you build anything, page ideas by business type, and where Google draws the line.
Key takeaways
- Programmatic SEO = one search pattern + one dataset + one template. The dataset, not the template, decides whether the pages deserve to rank.
- Before you publish, remove the keyword from a page. If what is left is still useful and different from its sibling pages, ship it.
- Google's spam policies name "using generative AI tools or other similar tools to generate many pages without adding value for users" as scaled content abuse, whatever tool made the pages.
- Launch 20 to 50 pages first, watch Search Console's indexing report for a few weeks, then scale. Pages Google won't index are telling you the template is too thin.
- Tool-like pages win clicks. In Outrank's study of 6.2M pages, free tools and calculators earned 2.11× the CTR of the same site's articles at positions 4 to 10.
What is programmatic SEO?
Programmatic SEO (often shortened to pSEO) is a way of publishing pages at scale where a script or a CMS builds each page from a database row instead of a writer drafting it by hand. You find a query pattern that people search with many variations, collect the data that answers each variation, design one page template, and generate a page per row.
The formula is simple: head term × modifier = page. "Flights" × 300 city pairs, "integration" × thousands of app pairs, "salary" × job title × city. The hard part is never the generation. It is having data that makes page 2,417 as useful as page 1.

Here is how it differs from writing articles one at a time:
| Traditional SEO content | Programmatic SEO | |
|---|---|---|
| Unit of work | One article per keyword | One template per keyword pattern |
| What makes a page unique | The writer's research and angle | The data in that page's row |
| Typical queries | Broad and informational ("what is a currency converter") | Long-tail and specific ("gbp to eur") |
| Main risk | Slow output | Thin, near-duplicate pages at scale |
| Best fit | Topics that need explanation and opinion | Topics where the answer is a lookup |
Programmatic SEO examples: what the pages actually contain
The well-known examples all share one trait: each page carries data that changes from page to page and that a searcher actually wants.
Zapier: one page per app pair. Zapier's directory lists more than 8,000 apps, and it publishes integration pages for app combinations such as Gmail + Slack. Each page lists the triggers and actions that connect those two specific apps, which is exactly what someone searching "gmail slack integration" wants to know. The pattern scales with the square of the app count, which is why a few thousand apps can produce a very large number of pages.
Wise: one page per currency pair. A page like GBP to EUR has a working converter, the live mid-market rate, a rate chart from 48 hours to 5 years, 30- and 90-day highs and lows, a conversion table from 1 to 10,000, an FAQ, and links to related pairs. Nothing on that page is filler: it is a tool, a dataset and navigation in one. Tool-like pages also tend to win the click: in Outrank's study of 6.2 million pages, free tools and calculators earned 2.11× the click-through rate of the same site's articles at positions 4 to 10.
Tripadvisor: one page per place and category. "Restaurants in [city]" and "Things to do in [city]" pages are assembled from listings, ratings, photos and reviews. The template is fixed; the content comes from businesses and travelers. That user-generated layer is why these pages hold up where a generic "Best restaurants in [city]" text page would not.
The lesson from all three: they didn't win because they generated pages. They won because they had (or built) a dataset nobody else had, and pages were the cheapest way to expose it to search.
How to do programmatic SEO, step by step
This is the process we'd follow for any new programmatic project, whatever the CMS.
- 1
Find a pattern with real variation
Look for queries that repeat with a changing variable. In Ahrefs, Semrush or Google Keyword Planner, search the head term and filter for modifiers ("in", "to", "vs", "for", "alternatives", city or product names). Then Google 5 to 10 variants. If the top results are individual pages built for each variant (not one big guide), the pattern is programmatic. - 2
Size the demand before you build
Count the combinations, then estimate how many have measurable search demand. Most combinations of a big matrix get zero searches. Use the calculator below and be harsh with the "share with real demand" input. - 3
Build the dataset
One row per page, one column per fact that appears on the page. Good sources are your own product data, public datasets (government statistics, open APIs), licensed data, and user-generated content. A column that is the same for every row adds nothing; a column that is different in every row is what makes the page worth indexing. - 4
Design the template around the searcher's job
Write down what someone searching one variant needs to do next (compare, convert, book, choose) and put that above the fold. Add the unique data blocks, a short intro generated from the data, an FAQ, and links to sibling pages. Bind the title tag, meta description, H1 and canonical to fields so every page gets its own. - 5
Pilot 20 to 50 pages
Publish a sample that covers high-, medium- and low-demand rows. Read 10 of them as a searcher would. Request indexing for a few in Search Console and wait two to four weeks. - 6
Scale in batches and link them
Add pages in batches, list them in an XML sitemap, and link them from hub pages (by city, by category) so crawlers can reach every page within a few clicks. Orphan pages are the most common reason a programmatic set never gets crawled. - 7
Measure and prune
In Search Console, check Indexing → Pages for "Crawled - currently not indexed" and "Discovered - currently not indexed". Improve, merge or noindex pages that Google ignores or that get zero impressions after a few months.
The pilot step is the one most teams skip, and it is the one that saves them. If Google won't index 30 of your pages, it won't index 30,000 either. Our guide to fixing "Crawled - currently not indexed" covers what to change when that happens.
How many pages, and how much traffic? A quick calculator
Before building anything, run the numbers. The defaults below are illustrative: 170 searches a month is the median search volume of the keywords Outrank targeted for its customers over the last 90 days (Outrank platform data), and the other inputs are deliberately sober planning assumptions you should replace with your own.
Interactive calculator
Programmatic SEO opportunity calculator
Estimated monthly visits
1,530
- Possible combinations
- 1,000
- Pages worth publishing
- 300
- Monthly searches those pages target
- 51K
- Visits per page per month
- 5.1
Two things the calculator makes obvious. First, the size of the matrix is a vanity number; "pages worth publishing" is the real one. Second, programmatic SEO is a long-tail game. Of the 189,369 articles Outrank wrote in the last 90 days with a known target-keyword volume, 96.7% targeted keywords with fewer than 1,000 searches a month. Individually small, collectively the bulk of the opportunity. Our long-tail keyword research guide shows how to find those patterns.
Programmatic SEO ideas by business type
A good programmatic idea pairs a pattern people search with data you can legitimately put on each page. Some proven shapes:
| Business type | Pattern | Data each page needs |
|---|---|---|
| SaaS | "[your tool] + [other app] integration" | What the integration does, setup steps, use cases |
| SaaS | "[competitor] alternatives", "[you] vs [competitor]" | Real feature and pricing comparisons, kept current |
| SaaS | "[template type] template for [industry]" | An actual template the reader can copy or download |
| Travel | "things to do in [city]", "[city] to [city] by train" | Listings, prices, durations, seasonal info |
| Marketplace or directory | "[category] in [city]" | Real listings, ratings, availability |
| Finance | "[currency] to [currency]", "[loan type] calculator for [state]" | Live rates, rules or rates per region, a working tool |
| Ecommerce | "[product type] for [use case]" | A filtered product set with specs and prices |
| Jobs and data sites | "[role] salary in [city]" | Salary ranges from a real data source, sample size |
| Local services | "[service] in [city]" | Only if you really serve each city: local prices, team, reviews, service area |
The travel row answers a question we see in our own search data ("programmatic SEO for travel brands"): travel is one of the best fits because destinations, routes and dates create natural variation, and every one of them has data people want.
The local services row comes with a warning. A plumber publishing 200 "[service] in [town]" pages with identical text is the textbook doorway pattern Google describes in its spam policies (more on that below).
Programmatic SEO tools: pick by stack, not by brand
Every programmatic setup has three layers: a data store (Google Sheets, Airtable, a database), a page builder (your CMS or framework), and a sync between them. Choose the page builder first, because it sets your limits.
| Stack | Typical setup | Good for | Watch out for |
|---|---|---|---|
| Webflow | Airtable or Sheets → Whalesync or the Webflow API → CMS collection template | Design-led teams, hundreds to a few thousand pages | CMS item limits per plan, collection list limits |
| WordPress | CSV → WP All Import → custom post type + ACF fields → theme template | Large sets on a budget, full control | Plugin bloat, database and hosting performance at scale |
| Next.js or other headless | Database or API → dynamic routes generated at build or on demand | Tens of thousands of pages, complex data | Needs a developer; easy to ship pages without sitemaps or links |
| Spreadsheet-to-site builders | Sheets → no-code page generator | Testing an idea in a weekend | Limited control over templates and markup |
We have step-by-step guides for the two most common stacks: programmatic SEO in Webflow (CMS limits, binding SEO fields and JSON-LD to collections, Airtable syncs) and programmatic SEO on WordPress (custom post types, ACF, WP All Import, and a launch checklist).
AI fits in two places: enriching rows (a short, data-grounded summary per page, FAQs from the row's own facts) and writing the template copy. It is a poor fit for inventing the data itself. If the only thing that differs between your pages is AI-generated prose, you have rebuilt the thing Google's policy targets.
Google's rules: scaled content and doorway pages
Google's spam policies don't ban programmatic SEO. They ban two outcomes that careless programmatic SEO produces.
Scaled content abuse is, in Google's words, "when many pages are generated for the primary purpose of manipulating search rankings and not helping users", content "that provides little to no value to users, no matter how it's created." The examples Google lists include generating many pages with AI "without adding value for users", scraping or "synonymizing, translating" content, and "creating many pages where the content makes little or no sense to a reader but contains search keywords." Google introduced this policy in March 2024, and it applies to template pages and AI pages alike.
Doorway abuse covers pages "created to rank for specific, similar search queries" that lead users to "intermediate pages that aren't as useful as the final destination." Google's examples include "multiple domain names or 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 clearly defined, browseable hierarchy."
In practice, that gives you three rules:
- Every page needs unique, useful data. If two pages would show the same facts, merge them.
- Don't publish empty combinations. No listings, no rate, no product for that row? Don't generate the page, or noindex it until there is.
- Build a real hierarchy. Hub pages, breadcrumbs and links between siblings make a set browsable, which is the opposite of a doorway.
Programmatic SEO for blogs: when articles beat templates
Not every long-tail opportunity is database-shaped. "gbp to eur" is a lookup; "how to keep basil alive indoors" is a question that needs an explanation. Template pages are the right tool for lookups. For questions, the scalable unit is an article per keyword, which is what people usually mean by a "programmatic blog system".
This is what Outrank does: it finds keywords your site can realistically rank for (live volume and difficulty), writes one long article a day with images, internal links and an FAQ, and publishes it to your CMS (WordPress, Webflow, Shopify, Wix, Framer, Notion, Ghost, Next.js or a webhook). It is not a template-page generator, and it won't build your currency converter. Here is what that kind of system targets in practice, from Outrank platform data for the 90 days to October 2026:
200,871
articles written and published
For 4,348 websites in 37 languages
170
median monthly searches per target keyword
96.7% of keywords under 1,000 searches a month
14
median keyword difficulty (0 to 100)
63% of keywords under KD 20
The two approaches combine well. A SaaS company might run programmatic integration pages and an article engine for the questions around them, with each linking to the other. If you want the article side handled, Outrank's 3-day free trial shows the keywords it would pick for your site before you commit.
Mistakes that sink programmatic projects
- Starting from the template instead of the data. A beautiful template with nothing unique to show is still a thin page.
- Publishing the whole matrix. 20 services × 300 towns is 6,000 pages; maybe a few hundred have demand. The rest dilute crawl budget and quality signals.
- Near-identical titles and H1s. If 500 pages differ by one word in the title, Google often picks a few and ignores the rest. Put a second data point in the title ("GBP to EUR rate today: 1 GBP = [live rate] EUR").
- No internal links. Pages only reachable through the sitemap get crawled slowly and rank poorly. See why internal links matter.
- Cannibalizing your own pages. "CRM for realtors" and "real estate CRM" are one intent, not two pages. Our guide to keyword cannibalization explains how to spot it.
- Set and forget. Data goes stale. Prices, listings and rates on a two-year-old page are a reason for users (and Google) to leave.
FAQ
What is programmatic SEO?
Programmatic SEO is creating many search-targeted pages from one template and a structured dataset, with each page answering one variation of a repeating query such as "[city] to [city] flights" or "[app] + [app] integration". It works when each page carries unique, useful data and fails when pages differ only by the keyword.
Does Google penalize programmatic SEO?
Not as such. Google's spam policies target scaled content abuse (many low-value pages made mainly to rank) and doorway pages, "no matter how it's created". Programmatic pages that give each searcher unique data, like Wise's currency pages, are fine; thousands of near-identical city or keyword pages are not.
How do you set up programmatic SEO?
Find a query pattern with many variations, check that Google ranks individual pages for those variants, build a dataset with one row per page, design a template around what the searcher needs, then pilot 20 to 50 pages. Scale in batches only once Search Console shows the pilot pages getting indexed and earning impressions.
What is a good programmatic SEO strategy?
Start from data you own or can legitimately collect, target long-tail patterns with real search demand, publish only combinations that have something to show, and connect pages with hub pages and sibling links. Review indexing and impressions monthly, and prune or merge pages that Google ignores.
What tools do you need for programmatic SEO?
A data store (Google Sheets, Airtable or a database), a page builder (Webflow CMS, WordPress with custom post types, or a framework like Next.js), and a way to sync them (Whalesync, WP All Import, an API script). A keyword tool to find patterns and Google Search Console to monitor indexing complete the stack.
Is programmatic SEO the same as AI-generated content?
No. Programmatic SEO is about generating pages from data; AI-generated content is about generating text. They overlap when AI writes the copy for template pages, which is fine for enrichment but risky when the AI text is the only thing that differs between pages.



