programmatic-seo

Generated source view for the actual executable personal/programmatic-seo skill. The durable routing article is Writing and Content Skills. Source: skills/personal/programmatic-seo/SKILL.md

Runtime Source

Field Value
Category personal
Origin personal
Slug programmatic-seo
Source slug programmatic-seo
Family Writing and Content Skills
Source skills/personal/programmatic-seo/SKILL.md

Bundled Resources

These files are part of the executable skill folder and must be preserved with the skill source.

File Role
evals/evals.json Bundled resource
references/playbooks.md Progressive reference

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," or "templated landing pages." 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.

Skill Source

---
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," or "templated landing pages." 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.
origin: personal
source_slug: programmatic-seo
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. Main-Domain Risk Boundary
Do not put thin, disposable, or unproven pSEO experiments on the primary brand domain. Main-domain pSEO is only appropriate when the pages are durable, useful, unique, internally linked, and maintained. If the strategy is short-term, churny, or mostly variable-swapped pages, isolate it on a separate property, keep it noindexed/staged, or do not ship it.

Use the primary domain only when the pages strengthen long-term authority. Do not borrow brand authority for pages you expect to delete.

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

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

Apply two utility tests before generating a page family:

- Would this page still be useful if search engines did not exist?
- Would a person intentionally bookmark or return to this exact page?

A tool, calculator, dataset, comparison, workflow, or genuinely specific
resource can pass. A long response or a filled schema does not pass by itself.

### 7. Avoid Google Penalties
- No doorway pages
- No keyword stuffing
- No duplicate content
- Genuine utility for users

---

## The 12 Playbooks (Overview)

| Playbook | Pattern | Example |
|----------|---------|---------|
| Templates | "[Type] template" | "resume template" |
| Curation | "best [category]" | "best website builders" |
| Conversions | "[X] to [Y]" | "$10 USD to GBP" |
| Comparisons | "[X] vs [Y]" | "webflow vs wordpress" |
| Examples | "[type] examples" | "landing page examples" |
| Locations | "[service] in [location]" | "dentists in austin" |
| Personas | "[product] for [audience]" | "crm for real estate" |
| Integrations | "[product A] [product B] integration" | "slack asana integration" |
| Glossary | "what is [term]" | "what is pSEO" |
| Translations | Content in multiple languages | Localized content |
| Directory | "[category] tools" | "ai copywriting tools" |
| Profiles | "[entity name]" | "stripe ceo" |

**For detailed playbook implementation**: See [references/playbooks.md](references/playbooks.md)

---

## Choosing Your Playbook

| If you have... | Consider... |
|----------------|-------------|
| Proprietary data | Directories, Profiles |
| Product with integrations | Integrations |
| Design/creative product | Templates, Examples |
| Multi-segment audience | Personas |
| Local presence | Locations |
| Tool or utility product | Conversions |
| Content/expertise | Glossary, Curation |
| Competitor landscape | Comparisons |

You can layer multiple playbooks (e.g., "Best coworking spaces in San Diego").

### Competitor Comparison Pages

Use the comparison playbook when users are blocked on product choice and search for "[product] vs [competitor]", "[competitor] alternatives", "[competitor] review", or "best [category] for [use case]".

For each competitor page:

- Use the product yourself before writing. Record dated pricing, setup steps, screenshots, and real limitations.
- Pull customer language from external reviews and communities so the page matches how buyers actually describe the problem.
- Put the verdict in the first paragraph, then use tables for pricing, feature coverage, target user, migration path, and tradeoffs.
- Include exact-match H1/title/slug, FAQ schema, last-updated date, author/entity attribution, and internal links to category hubs.
- Re-run AI-search checks after indexing: Google AI Overview / AI Mode, ChatGPT, Perplexity, Gemini, and Copilot.

The aim is to resolve a blocked project with a credible recommendation a human or model can cite.

---

## Implementation Framework

### 1. Keyword Pattern Research

**Identify the pattern:**
- What's the repeating structure?
- What are the variables?
- How many unique combinations exist?

**Validate demand:**
- Aggregate search volume
- Volume distribution (head vs. long tail)
- Trend direction

### 2. Data Requirements

**Identify data sources:**
- What data populates each page?
- Is it first-party, scraped, licensed, public?
- How is it updated?

### 3. Template Design

**Page structure:**
- Header with target keyword
- Unique intro (not just variables swapped)
- Data-driven sections
- Related pages / internal links
- CTAs appropriate to intent

**Ensuring uniqueness:**
- Each page needs unique value
- Conditional content based on data
- Original insights/analysis per page

### 4. Internal Linking Architecture

**Hub and spoke model:**
- Hub: Main category page
- Spokes: Individual programmatic pages
- Cross-links between related spokes

**Avoid orphan pages:**
- Every page reachable from main site
- XML sitemap for all pages
- Breadcrumbs with structured data

### 5. Indexation Strategy

- Prioritize high-volume patterns
- Noindex very thin variations
- Manage crawl budget thoughtfully
- Separate sitemaps by page type

### 6. Schema and Renderer Architecture

For AI-assisted page generation, keep four layers separate:

1. **Taxonomy** — versioned audience/niche records with pain points, language,
   intent, constraints, source rights, and maintenance ownership.
2. **Typed payload** — the model fills a strict, versioned JSON schema; it does
   not generate arbitrary HTML or choose which URLs enter the index.
3. **Validator** — reject missing fields, unsupported claims, invalid links,
   duplicate or near-duplicate payloads, unsafe topics, and out-of-range values.
4. **Renderer** — a purpose-built component for the page type owns semantics,
   accessibility, interaction, schema markup, internal links, and responsive UI.

Generation and presentation must remain independently replaceable. A redesign
should not require regenerating valid content, and a model change should not be
able to rewrite URL, canonical, robots, or component policy.

Deterministic code should own titles, slugs, identifiers, breadcrumbs, and
other fields when it can do so from accepted data. Determinism is not a license
to create every combinatorial URL.

### 7. Candidate-to-Index Admission

Treat `generated`, `published`, and `indexed` as separate states:

```text
candidate -> schema-valid -> factual/source-valid -> rendered preview
  -> sampled human review -> staged/noindex batch -> observed cohort
  -> index allowlist -> monitor -> refresh, consolidate, noindex, or remove
```

Before a batch becomes indexable, require:

- a named page type, audience, intent, conversion or utility goal, and owner;
- source and rights provenance for each factual/data field;
- per-page completeness, factual, link, accessibility, and structured-data checks;
- pairwise/cluster similarity and cannibalization checks across the batch;
- raw HTTP proof for title, canonical, robots, status, primary content, and schema;
- rendered browser proof for interaction, mobile layout, performance, and no-JS fallback;
- an index budget and staged cohort small enough to diagnose;
- removal, consolidation, redirect, `noindex`, and `410` procedures appropriate to the case.

Do not submit the whole generated corpus to a sitemap merely because validation
passed. Index admission is an evidence decision, not a side effect of generation.

---

## Quality Checks

### Pre-Launch Checklist

**Content quality:**
- [ ] Each page provides unique value
- [ ] Answers search intent
- [ ] Readable and useful
- [ ] Main-domain risk reviewed; short-term/thin experiments isolated

**Technical SEO:**
- [ ] Unique titles and meta descriptions
- [ ] Proper heading structure
- [ ] Schema markup implemented
- [ ] Page speed acceptable
- [ ] Raw HTML has the page-specific title, canonical, robots policy, status, and primary content
- [ ] Rendered output and no-JS fallback remain useful and consistent with the raw response

**Corpus quality:**
- [ ] Typed payload validates against a pinned schema version
- [ ] Claims and data fields retain source/rights provenance
- [ ] Similarity and cannibalization checks pass within and across page types
- [ ] A sampled reviewer inspected real pages from every release cohort

**Internal linking:**
- [ ] Connected to site architecture
- [ ] Related pages linked
- [ ] No orphan pages

**Indexation:**
- [ ] In XML sitemap
- [ ] Crawlable
- [ ] No conflicting noindex

### Post-Launch Monitoring

Track by page type, niche, and release cohort: submitted, crawled, indexed,
excluded reason, impressions, clicks, engagement, conversion, correction rate,
support burden, and maintenance cost.

Watch for: Thin-content patterns, ranking drops, manual actions, crawl errors,
canonical drift, similarity/cannibalization, factual decay, broken interactive
features, and pages whose only observed value is search entry.

---

## Common Mistakes

- **Thin content**: Just swapping city names in identical content
- **Keyword cannibalization**: Multiple pages targeting same keyword
- **Over-generation**: Creating pages with no search demand
- **Poor data quality**: Outdated or incorrect information
- **Ignoring UX**: Pages exist for Google, not users
- **Main-domain authority risk**: Shipping disposable pSEO on the brand domain
- **Schema laundering**: Treating type-valid JSON as proof that the page is useful or correct
- **Generation equals indexation**: Publishing every valid permutation and submitting it automatically
- **Early-traffic survivorship**: Treating a short-term click lift or partial indexation as durable safety proof
- **Client-only SEO shell**: Deep URLs return generic title/canonical/content until JavaScript runs

## Scaled-Content or Manual-Action Response

If Search Console reports a manual action or a page family shows systemic
low-value behavior:

1. Stop expanding and stop auto-admitting new URLs.
2. Identify every affected pattern and page family, not only reported examples.
3. Preserve source, generation revision, sitemap cohort, Search Console evidence,
   and the remediation decision.
4. Repair genuinely useful pages; consolidate overlaps; `noindex` candidates
   that need work; return an appropriate removal status for pages that should
   disappear. Do not block removed URLs in `robots.txt` before the crawler can
   observe their final response.
5. Update sitemaps, internal links, canonicals, and generated-page inventory.
6. Re-run raw-response, rendered, similarity, factual, and utility checks.
7. Use Search Console's Manual Actions report and submit a reconsideration
   request only after all affected patterns are fixed and reachable for review.

Traffic recovery is not the only completion test. The generator, admission
policy, and maintenance loop must be changed so the same failure cannot replay.

---

## Output Format

### Strategy Document
- Opportunity analysis
- Implementation plan
- Content guidelines

### Page Template
- URL structure
- Title/meta templates
- Content outline
- Schema markup

---

## Task-Specific Questions

1. What keyword patterns are you targeting?
2. What data do you have (or can acquire)?
3. How many pages are you planning?
4. What does your site authority look like?
5. Who currently ranks for these terms?
6. What's your technical stack?

---

## Related Skills

- **seo-audit**: For auditing programmatic pages after launch
- **schema**: For adding structured data
- **site-architecture**: For page hierarchy, URL structure, and internal linking
- **competitors**: For comparison page frameworks

Timeline

1 page links here