Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/alirezarezvani-programmatic-seo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 212% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-23 | ✗→✓ | ▲ Improved | 64% | 0% |
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:
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:
bashpython3 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 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 29,251 | 31,398 | +7% | 1 | 1 | 0% | 5,822 | 7,640 | +31% | 0 | 0 | — |
case-01 | fail→fail | 33,400 | 19,353 | -42% | 1 | 1 | 0% | 6,232 | 6,016 | -3% | 0 | 0 | — |
case-03 | fail→pass | 32,876 | 22,954 | -30% | 1 | 1 | 0% | 6,220 | 6,777 | +9% | 0 | 0 | — |
case-04 | pass→pass | 17,912 | 17,498 | -2% | 1 | 1 | 0% | 3,007 | 5,362 | +78% | 0 | 0 | — |
case-05 | pass→fail | 19,100 | 16,570 | -13% | 1 | 1 | 0% | 3,364 | 5,340 | +59% | 0 | 0 | — |
case-06 | pass→pass | 17,282 | 13,225 | -23% | 1 | 1 | 0% | 2,788 | 4,599 | +65% | 0 | 0 | — |
case-07 | pass→pass | 11,662 | 9,513 | -18% | 1 | 1 | 0% | 1,988 | 4,095 | +106% | 0 | 0 | — |
case-08 | fail→pass | 5,047 | 2,926 | -42% | 1 | 1 | 0% | 946 | 2,955 | +212% | 0 | 0 | — |
case-09 | pass→pass | 14,031 | 10,461 | -25% | 1 | 1 | 0% | 2,328 | 4,286 | +84% | 0 | 0 | — |
case-10 | pass→pass | 10,203 | 11,053 | +8% | 1 | 1 | 0% | 1,916 | 4,418 | +131% | 0 | 0 | — |
case-11 | pass→fail | 19,058 | 22,438 | +18% | 1 | 1 | 0% | 3,409 | 6,566 | +93% | 0 | 0 | — |
case-12 | pass→pass | 11,252 | 13,813 | +23% | 1 | 1 | 0% | 1,987 | 4,948 | +149% | 0 | 0 | — |
case-13 | pass→pass | 13,104 | 14,659 | +12% | 1 | 1 | 0% | 2,411 | 4,992 | +107% | 0 | 0 | — |
case-14 | pass→pass | 15,415 | 16,989 | +10% | 1 | 1 | 0% | 2,756 | 5,582 | +103% | 0 | 0 | — |
case-15 | pass→pass | 9,342 | 7,458 | -20% | 1 | 1 | 0% | 1,659 | 3,640 | +119% | 0 | 0 | — |
case-16 | pass→pass | 11,879 | 11,728 | -1% | 1 | 1 | 0% | 2,567 | 4,816 | +88% | 0 | 0 | — |
case-17 | pass→pass | 10,363 | 7,551 | -27% | 1 | 1 | 0% | 1,805 | 3,589 | +99% | 0 | 0 | — |
case-18 | fail→pass | 8,366 | 2,083 | -75% | 1 | 1 | 0% | 1,452 | 2,693 | +85% | 0 | 0 | — |
case-19 | pass→pass | 12,935 | 11,976 | -7% | 1 | 1 | 0% | 2,275 | 4,357 | +92% | 0 | 0 | — |
case-20 | pass→pass | 16,249 | 14,956 | -8% | 1 | 1 | 0% | 2,634 | 4,938 | +87% | 0 | 0 | — |
case-21 | pass→pass | 16,490 | 10,463 | -37% | 1 | 1 | 0% | 2,824 | 4,279 | +52% | 0 | 0 | — |
case-22 | fail→fail | 15,862 | 11,001 | -31% | 1 | 1 | 0% | 2,657 | 4,332 | +63% | 0 | 0 | — |
case-23 | fail→pass | 16,128 | 12,176 | -25% | 1 | 1 | 0% | 2,743 | 4,499 | +64% | 0 | 0 | — |
case-24 | pass→pass | 11,820 | 10,662 | -10% | 1 | 1 | 0% | 2,166 | 4,248 | +96% | 0 | 0 | — |
case-25 | fail→pass | 8,944 | 4,178 | -53% | 1 | 1 | 0% | 1,600 | 3,087 | +93% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +16 percentage points is the difference between those two pass rates over the 25 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.