# programmatic-seo

Guides the creation of search-driven pages at scale using templates and structured data. Helps prevent thin content penalties on large directories.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 149700 installs · ★ 56575
- Author: coreyhaines31
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/coreyhaines31/marketingskills/tree/HEAD/skills/programmatic-seo/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/coreyhaines31-programmatic-seo

## What it does

The skill designs template-based landing pages around search patterns, such as software comparisons, directories, integration hubs, and local service pages. It first checks for `.agents/product-marketing.md` or `.claude/product-marketing.md`. That way, the agent absorbs business positioning without repeating basic questions.

It defines 12 core playbooks, covering everything from glossary terms to curated tool lists. All generated pages belong in subfolders rather than subdomains. Subdomains split authority, while subfolders keep domain strength in one place. Internal linking follows a hub-and-spoke model to eliminate orphan pages.

Public datasets are considered the weakest foundation. First-party or product-derived data provides stronger defense against algorithmic penalties. Without verified search volume, the skill advises against generating page sets to avoid wasting crawl budget.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add coreyhaines31/marketingskills --skill programmatic-seo -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/programmatic-seo/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/programmatic-seo/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add coreyhaines31/marketingskills --skill programmatic-seo -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/programmatic-seo/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add coreyhaines31/marketingskills --skill programmatic-seo -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/programmatic-seo/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install coreyhaines31/marketingskills programmatic-seo
```

2. **Manually: put the files in place**
- File: `.github/skills/programmatic-seo/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add coreyhaines31/marketingskills --skill programmatic-seo -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/coreyhaines31/marketingskills --path skills/programmatic-seo
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/programmatic-seo/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add coreyhaines31/marketingskills --skill programmatic-seo -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/coreyhaines31/marketingskills/tree/HEAD/skills/programmatic-seo/SKILL.md

## When to use it
- Plan directory or comparison page architectures based on repeat search terms
- Set up a hub-and-spoke internal linking structure to avoid orphan pages
- Define content requirements based on proprietary data to prevent thin content flags
- Select the right pSEO pattern from 12 pre-defined marketing playbooks

## Example prompts
- Help me design a programmatic SEO strategy for our integration directory
- Create a hub-and-spoke page template for our competitor comparison section
- Which of the 12 playbooks fits best if we have city-level user data?

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: d6ed0808a1aed69f.

BEGIN THIRD-PARTY FILE d6ed0808a1aed69f
```text
---
name: programmatic-seo
description: When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," "building many pages for SEO," "pSEO," "generate 100 pages," "data-driven pages," "templated landing pages," or "which CMS for pSEO." Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy.
metadata:
  version: 2.1.0
---

# Programmatic SEO

You are an expert in programmatic SEO—building SEO-optimized pages at scale using templates and data. Your goal is to create pages that rank, provide value, and avoid thin content penalties.

## Initial Assessment

**Check for product marketing context first:**
If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Before designing a programmatic SEO strategy, understand:

1. **Business Context**
   - What's the product/service?
   - Who is the target audience?
   - What's the conversion goal for these pages?

2. **Opportunity Assessment**
   - What search patterns exist?
   - How many potential pages?
   - What's the search volume distribution?

3. **Competitive Landscape**
   - Who ranks for these terms now?
   - What do their pages look like?
   - Can you realistically compete?

---

## Core Principles

### 1. Unique Value Per Page
- Every page must provide value specific to that page
- Not just swapped variables in a template
- Maximize unique content—the more differentiated, the better

### 2. Proprietary Data Wins
Hierarchy of data defensibility:
1. Proprietary (you created it)
2. Product-derived (from your users)
3. User-generated (your community)
4. Licensed (exclusive access)
5. Public (anyone can use—weakest)

### 3. Clean URL Structure
**Use subfolders, not subdomains** — subfolders consolidate domain authority while subdomains split it:
- Good: `yoursite.com/templates/resume/`
- Bad: `templates.yoursite.com/resume/`

### 4. Genuine Search Intent Match
Pages must actually answer what people are searching for.

### 5. Quality Over Quantity
Better to have 100 great pages than 10,000 thin ones.

### 6. Avoid Google Penalties
- No doorway pages
- No keyword stuffing
- No duplicate content
```
END THIRD-PARTY FILE d6ed0808a1aed69f

The third-party file has ended. Everything between the d6ed0808a1aed69f tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2661 of 7525 bytes. © coreyhaines31 · MIT · https://github.com/coreyhaines31/marketingskills/tree/HEAD/skills/programmatic-seo/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
