Claude Code can write ten thousand pages before lunch. That is the problem.
Quick pick: install coreyhaines31’s free programmatic-seo skill for strategy and page-type playbooks, and AgriciDaniel’s free seo-programmatic (inside the claude-seo plugin) for quality gates and index bloat checks. Feed both real data through an MCP server such as DataForSEO. The only paid pSEO-specific pack we verified is a $39 Webflow-focused bundle on Contra.
Programmatic SEO has always lived one bad template away from a spam policy violation, and an agent that never gets tired makes the bad template cheaper to ship. The right skill fixes that. A good programmatic SEO skill tells Claude which pages deserve to exist, what data each one needs, and when to stop.
This guide covers the skills worth installing (free and paid, with stars, prices and install commands checked on 1 November 2026), then the parts the skill directories skip: data sources, templates, uniqueness thresholds, Google’s scaled content abuse policy, quality gates, building in Astro or Next.js, and index bloat.
New to skills? Start with what Claude Code skills are and how to install them, then come back.
What a programmatic SEO skill in Claude Code does
Short answer: a programmatic SEO skill is a SKILL.md folder that teaches Claude Code how to plan, build and audit pages generated from a dataset. It encodes the playbook (which page types work, URL patterns, template rules, quality gates) so the agent follows it every time instead of improvising.
Skills live in ~/.claude/skills/ (available in every project) or .claude/skills/ (one project only). You can also get them bundled in plugins. Two install routes cover nearly everything:
npx skills add owner/repopulls skills from a GitHub repo into your skills folder./plugin marketplace add owner/repothen/plugin install name@marketplaceinside Claude Code installs a plugin, which can carry skills, agents and commands together.
A skill only holds instructions. It does not hold keyword data, a page builder or a crawler. That shapes how you should pick one:
| Layer | What it provides | Where it comes from |
|---|---|---|
| Strategy skill | Playbooks, page-type selection, “should this page exist” logic | Free GitHub skills |
| Build guidance | Templates, URL rules, internal linking, schema | Same skills, or your own |
| Data | Search volume, SERP data, your own product or location data | MCP servers (DataForSEO, Ahrefs, GSC) or your database |
| Framework | Astro or Next.js routes that render the pages | Your repo |
| Audit | Thin-content checks, index coverage | Audit skills plus Search Console |
So the useful question is “which skill gives Claude the best judgment, and which data source feeds it”, not “which skill builds pages”. If you want to build your own, building a Claude Code skill walks through the file format.
Takeaway: pick a strategy skill for judgment, an MCP server for data, and keep the build in your own framework.
The best Claude Code skills for programmatic SEO (free and paid)
Short answer: the strongest free options are coreyhaines31’s programmatic-seo skill (strategy and playbooks) and AgriciDaniel’s seo-programmatic inside the Claude SEO plugin (quality gates and index bloat checks). The only paid pSEO-specific pack verified for this guide is a $39 Webflow-focused bundle on Contra. Paid data comes from MCP servers, not skills.
Star counts and last-push dates come from the GitHub API on 1 November 2026. Stars measure attention, not quality, so read the SKILL.md before you install anything.
1. coreyhaines31/marketingskills: programmatic-seo (free)
- Source: github.com/coreyhaines31/marketingskills
- Stars / last push: 57,803 / 31 October 2026
- Price: free, open source
- What it does: a strategy skill built around 12 playbooks: templates, curation, conversions, comparisons, examples, locations, personas, integrations, glossary, translations, directory and profiles. It pushes “fewer great pages over many thin ones”, requires value specific to each page beyond swapped variables, warns against doorway pages and keyword cannibalization, and recommends subfolders over subdomains. It ends with a pre-launch checklist covering content, technical, internal linking and indexation.
- Install:
npx skills add coreyhaines31/marketingskills - Best for: deciding which page type to build before you write any code.
2. AgriciDaniel/claude-seo: seo-programmatic (free)
- Source: github.com/AgriciDaniel/claude-seo (directory listing: claudemarketplaces.com)
- Stars / last push: 25,381 / 1 November 2026
- Price: free, open source plugin
- What it does: one of 26 skills in the plugin. The programmatic skill assesses data sources (row count, column uniqueness, missing values, near-duplicate records above 80% field overlap), plans templates with static and dynamic blocks, sets URL rules, automates hub-and-spoke internal linking, and enforces numeric quality gates (covered in detail below). Sibling skills include
seo-dataforseo,seo-sitemap,seo-schemaandseo-technical. - Install: inside Claude Code, run
/plugin marketplace add AgriciDaniel/claude-seo, then/plugin install claude-seo@agricidaniel-claude-seo - Best for: auditing an existing pSEO build and stopping index bloat.
3. alirezarezvani/claude-skills: programmatic-seo (free)
- Source: github.com/alirezarezvani/claude-skills, at
marketing-skill/skills/programmatic-seo/ - Stars / last push: 29,110 / 31 October 2026
- Price: free
- What it does: directories describe it as a skill that fills templates with AI-generated content at scale. Neighbouring skills in the same folder cover
site-architecture,schema-markupandseo-audit. - Install:
npx skills add alirezarezvani/claude-skills - Caution: generation-first skills are the ones most likely to produce the pattern Google calls scaled content abuse. Pair it with a quality-gate skill.
4. davila7/claude-code-templates: programmatic-seo (free)
- Source: github.com/davila7/claude-code-templates, at
cli-tool/components/skills/business-marketing/programmatic-seo/ - Stars / last push: 33,036 / 1 November 2026
- Price: free
- What it does: frames the agent as a programmatic SEO specialist focused on pages that rank without thin content. It is part of a large template catalog, which helps if you also want agents and commands from the same source.
- Install:
npx skills add davila7/claude-code-templates
5. sickn33/antigravity-awesome-skills: programmatic-seo (free)
- Source: github.com/sickn33/agentic-awesome-skills (renamed from
antigravity-awesome-skills; the old URL redirects) - Stars / last push: 48,967 / 1 November 2026
- Price: free
- What it does: a large community collection that includes its own
programmatic-seoskill. Useful as a second opinion to compare against coreyhaines31’s version. - Install:
npx skills add sickn33/agentic-awesome-skills
6. The Ultimate Claude SEO & AEO Skills Pack (paid, $39)
- Source: Contra listing by Samuel Uebersax
- Price: $39 on the live page, shown against a struck-through $79. No countdown or limited-spots wording on the page.
- What it does: 12 skill files (audits, briefs, schema, keyword intent, internal linking, competitor gaps, E-E-A-T scoring, AEO, site architecture) plus a Webflow-specific bonus skill for programmatic SEO with location pages, nested collections and bulk CMS imports. The page says “2 Webflow-specific Bonus Skills” in one place but lists one, so confirm before buying.
- Install: download the
.mdfiles and place each in its own folder under~/.claude/skills/<name>/SKILL.md. - Best for: Webflow builders. If you ship on Astro or Next.js, the free skills above cover the same ground.
7. DataForSEO MCP server (free server, paid data)
- Source: github.com/dataforseo/mcp-server-typescript
- Stars / last push: 258 / 1 November 2026
- Price: the server is free. Data is pay-as-you-go with a $50 minimum deposit and a $1 trial credit, per dataforseo.com/pricing. No subscription; balances do not expire.
- What it does: gives Claude live keyword volume, SERP results and keyword ideas, which is the demand data that decides which rows in your dataset get a page.
- Install: follow the repo README to add it as an MCP server with your API credentials. Claude SEO’s
seo-dataforseoskill is built to call it.
8. Ahrefs MCP server (paid)
- Source: docs.ahrefs.com MCP reference
- Price: the Ahrefs pricing page lists “API and MCP access” on Lite ($129/mo), Standard ($249/mo) and Advanced ($449/mo). The page offers savings on annual billing and does not state which billing the figures assume.
- What it does: keyword difficulty, volume and competitor page data inside Claude Code, so you can check whether “best CRM for dentists” has demand before generating it.
Semrush also offers MCP access; pricing not public for MCP specifically, so check your plan. Google Search Console MCP servers are community-built and the Search Console API is free, which makes them the cheapest way to watch index coverage after launch.
For wider lists, see Claude Code skills for SEO and keyword research skills. Directories worth browsing: claudemarketplaces.com, claudskills.com, skillsmp.com, and the ComposioHQ/awesome-claude-skills list (78,501 stars, last push 18 September 2026).
Free vs paid: which programmatic SEO stack to pick
Short answer: the free skills cover strategy and quality control well. Money buys data (search demand, SERP features) and, in one case, a Webflow-specific workflow. Most teams can start free and add a paid data source once they know which page type they are building.
| Option | Type | Price | Strength | Weakness | Install |
|---|---|---|---|---|---|
coreyhaines31 programmatic-seo | Skill | Free | 12 playbooks, pre-launch checklist | No numeric gates | npx skills add coreyhaines31/marketingskills |
Claude SEO seo-programmatic | Plugin skill | Free | Numeric quality gates, index bloat checks | Plugin is large if you only want one skill | /plugin marketplace add AgriciDaniel/claude-seo |
alirezarezvani programmatic-seo | Skill | Free | Template filling at scale | Generation-first, needs gates | npx skills add alirezarezvani/claude-skills |
davila7 programmatic-seo | Skill | Free | Thin-content framing, big catalog | Less pSEO depth than above | npx skills add davila7/claude-code-templates |
sickn33 programmatic-seo | Skill | Free | Comparison point | Collection is huge | npx skills add sickn33/agentic-awesome-skills |
| SEO & AEO Skills Pack (Contra) | Skill pack | $39 | Webflow CMS pSEO bonus | Webflow-only angle, bonus count unclear | Manual copy into ~/.claude/skills |
| DataForSEO MCP | Data | $50 min deposit, pay as you go | Cheap volume and SERP data | Setup takes API keys | Repo README |
| Ahrefs MCP | Data | From $129/mo (Lite) | Difficulty and competitor data | Monthly cost | Ahrefs docs |
A sensible free stack: coreyhaines31 for strategy, Claude SEO for gates, GSC for monitoring. Add DataForSEO when you need volume for thousands of candidate rows, because paying per request is cheaper than a monthly seat at that stage.
Takeaway: spend on data, not on prompts.
Data sources: the part that decides whether pages deserve to exist
Short answer: a programmatic page is only as good as the unique data behind it. Before Claude writes a template, check that each row has enough distinct attributes to produce a page a reader would find useful, and that real people search for it.
A programmatic page with nothing unique to say is a doorway page by another name. Most of the value comes from the dataset, not the prose.
Data that holds up
- First-party data: your own product catalog, integration list, pricing, usage benchmarks or support data. Competitors cannot copy it.
- Public structured data with added work: government datasets, open APIs or licensed feeds, joined and analysed so each page says something the raw source does not.
- Curated data: hand-reviewed attributes (pros, cons, compatibility, fit) that a person checked.
Data that tends to fail
- Scraped search results or competitor pages. Google’s spam policy names scraping “feeds, search results, or other content to generate many pages” as scaled content abuse.
- A list of city names with nothing city-specific attached.
- Rows that differ by one field.
A data audit Claude can run
Ask Claude, with the Claude SEO skill loaded, to report:
- Row count and the share of rows with every required field filled.
- Column uniqueness: how many distinct values each field has.
- Near-duplicate rows (the skill flags records with more than 80% field overlap).
- Freshness: when each field was last updated.
- Demand: search volume per row via the DataForSEO or Ahrefs MCP. Rows with no measurable demand are candidates to merge or skip.
Pair this with keyword clustering so two rows that serve the same intent become one page instead of two competing ones.
Takeaway: if a row cannot fill the template’s dynamic blocks with real facts, it does not get a page.
Templates and uniqueness thresholds
Short answer: build templates with static blocks (shared context), dynamic blocks (data unique to the row) and conditional blocks (sections that appear only when the data supports them). Claude SEO’s skill flags pages with under 40% unique content as thin, and pages under 300 words for review.
Anatomy of a template that survives review
| Block | Example on /integrations/slack | Unique per page? |
|---|---|---|
| H1 and title | ”Connect Acme to Slack” | Yes |
| Intro | What the integration does, from integration data | Yes |
| Setup steps | Pulled from that integration’s actual config | Yes |
| Use cases | Conditional: only shown when you have documented ones | Yes |
| Limits | Rate limits, plan requirements | Yes |
| Shared context | What Acme is, support link | No |
| Related pages | 3 to 5 integrations sharing a category | Yes |
| Schema | SoftwareApplication or HowTo, generated from data | Yes |
The “mad-libs” failure mode is a template where only the noun changes. Claude SEO’s skill calls this out directly: no swapping city or product names in identical text.
Uniqueness thresholds to use
These are working thresholds from Claude SEO’s seo-programmatic skill, not Google rules. Google publishes no word-count or percentage threshold.
| Metric | Threshold | Action |
|---|---|---|
| Unique content per page | Under 40% | Flag as thin |
| Word count | Under 300 | Flag for review |
| Pages without content review | 100+ | Warning: audit before publishing |
| Pages without justification | 500+ | Hard stop: explicit approval and thin-content audit |
Measure uniqueness by shingling each page’s main content (strip nav, footer and shared blocks), then comparing pages pairwise or against the template. Claude can write that script in a few minutes. Run it in CI so a template change cannot quietly drop every page below the line.
Want briefs per page type? See content brief skills.
Takeaway: treat 40% unique as a floor you design above, not a target.
Google’s scaled content abuse policy, in plain terms
Short answer: Google’s spam policies define scaled content abuse as “many pages are generated for the primary purpose of manipulating search rankings and not helping users,” and the policy applies “no matter how it’s created.” AI is allowed. Unhelpful pages at scale are not.
The policy lists examples including:
- “Using generative AI tools or other similar tools to generate many pages without adding value for users”
- “Scraping feeds, search results, or other content to generate many pages,” including “synonymizing, translating, or other obfuscation techniques”
- “Stitching or combining content from different web pages without adding value”
- “Creating multiple sites with the intent of hiding the scaled nature of the content”
The same page also defines doorway abuse, which hits location pSEO hardest. 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.”
What the policy means for a Claude Code workflow
| Policy risk | Workflow control |
|---|---|
| Pages without added value | Data audit; skip rows without unique facts |
| Scraped or synonymized content | Ban scraped sources in the skill; use first-party or licensed data |
| City doorway pages | Only build locations where you have a real presence or local data |
| Near-duplicate pages | Uniqueness script in CI; merge pages under threshold |
| Hiding scale across sites | One site, one subfolder, clear hierarchy |
What practitioners report
Reddit’s r/SEO has a steady stream of deindexing threads. One 2026 post titled “5k pages deindexed within a month” describes a travel brand that published roughly 25 to 30 thin programmatic pages and then watched deindexed counts in Search Console climb from about 500 to over 5,000. Commenters disagreed on the cause, and nothing in the thread proves Google’s reasoning. Treat these as anecdotes, but the pattern is consistent: thin batches seem to affect more than the thin pages themselves.
Read Google’s helpful content guidance alongside the spam page. It is the closest thing to a rubric Google publishes.
Takeaway: the policy targets purpose and value, so your defence is a documented reason each page exists.
Quality gates to put between Claude and publish
Short answer: a quality gate is a check that blocks a page or batch from going live until it passes. Put gates at four points: data, template, batch and post-launch. Claude Code can run all of them, but a person should approve the first batch.
The four gates
- Data gate. Every row has required fields, a demand signal and no near-duplicate sibling.
- Template gate. One rendered sample per page type is read end to end by a person. Ask: would I bookmark this?
- Batch gate. Uniqueness above threshold, word count above floor, unique titles and meta descriptions, valid schema, no broken links, no orphans.
- Post-launch gate. Index coverage and impressions in Search Console after a few weeks, before releasing the next batch.
A launch checklist you can paste into a skill
- Unique title, H1 and meta description per page
- Main content passes the uniqueness check
- Conditional sections hide when data is missing (no empty headings)
- Self-referencing canonical
- In the XML sitemap, no conflicting
noindex - Linked from a hub page and 3 to 5 related pages
- Breadcrumb and page-type schema validate
- Mobile render checked on a sample
Release in batches
Ship 50 to 100 pages, watch Search Console, then ship more. The Claude SEO skill’s 100-page warning and 500-page hard stop exist for this reason. Small batches turn a sitewide problem into a fixable one.
Related guides: SEO audit skills, schema markup skills and internal linking skills.
Takeaway: gates turn “Claude can make 10,000 pages” into “Claude made 80 pages we can defend”.
Building programmatic pages in Astro or Next.js with Claude Code
Short answer: both frameworks generate one route per data row at build time. In Astro, use getStaticPaths() in src/pages/[slug].astro or a content collection. In Next.js App Router, use generateStaticParams() in app/[slug]/page.tsx plus generateMetadata() for titles. Ask Claude to wire the quality gates into the build.
Astro
---
// src/pages/integrations/[slug].astro
import data from '../../data/integrations.json';
export function getStaticPaths() {
return data
.filter((row) => row.approved && row.setupSteps?.length)
.map((row) => ({ params: { slug: row.slug }, props: { row } }));
}
const { row } = Astro.props;
---
<h1>Connect Acme to {row.name}</h1>
{row.useCases?.length > 0 && <section><h2>Use cases</h2>...</section>}
The filter is the gate. Rows that fail the data audit never become routes, so they never reach the sitemap. Astro’s sitemap integration then lists only what was built.
Next.js
// app/integrations/[slug]/page.tsx
export async function generateStaticParams() {
const rows = await getApprovedIntegrations();
return rows.map((r) => ({ slug: r.slug }));
}
export const dynamicParams = false; // unknown slugs return 404
export async function generateMetadata({ params }) {
const row = await getIntegration((await params).slug);
return { title: `Connect Acme to ${row.name}`, description: row.summary };
}
dynamicParams = false stops Next.js from rendering pages for slugs you never approved, which closes a common index bloat leak.
Prompts that work well
- “Using the programmatic-seo skill, audit
data/integrations.jsonand list rows that should not get a page, with reasons.” - “Build the Astro route for this template. Hide any section whose data field is empty.”
- “Write a script that computes unique main-content percentage per built page in
dist/and fails if any page is under 40%.”
For crawl and render checks after the build, see technical SEO skills. Location builds have their own rules in local SEO skills.
Takeaway: put the gate in the route generator, so failing rows cannot ship by accident.
Index bloat: the quiet cost of scale
Short answer: index bloat is when Google crawls or indexes many low-value URLs from your site, such as thin programmatic pages, filter combinations or parameter variants. It wastes crawl attention and, per many practitioner reports, can drag on how the whole site is judged.
Where bloat comes from in pSEO
- Rows with no demand that got pages anyway
- Faceted combinations (
/crm/dentists/texas/small) that multiply URLs - Parameter URLs and trailing-slash variants
- Pagination on hub pages with no canonical plan
- Old pages from a previous template version still live
Fixes, from lightest to heaviest
| Situation | Fix |
|---|---|
| Duplicate variants of one page | Canonical to the main URL (Google’s guidance) |
| Useful to users, weak for search | noindex, keep it linked |
| Two pages, same intent | Merge and 301 redirect |
| No value at all | Remove and return 404 or 410 |
| Endless facet combinations | Do not generate them as routes |
Watch the “Crawled, currently not indexed” and “Discovered, currently not indexed” reports in Search Console. A rising count after a batch tells you Google is not convinced. Stop and fix the template before shipping more. When pages age, content refresh skills help decide what to update or prune.
Takeaway: every URL you publish is a claim that it deserves attention. Make fewer claims.
Common mistakes with Claude Code and programmatic SEO
- Installing a generation skill with no gate skill. Pair any template filler with Claude SEO’s
seo-programmaticor your own checks. - Letting Claude invent the data. If a field is empty, the section hides. Claude should never fill it with plausible guesses.
- Building every city. Doorway abuse is named in Google’s policy. Build where you have something local to say.
- Shipping 5,000 pages on day one. Batches of 50 to 100 let you learn before damage spreads.
- Ignoring AI search. Structured, factual pages are more likely to be cited by AI answers. See GEO skills.
- No hub pages. Orphaned pSEO pages look like doorways. Map them to a hierarchy first with topical map skills.
FAQ
What is the best Claude Code skill for programmatic SEO?
For strategy, coreyhaines31’s programmatic-seo skill in marketingskills. For quality gates and index bloat checks, the seo-programmatic skill in AgriciDaniel’s Claude SEO plugin. Both are free, and many people run both.
Is programmatic SEO still worth it in 2026?
It can be, when each page has unique data and a real search demand behind it. Integration, comparison, glossary and directory pages built on first-party data still fit Google’s policies. Thin location and keyword-swap pages carry the most risk.
Does Google penalize AI-generated programmatic pages?
Google’s spam policy targets pages made “for the primary purpose of manipulating search rankings,” “no matter how it’s created.” AI content is allowed; unhelpful content at scale is not.
What is scaled content abuse?
Google defines it as generating many pages mainly to manipulate rankings rather than help users. Examples include AI pages without added value, scraped or synonymized content, and stitched content from other sites.
How unique does each programmatic page need to be?
Google publishes no percentage. Claude SEO’s skill flags pages under 40% unique content as thin and pages under 300 words for review. Treat those as minimums.
How many programmatic pages should I publish at once?
Start with a batch of 50 to 100, watch Search Console for a few weeks, then expand. Claude SEO warns at 100 unreviewed pages and hard-stops at 500 without justification.
Can Claude Code build programmatic pages in Next.js?
Yes. It can write generateStaticParams(), generateMetadata() and data filters in the App Router, and add a uniqueness check to your build.
Can Claude Code build programmatic pages in Astro?
Yes. It can write getStaticPaths() routes or content collections, conditional sections and the sitemap integration setup.
Where do I get data for programmatic SEO?
Your own product, integration or usage data first. Then licensed or public datasets you enrich. Use DataForSEO, Ahrefs or Semrush MCP servers for search demand.
Are there paid Claude Code skills for programmatic SEO?
The one verified for this guide is the Ultimate Claude SEO & AEO Skills Pack on Contra at $39, which includes a Webflow programmatic SEO bonus. Most strong pSEO skills are free on GitHub.
How do I install a programmatic SEO skill?
Run npx skills add owner/repo for skill repos, or /plugin marketplace add owner/repo then /plugin install inside Claude Code for plugins. Manual installs go in ~/.claude/skills/<name>/SKILL.md.
What is index bloat?
Index bloat is a large number of low-value URLs crawled or indexed from your site. In pSEO it usually comes from rows with no demand, facet combinations and parameter variants.
How do I fix programmatic pages that got deindexed?
Audit which pages lack unique data, merge or remove them, improve the template, and resubmit the sitemap. Then release improved pages in small batches.
Should programmatic pages go on a subdomain or subfolder?
coreyhaines31’s skill recommends subfolders so pages sit inside your main site’s structure and authority.
Do I need an MCP server for programmatic SEO?
Not for building pages. You need one (or exported data) to check search demand per row, which decides which pages to build.
What are the best page types for programmatic SEO?
The coreyhaines31 skill lists 12 playbooks. Integrations, comparisons, glossaries, templates and directories tend to have the most natural unique data.
Sources and methodology
GitHub star counts and last-push dates were pulled from the GitHub API on 1 November 2026. Prices were read on the live product and pricing pages the same day. Skill descriptions come from each repo’s SKILL.md or directory listing. No skill was benchmarked for this guide, so nothing here reports test results.
- Google Search Central, Spam policies for Google web search
- Google Search Central, Creating helpful, reliable, people-first content
- Google Search Central, Consolidate duplicate URLs
- coreyhaines31/marketingskills, AgriciDaniel/claude-seo, alirezarezvani/claude-skills, davila7/claude-code-templates, sickn33/antigravity-awesome-skills
- DataForSEO pricing, Ahrefs pricing, Contra SEO & AEO Skills Pack
Your next step
Install one strategy skill and one gate skill, then run the data audit on your dataset before you write a template. If fewer than half your rows survive, that is the skill working. Build those pages, ship a batch, and let Search Console tell you whether to build more. For the wider toolkit, read Claude Code skills for marketers and skills for content writers.