· Ben · strategy · 6 min
Programmatic SEO works until your product needs explaining
Programmatic SEO for SaaS captures demand that already has a name. If your product needs explaining first, the template breaks. Here's what to publish instead.
You read the guide, opened a spreadsheet, and typed the head term into column A. Then you got to column B, the modifier list, and there was nothing to put in it.
That's the moment. Every guide ranking for programmatic SEO for SaaS gives you the same recipe: head term, modifier list, structured data source, one template, hub-and-spoke internal links. Template plus data equals pages. It's not wrong. I've read a dozen of these and the formula is identical in all of them, which is usually a sign the formula is real.
It works. It just has nothing to say about the thing you're actually trying to get across.
Zapier confirms an integration, not the idea of automation
Zapier is the example in every one of those guides, and Zapier is blunt about the mechanic in its own post: it can roll out a page for every app it supports, plus pages for combinations of apps, and catch people facing an exact problem at scale.
Read that again for what it assumes. The person searching "trello slack integration" has already accepted that automating between tools is a thing worth doing. They've accepted that a middleware product should exist. They're not asking whether. They're asking whether you. The page's entire job is to say yes, we connect those two, here's the button.
That's demand capture, and it's a great business when the demand exists. Look at the canonical pSEO examples and they're all the same shape underneath: integrations, currency pairs, template galleries, industry verticals. Each one is a lookup table that the product happens to own. Fill the cells, ship the pages, collect the searches that were already being typed.
Your product is probably not a lookup table. That's the whole problem.
The long tail has a long tail
Before we get to your side of the line, one thing about the good case. Ahrefs pulled apart Zapier's program and found the part nobody quotes: the deepest combination page, Sheets–Trello–Slack, gets no organic traffic at all. That's the best-executed pSEO program on the internet, and the far end of it is dead pages.
Which tracks with the base rate. Ahrefs' study of roughly 14 billion pages found 96.55% of them get no traffic from Google. Publishing a page is not acquiring a slot. It's entering a lottery that you lose almost every time, and generating pages faster does not change the odds per ticket.
The math on page one is two guesses multiplied together
The longest guide currently ranking for this query runs a table: 5,000 programmatic pages, 200 monthly visits each, one million visits a month, next to a sad little column showing what 50 blog posts would do. The 200 is a guess. The 5,000 is a plan. The source is another agency blog. Nobody has measured anything.
The assumption doing the real work in that table isn't the 200. It's that every one of the 5,000 pages earns any search traffic at all.
Sources: Ahrefs, 96.55% of content gets no traffic from Google, and the programmatic-SEO guides currently ranking for this query.
Here's what a measured number looks like, and it's much smaller. Grepture's blog has been written by Contentcron since day one. Eight weeks in, Search Console showed 318 clicks and 43,627 impressions, with impressions climbing from near zero in early May to about 1,800 a day by late June. I published the unedited Search Console screenshot from those first eight weeks because a screenshot is falsifiable and a table someone typed is not.
318 clicks is not a million visits. It's also a real thing that happened, from a few dozen articles, no data set, no modifier matrix.
Google's test is why the page exists, not who typed it
The risk section in most pSEO guides is one sentence: just add unique value. Google's actual policy language is more specific than that. Read it directly.
From the spam policies: scaled content abuse is when many pages are generated for the primary purpose of manipulating search rankings and not helping users. The clause that matters comes right after, and it's the one nobody engages with: the policy applies regardless of whether humans, automation, or a combination created the content.
Primary purpose. Method-agnostic. "We generated 5,000 pages and had a human review each one" is not a defense, because the human review doesn't change why the pages exist. If the honest answer to "why does this URL exist" is "to occupy a slot for [keyword] for [industry]," you're inside the definition no matter who typed it.
The same document defines doorway abuse as pages created to rank for specific, similar queries that lead users to intermediate pages less useful than the destination they actually wanted. That is a fairly precise description of a templated comparison page whose only real content is a link to your pricing.
And this isn't new policy nobody has tested. The rule arrived in March 2024 alongside a core update where Google said it expected to cut low-quality, unoriginal content by 40%, then reported after the rollout that the result was closer to 45%. Most of the guides currently ranking for this query were written after that and still treat pSEO as pure upside.
AI answers eat confirmation queries first
Now the structural part, which I think matters more than the policy.
A templated page's entire content is a fact. Yes, we integrate with Slack. Yes, we support MXN to PHP. Yes, there's a template for that. Facts are exactly what an answer engine is built to absorb, and it doesn't need to send you the click to deliver one.
Pew tracked the browsing of 900 US adults and found clicks on links inside AI summaries running at 1% of visits, with 26% of people abandoning browsing after a page with a summary versus 16% without. Ahrefs looked at 300,000 keywords and found AI Overview presence correlated with 34.5% lower average CTR for the top-ranking page compared with similar informational keywords without one. Semrush and Datos clickstream data put AI Overviews on 6.49% of queries in January 2025 and 13.14% by March.
Long-tail informational template pages are the exact query class getting absorbed. A page that exists to confirm a fact is the cheapest possible page for a model to replace. A page that argues a position, with numbers attached and a source under each one, is not. The model may cite it, but the argument itself is the thing a reader came for, and summarizing it badly costs the reader something.
When the search volume is zero because the category is
Step one of every pSEO guide is keyword research. Check Ahrefs, check Semrush, check autocomplete, find the pattern with volume.
Run that step for a workflow nobody has named yet and it returns nothing. Not "low volume." Nothing. There is no established query for the problem you solve, because the people with the problem describe it in five different ways and none of them is your feature name. Step one fails silently and the guide keeps going as if it succeeded.
So the pages have to do a different job. Gartner's research on B2B buying found buyers spend only 17% of their time meeting with potential suppliers, dropping to 5–6% per vendor when they're comparing several. The explaining happens on your site, asynchronously, months before anyone books a call, or it doesn't happen at all.
You can't fill an argument into cells. There's no modifier list for "here's why your CMS is the reason your blog is four months stale." That's one post, making one claim, that someone could disagree with.
What a post that explains actually needs
A claim in the title that a reasonable person could argue with. If the title is a noun phrase with a keyword in it, there's no position to defend and the page will read like a form someone filled in.
A number or an artifact in every section, with the source printed in the figure itself. This is a hard rule on our side: a figure that can't cite a source is rejected, not flagged. Same for illustrations. Real screenshots of the product doing the thing, never stock photos or AI art, because you can smell those instantly and so can the reader.
Volume that a human can actually review. One article a day, opened as a pull request, read by someone on the team before it merges. I've written about why one a day beats fifty on Tuesday, and the short version is that a batch nobody reads is indistinguishable from a page factory, including to Google.
And topics chosen from live research rather than a spreadsheet pattern. In Contentcron this is a queue you approve or reject, with the rationale attached: competitor coverage, an archive gap, a query that's actually winnable. Not a matrix of head terms crossed with industries.

The comparison pages are worth writing, by the way. Just write them as an argument about the tradeoff rather than a filled-in table. I've never once been convinced by a [Tool A] vs [Tool B] page, and the version that doesn't name the competitor converts better anyway.
What this doesn't apply to
If your product genuinely is a lookup table (thousands of integrations, every currency pair, a template gallery), build the pages. This isn't an argument against Zapier. Zapier's program works because the demand was already there and the pages just had to confirm it.
If your content strategy runs on search-volume spreadsheets, we're not your tool. There is no "generate 50 posts" button in Contentcron and there never will be.
And the two plays aren't rival religions. Templated pages catch people who already know what they want; written arguments create the people who don't yet. Different funnels. Run both if you have the data set for one.
The catch is that only one of them survives the product changing. 5,000 templated pages is 5,000 things that quietly go stale the next time you ship a release, and nobody prices that job when they're doing the 5,000 × 200 math.
If your blog is a folder of MDX and the hard part is explaining what you built rather than enumerating it, that's the case Contentcron was built for. First article's free, no card. Pick the claim you're tired of making on sales calls and let it write that one.