A travel site built 50,000 "hotels in [city]" pages from one template in late 2025. Google deindexed 98% of them within three months. Programmatic SEO with MCP is what replaced that playbook — and the part nobody tells you is that page count was never the thing that killed it.
Quick answer: Programmatic SEO with MCP means using the Model Context Protocol to let an AI agent generate, score, internally link, and publish many unique pages directly on your domain. The agent reads one row of real data, writes one real page, checks it against SEO criteria, and ships — no spreadsheets, no CMS glue.
This guide gives you the 6-step loop that keeps those pages indexed, a pre-publish quality gate, and one number most programmatic guides will never print: what happened when we ran this on our own DR 12 domain and Google refused to fetch two-thirds of it.
What programmatic SEO with MCP actually means#
Programmatic SEO means generating many pages from a structured data source plus a content template — Zapier's integration directory, Wise's currency converters, TripAdvisor's destination guides. First-generation programmatic SEO used spreadsheets, scripts, and a CMS API. Every step needed engineering glue.
MCP collapses that into one conversation. It's an open standard, donated by Anthropic to the Linux Foundation in December 2025, that lets any LLM call external tools through a uniform interface. Once your CMS, SEO scorer, and Search Console expose MCP servers, an agent can plan a content set, write each page, score it, link it, and publish it end to end.
Kevin Indig framed the opportunity in his Growth Memo: "Programmatic SEO is the most effective way to scale SEO. The idea is simple: build a lot of pages — sometimes hundreds of thousands — for a keyword pattern." MCP is the layer that makes it operationally cheap.
The shape to remember: agent → MCP → CMS → index, in one loop.
Why programmatic SEO failed before — and what actually changed#
Old-style programmatic SEO had a survivorship-bias problem. Everyone cited Zapier. Almost nobody cited the failures, and there were many.
An analysis of 500+ failed programmatic projects found 93% of penalized sites lacked meaningful differentiation between pages. The losing pattern repeated: city name swap, currency swap, ship.
Google's position is blunt. The scaled content abuse policy doesn't distinguish AI from human writing — it targets "unoriginal, low-value content created at scale to manipulate rankings." John Mueller later warned that sites spinning topic clusters with LLMs were building "liability — reasons not to visit any part of your site."
Here's the contrarian read most "publish 1,000 pages overnight" tutorials skip: substance, not scale, is the constraint. Wise earns 60.5 million monthly organic visits from thousands of pages with zero deindexing risk, because each page sits on live exchange-rate data rather than text variations. The data underneath is the moat. The agent only renders it.

A client documented in late 2025 had 8,000 comparison pages from a legacy template tool with only 1,200 indexed (15%). After rebuilding 2,000 pages with a per-page approach, 1,940 of 2,000 (97%) got indexed. Same domain, same source data. The variable was uniqueness per page.
The Agentic Programmatic SEO Loop: 6 steps#
Most failed projects skip steps 2, 4, and 6. The agentic loop forces all six, because each one is a distinct tool call.
Step 1: Harvest the head term and entity space#
Start with one keyword cluster, not a sitemap. Map the head term, the entities Google associates with it, and the long-tail variations. For each variation, capture whether the SERP actually wants a unique answer — "best CRM for [industry]" genuinely differs per industry; "weather in [city]" does not.
Step 2: Build the data spine#
Programmatic SEO without a unique data spine is template SEO, and template SEO is what gets deindexed. The spine is whatever makes each page non-substitutable: pricing data, API specs, real exchange rates, hand-collected reviews, your own customer data. No spine means no post. This is the rule you don't break.
Step 3: Generate each page through the agent#
The agent reads one row of the spine and writes one page — not a template with three swappable variables. The MCP layer carries the spine into the prompt so the model works from hard facts instead of hallucinating them.
Step 4: Score and fix before publish#
Every draft hits a scoring tool before it touches the live site. Quillly's scorer runs 14+ criteria — title, meta, heading hierarchy, keyword placement, internal links, alt text, schema. Calling get_blog_seo_patches returns exact fix strings; one update_content call applies them all.
Step 5: Internal-link before publish#
The biggest structural difference between Wise's system and the deindexed travel site is internal linking. Wise's currency pages link to each other in dense topical webs. The travel site's pages were islands. Run suggest_internal_links per draft and apply the contextually relevant anchors.
Step 6: Publish, ping, monitor, refresh#
Publishing starts the loop rather than ending it. Sitemap regenerates, the page gets submitted, and after 7–14 days the agent checks performance for that URL. Impressions but sub-1.5% CTR means rewrite the title and meta. No impressions at all means the page goes to a review queue — not back through the same loop that produced it.
That's the named framework: the 6-step Agentic Programmatic SEO Loop. Harvest, spine, draft, score, link, publish. Steps 4 through 6 are the ones that need tooling rather than discipline — see the MCP tools that run them.
The pre-publish quality gate#
Programmatic SEO without a quality gate is a deindexing pipeline. A working gate is automated, runs on every draft, and blocks anything below threshold.

Four gate rules worth hard-coding:
Uniqueness threshold. Under 30% n-gram overlap with any other page on the site.
Meta limits. Title ≤ 60 characters, description ≤ 160 — Quillly's
publish_contentrejects descriptions over 160 outright.Keyword placement. Primary keyword in the H1, the first 100 words, and at least two H2s.
Stagger the publishes. Indexing 100 fresh pages overnight looks like a dump. Ten a day for ten days looks like a publishing schedule.
Pages below 75 surface for fixes; pages above 85 publish. That gate is what separates Wise from the deindexed travel site.
The programmatic tax: what 100+ pages cost a low-authority domain#
Everything above tells you how to ship pages at scale. This section tells you what happens next, using our own domain as the cautionary tape.
quillly.com is a DR 12 domain carrying 125 blog posts plus a large set of programmatic reference pages — one per AI crawler, one per tool. On 9 August 2026, Google had 85 URLs sitting in "Discovered – currently not indexed": it knows they exist and has not bothered to fetch them.
We sampled 50 of those stuck URLs. Roughly two-thirds were programmatic pages, not blog posts. The templated pages we shipped fastest were the ones Google was least interested in fetching.
That is the programmatic tax, and it is not a content-quality penalty. Each page is unique, factual, and useful. It's a crawl-priority verdict. Google allocates fetch budget roughly in proportion to authority, and a low-DR domain that suddenly presents 100+ near-identically-structured URLs is asking for more budget than it has earned. The pages don't get penalised. They get queued, sometimes indefinitely.

So add an authority check before the scale step:

Under DR 20: ship 10–20 pages, then stop and watch the indexed share for a month. If it falls, you've already exceeded your budget.
DR 20–40: scale in batches of 50, each batch linked from pages that are already indexed.
Over DR 40: the 100-plus runs the case studies promise start behaving as advertised.
And measure the right thing. Pages published is a vanity metric; pages indexed is the real output. Ours was 64%, meaning a third of everything we shipped could not rank at any quality level. Zapier's 50,000 pages work because Zapier is a DR 80-something domain. Copy the technique, not the volume — and check whether your pages are actually getting indexed before you queue the next batch.
Want the loop running on your own domain instead of a spreadsheet? Connect Quillly to Claude, Cursor, or ChatGPT in 30 seconds.
Three patterns that still work in 2026#
Not every shape of programmatic page is equally durable. These three have survived every Helpful Content update.
Pattern | Example | The data spine | Why it survives |
|---|---|---|---|
Integration directory | Zapier — 50,000+ pages, ~2.6M monthly visits | Real triggers, actions, use cases per integration | Capabilities are verifiable and product-bound |
Data converter | Wise — 60.5M monthly visits | Live exchange rates, fees, historical charts | Data changes by the minute, so no page is ever duplicate |
Local landing page | TripAdvisor — 226M+ monthly visits | Real reviews, photos, local rankings | Genuine local substance can't be synthesized |
The throughline: the data is the moat, and the agent just renders it. To replicate any of them, find the variable in your product that updates frequently and that customers actively query — then treat each value of it as one page. Don't generate beyond what your product actually does.
For the wider context on what MCP servers do for SEO beyond programmatic content, see MCP Servers for SEO: The 2026 Builder's Guide. For the single-page version of this workflow, see How to Publish Blogs from Claude Desktop.
Getting programmatic pages cited by AI search#
The newer leverage on programmatic content isn't ranking on Google — it's being cited by ChatGPT, AI Overviews, and Perplexity. Three tactics scale cleanly to programmatic pages because the data spine already exists per page:
Front-load definitions. Open with a 40–60 word direct-answer paragraph. The top 5 domains capture 38% of AI Overview citations across an analysis of 36 million AI Overviews — citation share concentrates fast.
Use definite language. "X means," "X refers to" — definite phrasing gets cited more than "could be" or "may include."
Surface 5+ data points with sources. You're not retrofitting numbers; you're exposing the ones already in the spine.
The full tactic set lives in Answer Engine Optimization: The 2026 AEO Playbook.
Frequently asked questions#
What is programmatic SEO with MCP?#
Programmatic SEO with MCP uses the Model Context Protocol to let an AI agent like Claude or Cursor generate, score, internally link, and publish many unique pages to your domain. Unlike legacy programmatic SEO, which needed spreadsheets and brittle CMS scripts, MCP collapses every step into one conversation driven by your data spine.
Will Google penalize programmatic SEO content in 2026?#
Google penalizes scaled content abuse, not programmatic content itself. Pages built on a real data spine that pass a quality gate and serve genuine intent rank fine. Pages that swap a city name across 50,000 templates get deindexed — one travel site lost 98% within three months. The dividing line is uniqueness per page, not page count.
How many pages can I publish in a day?#
A safe staggered rate is 5–20 pages per day for a site under 1,000 pages. Publishing 100 at once on day one is the most common trigger for scaled-abuse flagging. On a domain under DR 20, cap the whole first batch at 10–20 pages and watch your indexed share before shipping more.
How long until programmatic pages get indexed?#
For sites with sitemap pings, 7–21 days is typical for healthy programmatic content. Beyond 30 days usually means crawl-budget limits rather than a quality flag, especially on a low-DR domain. Track indexation rate per cohort and expect at least 70% indexed within 45 days.
Do I need to know how to code to do programmatic SEO with MCP?#
No. Connecting an MCP server takes one config-file edit in Claude Desktop, Cursor, or ChatGPT. After that every interaction is natural language: "draft 30 comparison pages from this CSV." If you can build a spreadsheet with one row per page, you have the hardest part already.
The bottom line#
Three takeaways worth a post-it:
Substance, not scale, is the constraint. A real data spine per page is the difference between Wise's 60.5M monthly visits and a deindexed travel site.
Score every page before it goes live. A 14+ criteria gate plus internal linking is the difference between 15% and 97% indexation on the same domain.
Match volume to authority. Under DR 20, ship 10–20 pages and watch the indexed share. Two-thirds of our own stuck URLs were programmatic pages — that's the tax nobody quotes.
The builders winning in 2026 aren't writing the most pages. They turned their CMS, scorer, and analytics into MCP servers and let an agent run the loop. Start the 14-day trial, no card — your domain, your AI, no copy-paste.
