Programmatic SEO with Claude Code: Template + Dataset Design That Ranks
Programmatic SEO that ranks needs a template married to a unique dataset, with thin-content guards. Design, tools, and a worked example using SEOKit v2.

Programmatic SEO that actually ranks comes down to one equation: a reusable template married to a dataset where every row carries unique, page-worthy data — plus a hard rule that any page falling under ~150 unique words gets noindex until it earns more. The dataset is the moat, not the template. Claude Code is unusually good at building these systems because it can design the template, audit the dataset for thin-content risk, and enforce the uniqueness budget in a single /seo pseo workflow — no prompt-chaining glue required.
We are not theorizing here. We will walk through the design decisions using SEOKit's /seo pseo command as the worked example, with real token counts, real guards, and real failure modes.
What is the core equation for programmatic SEO that ranks?
Programmatic SEO generates many pages from one page model fed by many data rows. The template is the HTML shell; the dataset is the rows. The failure mode and the success mode both live in the dataset:
- Thin (fails): the template is rich but each row only swaps a title and keyword. Every page is 95% identical. Google classifies these as doorway pages and either ignores or penalizes them.
- Substantial (ranks): each dataset row carries data that is only true of that page — a unique number, a unique relationship, a unique comparison. The template presents it; the row justifies it.
The design question is never "what does the template look like." It is "what unique data does each row carry that makes its page worth indexing?" If you cannot answer that per row, you do not have a programmatic SEO opportunity — you have a thin-content liability.
AI Overviews now appear on 48% of Google queries (March 2026, up from 34.5% in December 2025). That shifts the bar: a page no longer just needs to rank, it needs to carry a liftable, direct answer in the first 100 words. Perplexity data shows 90% of top-cited sources answer in that opening window. Your programmatic template needs a hero answer block per page, not just a title swap.
How does the SEOKit /seo pseo command work?
SEOKit ships 19 commands, 4 skills, 2 read-only agents, and 16,004 measured tokens. The /seo pseo command runs programmatic SEO architecture: it takes your dataset spec and template idea, audits the dataset for thin-content risk before you build, designs the template structure, sets up staged-indexing rules, and wires internal-link logic. It produces an architecture brief and a validation checklist, not just a page.
The supporting skills — loaded automatically as needed — handle specific parts of the pipeline:
| Skill | Job | Approx. tokens |
|---|---|---|
seo-pseo | Template + dataset architecture, uniqueness budget rules | ~900 |
seo-audit | Site-wide thin-content and index-bloat audit | ~850 |
seo-extractable | Ensures each page carries liftable AI-citation blocks | ~700 |
seo-check | Pre-publish validation: unique words, schema, canonical | ~550 |
All four skills load from ~/.claude (global install) or your project directory (local install). Zero Python tooling required. The workflow ends with an EVIDENCE artifact — a structured brief and a per-row uniqueness report — not a reviewer gate that blocks publishing. That distinction matters, and we will come back to it.
The /seo quick-wins command is SEOKit's other flagship: it targets positions 8-20 and low-CTR pages, the fastest-compounding SEO lever. If you are new to the kit, start there, then use /seo pseo once you have a programmatic opportunity validated.
What unique data makes a programmatic page worth indexing?
The answer is different for every site, but the pattern is the same: the unique data must be measurable, original, and page-specific. Here are three categories that work, with examples:
1. Measured quantities no other source publishes. Token costs per skill, conversion rates per product, load times per URL cohort. These are facts only you can produce because only you ran the measurement. A page that leads with "we measured X = 1,847 tokens for this command, here is how" carries something a competitor cannot copy without rerunning your methodology.
2. Relationship data specific to the entity. For a software catalog: which commands use this skill, what it hands off to, where it sits in the workflow graph. For a product catalog: which accessories are compatible, what size runs this style runs, what the margin band is for this SKU. Relationship data is inherently unique per row because it describes connections, not just properties.
3. Benchmarked position in a peer group. "This skill is the 3rd most token-expensive in SEOKit, after X and Y" is a fact only true of that skill. Rank-within-group data is easy to generate from any dataset and creates genuine differentiation without fabrication.
The /seo pseo command prompts you for all three during the dataset audit phase. It flags rows that carry only name-and-keyword data as thin-content risks and blocks them from the publish pipeline until they meet the uniqueness budget.
What are the thin-content traps in programmatic SEO?
Programmatic SEO fails in predictable ways. These four traps account for the majority of penalized or ignored programmatic builds:
-
Rows without unique data. The classic doorway-page failure. "Best plumber in
{city}" for 5,000 cities with identical copy. Fix: a per-template minimum-unique-value rule. Each row must carry N unique data points before it earns a page. If a row cannot meet the bar, it does not publish. -
Skipping the noindex-under-150-words guard. Any page with under ~150 words of genuinely unique content should be set to
noindexuntil it earns more. This is the safety valve that prevents thin pages from dragging down the whole site's quality signals. It is non-negotiable. A page that cannot produce 150 unique words is not ready to be indexed. -
Index bloat from day-one mass publishing. Publishing 10,000 pages at once and watching Google fail to crawl or index them. Fix: staged indexing — release pages in cohorts, watch which cohorts get indexed and rank, and only scale the patterns that earn inclusion. Earn the index, do not demand it.
-
Cannibalization from overlapping intent. Multiple programmatic pages competing for the same query. Fix: assign one canonical target per intent at design time, before you build. Catching collisions pre-build costs minutes; untangling them post-publish costs months.
The /seo pseo workflow addresses all four in sequence: uniqueness audit, noindex guard setup, staged-indexing plan, and canonical-mapping before any page is written.
How does Claude Code compare to DIY scripts for programmatic SEO?
This question comes up often. The honest answer: DIY Python scripts can generate pages faster in a narrow pipeline, but they cannot reason about uniqueness, audit intent overlap, or wire AI-citation structure. Claude Code trades raw throughput for judgment.
| Capability | DIY script | Claude Code + SEOKit |
|---|---|---|
| Template rendering speed | Fast (hundreds/sec) | Slower (seconds/page) |
| Dataset thin-content audit | Manual/custom | Built into /seo pseo |
| Staged indexing logic | Manual | Guided by skill |
| AI-citation block structure | Not applicable | seo-extractable skill |
| Intent-overlap detection | Manual | Pre-build canonical mapping |
| Schema generation | Template-hardcoded | Per-row, validated |
| Internal-link graph | Manual | Automatic sibling + parent links |
For a dataset of under a few thousand rows with meaningful uniqueness per row, Claude Code wins on quality. For pure bulk generation where every row is already validated, a hybrid approach makes sense: use /seo pseo to design and validate, then export to a static generator for render throughput.
The SEO kit integrates naturally with /seo write (drafts the long-form anchor pages that support a programmatic set) and /seo audit (post-launch crawl analysis). It is not a standalone tool; it is part of a workflow.
What does a production-ready programmatic template include?
The template's job is to present each row's unique data prominently and add genuine structure without padding. For each programmatic page type, the architecture brief from /seo pseo specifies:
-
The hero fact. The one unique data point this page leads with. It goes above the fold, in the first 100 words, in a format AI engines can lift. Token cost, benchmark position, relationship count — whatever is most page-specific.
-
The structured sections. Consistent H2s the dataset fills. For a technical skill page: what it does, what it costs, when it triggers, how it fits the kit, related skills. For a product page: specs, compatibility, margin band, substitutes.
-
The internal links. Every programmatic page links to its parent (the category or kit), its siblings (related entities), and at least one cross-type anchor page (a guide or comparison). This turns 1,000 pages into a navigable graph instead of 1,000 orphans.
-
The schema. Structured data that reinforces the unique fact.
SoftwareApplicationwith aPropertyValuefor token cost;ProductwithOfferandAggregateRating. The unique data and the schema should agree. Schema'd pages show a 47% vs 28% top-3 citation rate in Perplexity's corpus (2026 data). -
The BLUF answer block. A 40-80 word direct answer in the page's opening paragraph. Perplexity surfaces 90% of its top citations from sources that answer within the first 100 words. Every programmatic page needs one.
The discipline: the template adds structure, the dataset adds substance. If the template is generating filler prose to hit a word count, you are building thin pages with extra steps.
How much does SEOKit cost and what do you get?
SEOKit is one of five kits in the ClaudeKit v2 lineup. Pricing across the board:
| Plan | Price | What you get |
|---|---|---|
| Single kit | $14.99/mo | One kit (19 commands, 4 skills, 2 agents for SEOKit) |
| Pro | $29.99/mo | Any 3 kits, swap 1 per cycle |
| All-Access | $49.99/mo (or $399/yr) | All 5 kits, 101 commands, 82,197 tokens |
| Lifetime per kit | $99 one-time | That kit as shipped, 3 devices, no future updates |
14-day refunds. 3 devices per license. Install with ck auth <key> then ck install seokit, or via the Claude plugin marketplace: /plugin marketplace add Madni-Aghadi/claudekit-seokit. The token ledger prints on every install; ck tokens seokit recounts.
If you are running programmatic SEO at any scale, the /seo pseo command alone pays for the kit in avoided thin-content cleanup. The full kit breakdown is on the SEO kit page.
Getting started: the right order of operations
If you are new to programmatic SEO with Claude Code, do not start with the template. Start with the dataset audit. Here is the order that works:
-
Validate the opportunity. Can you name the unique data point per row? If not, stop here. Run
/seo auditon your existing site first to understand your baseline. -
Design the template with
/seo pseo. Feed it your dataset schema and intended page type. It produces an architecture brief with uniqueness requirements, staged-indexing cohorts, and internal-link rules. -
Audit the dataset before building. The
seo-pseoskill flags thin rows before any page is written. Fix or drop the thin rows at this stage. -
Build the first cohort only. 50-100 pages. Watch indexing and ranking signals for 4-6 weeks before scaling.
-
Run
/seo checkon the cohort. Pre-publish validation: unique word count, schema validity, canonical correctness, AI-citation block presence. -
Scale the patterns that earn inclusion. Use
/seo quick-winsto identify which pages are gaining traction and where to deepen the dataset.
The SEO kit page has the full command list. The 14-agent SEO team architecture post covers how specialist read-only agents fit into a larger content operation alongside these commands.
The AI-citation layer: why it matters for programmatic SEO in 2026
One thing changed materially since most programmatic SEO guides were written: AI Overviews, Perplexity, and ChatGPT Search are now traffic sources, and they have different citation logic than Google's blue links.
Ranking-to-citation correlation is only r=0.18 — 47% of AI Overview citations come from below position 5. A page ranking 12th can get cited while a page ranking 2nd does not, if the page-12 result answers the query directly in the first 100 words and the page-2 result buries it in a third section.
For programmatic SEO this is a significant opportunity. Your hero fact — the unique number or relationship that justifies the page — is exactly the kind of direct, specific answer AI engines cite. A page that says "this skill costs 1,847 tokens and fires under these three conditions" in its opening paragraph is a better AI citation candidate than a 2,000-word guide that gets to the number in paragraph 14.
The seo-extractable skill in SEOKit is built for this: it audits whether each page carries a liftable, schema-consistent answer block that AI engines can extract without inference. Running it on a programmatic set takes minutes and routinely surfaces pages where the unique fact is buried rather than leading. More on the AEO angle is in our AEO vs SEO post.
The takeaway
Programmatic SEO ranks when each page carries data only it can carry, presented by a template that adds structure rather than padding, with a hard noindex-under-150-words guard and staged indexing so you earn inclusion rather than demand it. In 2026 that formula also requires an AI-citation block per page — the hero fact above the fold, answerable in 100 words.
The /seo pseo command in SEOKit handles the architecture, the dataset audit, the uniqueness enforcement, and the staged-indexing plan in one workflow. It ends with a structured brief and a per-row validation report — evidence you can act on, not a blocking reviewer waiting for approval.
If you are building or repairing a programmatic SEO property, SEOKit is the fastest way to run this properly. The full pricing breakdown is on the pricing page.
FAQ
What makes programmatic SEO pages rank instead of getting penalized?
Unique data per page is the dividing line. Pages rank when each row in your dataset carries data that is only true of that page — a measured quantity, a relationship, a benchmarked position — presented by a template that adds structure, not filler. They get penalized when the template does all the work and the dataset only swaps a name, producing near-identical doorway pages Google treats as low-quality. The dataset's uniqueness is the strategy; the template is just presentation.
What is the noindex-under-150-words rule and why does it matter?
Any programmatic page with under ~150 words of genuinely unique content should carry noindex until it earns more. It is the safety valve that prevents thin pages from dragging down your whole site's quality signals. Google's site-quality scoring is holistic — a large set of thin pages harms the crawl budget and ranking signals of your good pages. The /seo pseo workflow sets this guard up automatically as part of the staged-indexing plan.
How do you avoid index bloat when launching a programmatic SEO set?
Use staged indexing: release pages in cohorts (50-100 at a time), watch which cohorts get indexed and which pages start earning ranking signals, and only scale the patterns that earn inclusion. Combine this with a per-template minimum-unique-value rule and one canonical target per intent to prevent cannibalization. The seo-pseo skill outputs a cohort plan as part of the architecture brief.
Can Claude Code build a full programmatic SEO system without external tooling?
Yes, for the design, audit, and validation stages. The /seo pseo command handles template architecture, dataset thin-content audit, uniqueness budget enforcement, staged-indexing planning, and internal-link rules. For render throughput on very large sets (10,000+ pages), a hybrid approach works: use SEOKit to design and validate, then export to a static site generator for rendering. The intelligence is in the design; the rendering is mechanical.
How does AI Overview citation logic affect programmatic SEO in 2026?
AI Overviews appear on 48% of Google queries (March 2026) and cite pages with a ranking-to-citation correlation of only r=0.18 — 47% of citations come from pages ranked below position 5. For programmatic SEO, this means your hero fact needs to be above the fold in the first 100 words, not buried in section three. The seo-extractable skill audits whether each page carries a liftable answer block that AI engines can cite without inference.
What is the difference between /seo pseo and /seo quick-wins?
They target different phases. /seo quick-wins is for pages you already have — it identifies positions 8-20 and low-CTR URLs where small content improvements compound fastest. /seo pseo is for pages you are about to build — it designs the template, audits the dataset, and plans the launch. Most teams should run /seo quick-wins first (immediate ROI from existing content), then use /seo pseo once they have a validated programmatic opportunity to build into.
Give Claude Code a real team
Five kits, 101 commands, every token measured. Pick the team that matches your work and install it in five minutes.
See the kits

