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," or "building many pages for SEO." For auditing existing SEO issues, see seo-audit.
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.
Check for product marketing context first:
If .claude/product-marketing-context.md exists, 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:
Business Context
Opportunity Assessment
Competitive Landscape
Hierarchy of data defensibility:
Always use subfolders, not subdomains:
yoursite.com/templates/resume/templates.yoursite.com/resume/Pages must actually answer what people are searching for.
Better to have 100 great pages than 10,000 thin ones.
| 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" |
| 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").
Identify the pattern:
Validate demand:
Identify data sources:
Generate and sanity-check the URL space before building templates:
python3 scripts/url_pattern_generator.py pattern.json --json # no arg = embedded demo
Give it the template (e.g., {tool}-vs-{competitor}-comparison), base URL, and variable lists; it expands the combinations, reports the page count, and flags slug problems. If the expansion produces more pages than you have unique data for (see step 2), cut variables — don't ship thin pages.
Page structure:
Ensuring uniqueness:
Hub and spoke model:
Avoid orphan pages:
Content quality:
Technical SEO:
Internal linking:
Indexation:
Track: Indexation rate, Rankings, Traffic, Engagement, Conversion
Watch for: Thin content warnings, Ranking drops, Manual actions, Crawl errors
.claude/product-marketing-context.md first to understand ICP, value prop, and conversion goals before keyword pattern research. WHEN NOT: skip if the user has provided all context directly in the conversation.All programmatic SEO output follows this quality standard:
Automatically surface programmatic-seo when:
| Artifact | Format | Description | |----------|--------|-------------| | Opportunity Analysis | Markdown table | Keyword patterns × estimated volume × data source × difficulty rating | | Playbook Selection Matrix | Table | If/then mapping of business context to recommended playbook with rationale | | Page Template Spec | Markdown with annotated sections | URL pattern, title/meta templates, content block structure, unique value rules | | Pre-Launch Checklist | Checkbox list | Content quality, technical SEO, internal linking, indexation gates | | Post-Launch Monitoring Plan | Table | Metrics to track × tools × alert thresholds × review cadence |
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/programmatic-seo · pinned to the source commit
# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/programmatic-seo" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/programmatic-seo" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/programmatic-seo
Scanner static-checks@0.1.0 · commit 19392f7a0826. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
No static rules matched. This is not a safety guarantee.