Programmatic SEO
Design scalable content strategies that produce hundreds or thousands of search-optimized pages from structured data. Match data assets to one of 12 proven playbooks, then specify the schema, URL structure, templates, internal linking, and quality controls needed to ship without thin content. Output is a strategy document — not page copy. Hand off to /landing-page-copy or /aeo-content for execution.
Doctrine inherited (Step 7 — 0626 rollout, locked 2026-06-04)
Output complies with:
Refinements applied to this skill:
| Code |
Refinement |
How it lands in programmatic-seo |
| R1 |
Source placement |
Strategy doc → client-team review surface → cleaned tags in appendix toggle. Rendered template pages → end-customer-facing → no sources. |
| R3 |
Product-update tone |
Template copy directions frame as capability-led. |
| R6 |
CTA hierarchy |
Per-template CTA → sign-up primary for bottom-of-template, blog as fallback for top. |
| R7 |
FAQ titles + no sources block |
Template URL patterns use FAQ shape where applicable ("X vs Y", "How to do X with Y"). |
| R8 |
Entity-name headings |
Template section headings repeat the variable entity name. |
| R9 |
Action-oriented section names |
"How [Entity] works / How to choose [Entity]" — verb-led. |
- User asks for "programmatic SEO", "pSEO", "scaled content", "landing page factory", "comparison pages at scale", "[X] vs [Y] pages", "alternative pages strategy", or "template directory"
- Client has structured data (integrations, locations, competitors, templates, glossary terms, entities) and wants traffic from long-tail patterned queries
- Strategy needed before execution: schema, URLs, templates, linking, quality gates
Do NOT run when: single landing page (use /landing-page-copy), broad content strategy (use /aeo-content), competitor research only (use /competitor-research).
Full trigger list + flowchart: the premium reference.
Inputs
Required:
| Input |
Description |
Source |
| Business model |
What the company does |
User provides |
| Data assets |
What structured data exists or can be created |
User provides or discover |
Recommended (improves quality): competitor pSEO examples, search demand data, ICP research, existing content audit. Optional input table + validation checklist: the premium reference.
Upstream skills: icp-behavioural, competitor-research, aeo-content (recommended, not required).
Steps
- Asset audit (Phase 1). Inventory existing or creatable structured data. Confirm business model + goal (traffic / conversions / authority). If inputs missing, ask before proceeding.
- Match data to playbooks (Phase 2.1). Use the 12-playbook matrix in the premium reference (Templates, Curation, Conversions, Comparisons, Examples, Locations, Personas, Integrations, Glossary, Translations, Directory, Profiles).
- Evaluate search demand (Phase 2.2). Research keyword patterns, estimate volume, assess difficulty. Never invent volume — flag as "estimated, validate with keyword research" if no data.
- Assess competitive landscape (Phase 2.3). Saturation, quality, authority, differentiation. Use
find_similar_links_exa against client URL to surface competitor pSEO.
- Select 1-2 playbooks (Phase 2.4). Use the prioritization matrix (data readiness × demand × competition) in the premium reference. Recommend starting with one playbook before expanding.
- Design data schema (Phase 3.1). YAML schema for the entities powering pages. Example schemas per playbook: the premium reference.
- Define URL structure (Phase 3.2). Hyphenated, keyword-bearing, predictable. Pattern table per playbook in the premium reference.
- Specify template sections (Phase 3.3). Hero, quick answer, dynamic comparison/data block, use-case guidance, FAQ (with FAQ schema), CTA. Every page needs unique value, dynamic content, static framework, internal links, conversion path.
- Map internal linking (Phase 3.4). Hub-and-spoke — every page → category hub, related pages cross-link, footer/sidebar navigation.
- Specify schema markup (Phase 3.5). Pick primary + additional schema per playbook. JSON-LD templates: the premium reference. Schema-by-playbook table: the premium reference.
- Define quality controls (Phase 4). Word-count thresholds (Comparison ≥1,000 / Template ≥500 / Glossary ≥300 / Directory ≥400), differentiation requirements, maintenance schedule. Full thresholds + checks: the premium reference.
- Run self-evaluation. Completeness, evidence quality, guardrails, self-roast questions. Full protocol: the premium reference.
- Format output. Use the standard 7-section structure (Executive Summary → Asset Inventory → Playbook Recommendation → Architecture → Schema Plan → Quality Controls → Roadmap → Success Metrics). Full template: the premium reference.
- Present at Review Gate 2 (Standard). Actions: Approve / Validate demand / Pilot first. Recommend 10-page pilot before scaling to 100+.
- Suggest chain. "Ready to write template copy with
/landing-page-copy?" / "Want to detail the data schema?" / "Audit competitor pSEO with /competitor-research?"
What good looks like
Evaluations (binary)
Final ship gate
Run /premortem --output before ship. See /premortem skill for the 5 execution domains (will-it-resonate / will-it-convert / will-it-stay-on-brand / will-stakeholder-push-back / will-it-degrade-over-time) and output template.
Trivial-case escape: ## Premortem\nNo failure modes — trivial change satisfies the contract for genuinely trivial outputs.
Persuasion & stickiness pass
Output complies with persuasion-and-stickiness.md — Cialdini's 7 persuasion levers + Heath's SUCCESs. Deploy the 1-2 Cialdini levers that fit the reader's barrier (never all seven; every lever must be TRUE), run the SUCCESs diagnostic (Simple / Unexpected / Concrete / Credible / Emotional / Stories) over the near-final draft, then the rule's pre-ship gate.
1---2name: programmatic-seo3description: Programmatic SEO4---56# Programmatic SEO78Design scalable content strategies that produce hundreds or thousands of search-optimized pages from structured data. Match data assets to one of 12 proven playbooks, then specify the schema, URL structure, templates, internal linking, and quality controls needed to ship without thin content. Output is a strategy document — not page copy. Hand off to `/landing-page-copy` or `/aeo-content` for execution.910## Doctrine inherited (Step 7 — 0626 rollout, locked 2026-06-04)1112Output complies with:1314- [`output-tenets.md`](../../../../../rules/output-tenets.md), [`output-simplicity.md`](../../../../../rules/output-simplicity.md)15- Step 6 calibration: see [[feedback_execution_doctrine_refinements_step6]]1617**Refinements applied to this skill:**1819| Code | Refinement | How it lands in programmatic-seo |20|---|---|---|21| **R1** | Source placement | Strategy doc → client-team review surface → cleaned tags in appendix toggle. Rendered template pages → end-customer-facing → no sources. |22| **R3** | Product-update tone | Template copy directions frame as capability-led. |23| **R6** | CTA hierarchy | Per-template CTA → sign-up primary for bottom-of-template, blog as fallback for top. |24| **R7** | FAQ titles + no sources block | Template URL patterns use FAQ shape where applicable ("X vs Y", "How to do X with Y"). |25| **R8** | Entity-name headings | Template section headings repeat the variable entity name. |26| **R9** | Action-oriented section names | "How [Entity] works / How to choose [Entity]" — verb-led. |2728- User asks for "programmatic SEO", "pSEO", "scaled content", "landing page factory", "comparison pages at scale", "[X] vs [Y] pages", "alternative pages strategy", or "template directory"29- Client has structured data (integrations, locations, competitors, templates, glossary terms, entities) and wants traffic from long-tail patterned queries30- Strategy needed before execution: schema, URLs, templates, linking, quality gates3132**Do NOT run when:** single landing page (use `/landing-page-copy`), broad content strategy (use `/aeo-content`), competitor research only (use `/competitor-research`).3334Full trigger list + flowchart: the premium reference.3536## Inputs3738**Required:**3940| Input | Description | Source |41|-------|-------------|--------|42| Business model | What the company does | User provides |43| Data assets | What structured data exists or can be created | User provides or discover |4445**Recommended (improves quality):** competitor pSEO examples, search demand data, ICP research, existing content audit. Optional input table + validation checklist: the premium reference.4647**Upstream skills:** `icp-behavioural`, `competitor-research`, `aeo-content` (recommended, not required).4849## Steps50511. **Asset audit (Phase 1).** Inventory existing or creatable structured data. Confirm business model + goal (traffic / conversions / authority). If inputs missing, ask before proceeding.522. **Match data to playbooks (Phase 2.1).** Use the 12-playbook matrix in the premium reference (Templates, Curation, Conversions, Comparisons, Examples, Locations, Personas, Integrations, Glossary, Translations, Directory, Profiles).533. **Evaluate search demand (Phase 2.2).** Research keyword patterns, estimate volume, assess difficulty. Never invent volume — flag as "estimated, validate with keyword research" if no data.544. **Assess competitive landscape (Phase 2.3).** Saturation, quality, authority, differentiation. Use `find_similar_links_exa` against client URL to surface competitor pSEO.555. **Select 1-2 playbooks (Phase 2.4).** Use the prioritization matrix (data readiness × demand × competition) in the premium reference. Recommend starting with one playbook before expanding.566. **Design data schema (Phase 3.1).** YAML schema for the entities powering pages. Example schemas per playbook: the premium reference.577. **Define URL structure (Phase 3.2).** Hyphenated, keyword-bearing, predictable. Pattern table per playbook in the premium reference.588. **Specify template sections (Phase 3.3).** Hero, quick answer, dynamic comparison/data block, use-case guidance, FAQ (with FAQ schema), CTA. Every page needs unique value, dynamic content, static framework, internal links, conversion path.599. **Map internal linking (Phase 3.4).** Hub-and-spoke — every page → category hub, related pages cross-link, footer/sidebar navigation.6010. **Specify schema markup (Phase 3.5).** Pick primary + additional schema per playbook. JSON-LD templates: the premium reference. Schema-by-playbook table: the premium reference.6111. **Define quality controls (Phase 4).** Word-count thresholds (Comparison ≥1,000 / Template ≥500 / Glossary ≥300 / Directory ≥400), differentiation requirements, maintenance schedule. Full thresholds + checks: the premium reference.6212. **Run self-evaluation.** Completeness, evidence quality, guardrails, self-roast questions. Full protocol: the premium reference.6313. **Format output.** Use the standard 7-section structure (Executive Summary → Asset Inventory → Playbook Recommendation → Architecture → Schema Plan → Quality Controls → Roadmap → Success Metrics). Full template: the premium reference.6414. **Present at Review Gate 2 (Standard).** Actions: Approve / Validate demand / Pilot first. Recommend 10-page pilot before scaling to 100+.6515. **Suggest chain.** "Ready to write template copy with `/landing-page-copy`?" / "Want to detail the data schema?" / "Audit competitor pSEO with `/competitor-research`?"6667## What good looks like6869### Evaluations (binary)7071- [ ] Playbook recommendation has explicit rationale (data readiness + demand + competitive gap)72- [ ] Search demand estimated with basis, not invented73- [ ] Data schema defined in YAML74- [ ] URL pattern documented with example75- [ ] Template sections specified (≥5 sections, mix of dynamic + static)76- [ ] Internal linking architecture mapped77- [ ] Schema markup types named per page type78- [ ] Word-count thresholds set per page type79- [ ] Differentiation requirements stated (no boilerplate-only)80- [ ] Maintenance schedule named with triggers81- [ ] No guaranteed rankings; thin-content risk flagged82- [ ] Pilot of 10 pages recommended before scaling8384## Final ship gate8586Run `/premortem --output` before ship. See [`/premortem` skill](../../../../meta/orchestration/premortem/SKILL.md) for the 5 execution domains (will-it-resonate / will-it-convert / will-it-stay-on-brand / will-stakeholder-push-back / will-it-degrade-over-time) and output template.8788Trivial-case escape: `## Premortem\nNo failure modes — trivial change` satisfies the contract for genuinely trivial outputs.8990---9192## Persuasion & stickiness pass9394Output complies with [persuasion-and-stickiness.md](../../../../../rules/persuasion-and-stickiness.md) — Cialdini's 7 persuasion levers + Heath's SUCCESs. Deploy the 1-2 Cialdini levers that fit the reader's barrier (never all seven; every lever must be TRUE), run the SUCCESs diagnostic (Simple / Unexpected / Concrete / Credible / Emotional / Stories) over the near-final draft, then the rule's pre-ship gate.