git clone --depth 1 https://github.com/nowork-studio/notfair-plugin /tmp/programmatic-seo && cp -r /tmp/programmatic-seo/seo/programmatic-seo ~/.claude/skills/programmatic-seoSKILL.md
# 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-seo` project
> (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-research` for 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; `noindex` thin 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.Analyze connected Google Analytics 4 traffic, acquisition, engagement, landing pages, ecommerce, events, and conversions, and safely manage supported GA4 key events or custom dimensions through NotFair MCP. Use for GA4, Google Analytics, traffic or conversion drops, channel attribution, realtime activity, report requests, measurement configuration, or Analytics MCP setup.
Query and operate connected Google Search Console properties through NotFair MCP. Use for live GSC query or page performance, clicks, impressions, CTR, position, traffic changes, indexing status, URL inspection, sitemap reads or approved sitemap submission/removal, and Search Console MCP setup. Route full-site SEO audits to seo-analysis.
>
Plan, validate, and safely publish Google Ads assets, including sitelinks, callouts, structured snippets, image assets, and Performance Max asset briefs. Use when asked for Google Ads assets, ad extensions, sitelinks, callouts, snippets, image assets, Performance Max assets, PMax creative, or an asset audit.
Google Ads account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run an audit before. Also trigger proactively when other ads skills detect that business-context.json is missing.
Generate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.
Score and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Page Experience component, or compare an ad group's messaging against its landing page. Trigger on "landing page audit", "landing page score", "landing page quality", "why is my conversion rate low", "LPX", "landing page experience", "ad to page match", or when `/google-ads-audit` surfaces a high-CTR / low-CVR ad group.
Manage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings.