programmatic-seo
A Claude Code skill that designs SEO-driven pages at scale using templates and data — directory pages, location pages, comparisons, integrations — that rank without triggering thin-content penalties.
Build pSEO pages at scale that don't get penalized
Trigger phrases
Phrases that activate this skill when typed to Claude Code:
programmatic SEOpSEOtemplate pagespages at scaledata-driven pages
What it does
programmatic-seo is a Claude Code skill from Corey Haines’s marketing-skills repo. It turns Claude into a pSEO architect who designs templated page programs — directory pages, location pages, “[X] for [Y]” pages, integration pages — with enough unique data per page to avoid thin-content penalties and thoughtful internal-linking. The skill activates when you mention “programmatic SEO”, “pSEO”, “template pages”, or “generate 100 pages”.
The output of a session is a pSEO plan: data source identification, page-template structure (which sections are static vs data-driven vs uniquely written), URL pattern, internal-linking strategy, indexation control plan, and a quality-bar definition that prevents the spam-trap version of pSEO.
When to use it
Reach for it when:
- You have data (a directory, integrations, locations) that maps to long-tail search demand
- A competitor is winning a category with templated pages and you can do better with sharper data
- You want a content moat that doesn’t require writing 500 individual posts
When not to reach for it:
- You don’t actually have unique data per page — that’s just thin content
- Your domain authority is too low to support 1000 new URLs without crawl-budget issues
Install
The skill is distributed via Corey Haines’s marketing-skills repo. Install via the repo’s recommended path — copy the programmatic-seo SKILL.md into your project’s .claude/skills/programmatic-seo/ directory, or use the repo’s plugin install if you’ve set it up.
Once installed, the skill activates on the trigger phrases above. The first time it runs, it will check for .agents/product-marketing-context.md (or .claude/product-marketing-context.md) — populating that file with your product context first dramatically improves output quality across all of Haines’s marketing skills.
What a session looks like
A typical session has three phases:
- Data + intent fit. What data do you have, what queries does it map to, what’s the searcher’s intent? The skill rejects ideas where the data is too generic to differentiate.
- Template design. Section structure, ratio of templated vs unique content (the unique percentage is the make-or-break), URL pattern, schema markup per page type.
- Quality + indexation. A quality bar each page must meet before it’s indexed (content depth, data uniqueness), staged rollout, and indexation controls (
noindexfor thin pages, sitemap chunking).
The discipline that makes it work: enough unique data per page that each one would justify being indexed individually. The skill’s pSEO is library-quality, not spam-quality.
Receipts
Honest reporting on what programmatic-seo produces and where it has limits:
Where it works well:
- The unique-content-percentage discipline is what separates real pSEO from doorway pages
- Staged-rollout with indexation controls catches thin pages before they hurt the domain
- Template structure with internal linking compounds — pages bring each other up
Where it backfires:
- pSEO is engineering-heavy; the skill scopes the plan but you still need to ship the build
- Without data verification the program can publish errors at scale; QA matters more than for one-off content
Pattern that works: ship 50 pages first, watch indexation and rankings for a month, then scale. Launching 5,000 pages on day one is how programs get the manual-action email.
Source and attribution
Originally written by Corey Haines. The canonical SKILL.md and any supporting files live in the programmatic-seo folder of his marketing-skills repository.
License: MIT. You can install, adapt, and redistribute the skill, with attribution preserved.
This page documents the skill from a practitioner’s perspective. For the formal spec and any updates, defer to the source repo.