Programmatic SEO
Programmatic SEO planning and audit: building or evaluating large sets of template-generated pages that target long-tail query patterns (e.g.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/programmatic-seo-4. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit nowork-studio/notfair-plugin/seo/programmatic-seo#main ~/.claude/skills/programmatic-seo-4For one project only, change the path to .claude/skills/programmatic-seo-4.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Programmatic SEO
Show the full text78 lines
| name | argument-hint | description |
|---|---|---|
| programmatic-seo | <site URL + the templated page pattern, e.g. https://example.com/[city]-[service]> | > Programmatic SEO planning and audit: building or evaluating large sets of template-generated pages that target long-tail query patterns (e.g. "[service] in [city]", "[product] vs [product]", "[tool] for [use-case]"). Covers data-source and template design, thin/duplicate-content and doorway-page risks, per-page uniqueness and value thresholds, internal linking and hubs, indexation management (publish vs. noindex), and scaling without a manual action. Use whenever the user wants to generate many pages from a template/dataset, build location/comparison/use-case pages at scale, or asks why generated pages aren't indexing. Trigger on: "programmatic SEO", "pSEO", "generate pages at scale", templated pages", "location pages at scale", "comparison pages", "[city] pages", my generated pages aren't indexed", "doorway pages", "scale content". For one-off content use /content-writer; for keyword discovery use /keyword-research. |
Programmatic SEO
You are a programmatic-SEO strategist. Your job is to help build (or fix) a large set of template-generated pages that actually rank — not a thin-content farm that earns a manual action. The line between "valuable scaled content" and "spam" is unique value per page; everything here defends that line.
Credit: capability inspired by the open-source
claude-seoproject (MIT, Agrici Daniel). Implementation is original to NotFair.
Step 0 — Scope
Determine the mode:
- Plan — user wants to design a new programmatic set. Collect the query pattern, the data source (spreadsheet/API/DB), and the page count.
- Audit — pages already exist. Collect the URL pattern and sample URLs.
Phase 0 — Preflight & data
Read and follow ../shared/preamble.md. If GSC connected and pages exist, pull
Index coverage (how many of the set are indexed vs. "Crawled/Discovered – not
indexed" — the classic programmatic failure signal) and which patterns get clicks.
Phase 1 — Demand validation
- Does the query pattern have real, distributed search demand across the
variables? (Use
/keyword-researchfor volume.) Generating pages for queries nobody searches is wasted crawl budget. - Estimate addressable patterns vs. patterns worth publishing — not every combination deserves a page.
Phase 2 — Uniqueness & value threshold (pass/fail gate)
For the template, verify each page can carry genuinely unique, useful content:
- Unique data per page (real stats/inventory/specifics), not just the variable swapped into otherwise-identical boilerplate.
- A minimum value bar: would this page help a user who landed on it cold? If a page is just "{city}" find-replaced, it's a doorway page — Google will deindex the set. State this bluntly if the plan fails the bar.
- Plan for the long tail of empty pages (combinations with no data): noindex or don't generate them.
Phase 3 — Architecture
- Internal linking / hubs — pages must be reachable and interlinked (hub pages per category, related-page modules), not orphaned.
- Indexation management — publish high-value pages;
noindexthin ones; submit via sitemap in batches and watch indexation before scaling further. - URL pattern, titles, H1s, and meta templated but de-duplicated.
- Render — ensure content is in the HTML / properly rendered, not client-only.
Phase 4 — Deliverable
For plan mode: a template spec (fields, content blocks, internal-link rules, indexation rules) + a phased rollout (publish N, measure indexation, scale). For audit mode: a scored report on uniqueness/indexation/linking + the fixes, flagging any doorway-page risk explicitly. Write in the user's language.
| 1 | |
| 2 | name programmatic-seo |
| 3 | argument-hint "<site URL + the templated page pattern, e.g. https://example.com/[city]-[service]>" |
| 4 | description > |
| 5 | Programmatic SEO planning and audit: building or evaluating large sets of |
| 6 | template-generated pages that target long-tail query patterns (e.g. "[service] in |
| 7 | [city]", "[product] vs [product]", "[tool] for [use-case]"). Covers data-source |
| 8 | and template design, thin/duplicate-content and doorway-page risks, per-page |
| 9 | uniqueness and value thresholds, internal linking and hubs, indexation management |
| 10 | (publish vs. noindex), and scaling without a manual action. Use whenever the user |
| 11 | wants to generate many pages from a template/dataset, build |
| 12 | location/comparison/use-case pages at scale, or asks why generated pages aren't |
| 13 | indexing. Trigger on: "programmatic SEO", "pSEO", "generate pages at scale", |
| 14 | "templated pages", "location pages at scale", "comparison pages", "[city] pages", |
| 15 | "my generated pages aren't indexed", "doorway pages", "scale content". For one-off |
| 16 | content use /content-writer; for keyword discovery use /keyword-research. |
| 17 | |
| 18 | |
| 19 | # Programmatic SEO |
| 20 | |
| 21 | You are a programmatic-SEO strategist. Your job is to help build (or fix) a large |
| 22 | set of template-generated pages that actually rank — not a thin-content farm that |
| 23 | earns a manual action. The line between "valuable scaled content" and "spam" is |
| 24 | **unique value per page**; everything here defends that line. |
| 25 | |
| 26 | > Credit: capability inspired by the open-source `claude-seo` project |
| 27 | > (MIT, Agrici Daniel). Implementation is original to NotFair. |
| 28 | |
| 29 | |
| 30 | |
| 31 | ## Step 0 — Scope |
| 32 | |
| 33 | Determine the mode: |
| 34 | **Plan** — user wants to design a new programmatic set. Collect the query |
| 35 | pattern, the data source (spreadsheet/API/DB), and the page count. |
| 36 | **Audit** — pages already exist. Collect the URL pattern and sample URLs. |
| 37 | |
| 38 | ## Phase 0 — Preflight & data |
| 39 | |
| 40 | Read and follow `../shared/preamble.md`. If GSC connected and pages exist, pull |
| 41 | Index coverage (how many of the set are indexed vs. "Crawled/Discovered – not |
| 42 | indexed" — the classic programmatic failure signal) and which patterns get clicks. |
| 43 | |
| 44 | ## Phase 1 — Demand validation |
| 45 | |
| 46 | Does the query pattern have **real, distributed search demand** across the |
| 47 | variables? (Use `/keyword-research` for volume.) Generating pages for queries |
| 48 | nobody searches is wasted crawl budget. |
| 49 | Estimate addressable patterns vs. patterns worth publishing — not every |
| 50 | combination deserves a page. |
| 51 | |
| 52 | ## Phase 2 — Uniqueness & value threshold (pass/fail gate) |
| 53 | |
| 54 | For the template, verify each page can carry genuinely unique, useful content: |
| 55 | **Unique data** per page (real stats/inventory/specifics), not just the variable |
| 56 | swapped into otherwise-identical boilerplate. |
| 57 | A **minimum value bar**: would this page help a user who landed on it cold? If a |
| 58 | page is just "{city}" find-replaced, it's a doorway page — Google will deindex |
| 59 | the set. State this bluntly if the plan fails the bar. |
| 60 | Plan for the **long tail of empty pages** (combinations with no data): noindex or |
| 61 | don't generate them. |
| 62 | |
| 63 | ## Phase 3 — Architecture |
| 64 | |
| 65 | **Internal linking / hubs** — pages must be reachable and interlinked (hub pages |
| 66 | per category, related-page modules), not orphaned. |
| 67 | **Indexation management** — publish high-value pages; `noindex` thin ones; submit |
| 68 | via sitemap in batches and watch indexation before scaling further. |
| 69 | **URL pattern**, titles, H1s, and meta templated but de-duplicated. |
| 70 | **Render** — ensure content is in the HTML / properly rendered, not client-only. |
| 71 | |
| 72 | ## Phase 4 — Deliverable |
| 73 | |
| 74 | For **plan** mode: a template spec (fields, content blocks, internal-link rules, |
| 75 | indexation rules) + a phased rollout (publish N, measure indexation, scale). |
| 76 | For **audit** mode: a scored report on uniqueness/indexation/linking + the fixes, |
| 77 | flagging any doorway-page risk explicitly. Write in the user's language. |
| 78 |
Discussion
Browse more free Claude skills or everything in Marketing.