Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+20 more

    Plan Programmatic SEO Pages Without Thin Content

    1

    Programmatic SEO planner: turn a dataset + one template into URLs, titles, H1s and metas, then gate every page PUBLISH, FIX or HOLD for thin data, near-duplicates, duplicate URLs and length.

    $8

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    Plan Programmatic SEO Pages Without Thin Content

    Plan Programmatic SEO Pages Without Thin Content

    Example session with this skill installed

    Plan a "best MCP servers for SEO" directory with one page per server. Data: seo-mcp-servers.csv, built from the official MCP Registry (search "seo", latest active versions, 234 rows). Columns: server, publisher, name, title, version, description, connect (remote endpoint and/or package), links (website and repo), published.

    Spec: URL /mcp-servers/seo/{name_slug}, title "{display} MCP Server for SEO: Tools + Setup", H1 "{display} MCP server", meta "{description} How to connect it to Claude, Cursor or ChatGPT.", unique_fields description + connect + links (need 2 of 3, at least 2 words each), max_similarity 0.80, title_max 60, meta_max 155. No demand column.

    • Read your context and instructions
    • Compiled the plan programmatic seo
    • Generated the data export

    pSEO plan: "MCP servers for SEO" directory (234 rows from the official MCP Registry)

    Data: registry.modelcontextprotocol.io/v0/servers?search=seo, latest active versions only, fetched 21 Oct 2026. Public data; not affiliated with any listed server. No demand column, so demand is blank (never estimated).
    Generated: 21 Oct 2026 · scripts/pseo_planner.py --data seo-mcp-servers.csv --spec spec.json

    1. Gate results

    RunSpec changePUBLISHFIXHOLDMain reasons
    1URL /mcp-servers/seo/{name_slug}138296758 duplicate URLs (21 servers named "site", 13 "seo", 8 "seo-audit")
    2URL uses publisher + name188321412 near-duplicates, 2 thin, 32 titles > 60
    3max_similarity 0.80 → 0.70169323331 near-duplicates, 2 thin

    2. HOLD (run 2)

    • Near-duplicate, 7 rows: com.seoapi/googlebot, bingbot, yandexbot, petalbot, seznambot, duckduckbot, perplexitybot. One-line "Validate X IP addresses" servers, similarity 0.85-0.90 with applebot/baiduspider. Run 3 holds 14 of the 18 seoapi validators. Recommendation: one "verify search-engine bot IPs" page that lists all 18, not 18 pages.
    • Near-duplicate, 4 rows: uk.co.seoplumbers/site, uk.co.seodealerships/site, uk.seodentists/site, uk.seodevon/site ("the site's own MCP server" text, 0.81-0.82). Run 3 holds 14 of the 21. Recommendation: one publisher page.
    • Near-duplicate: io.github.d08m/crazyseo (0.90 with io.github.bolidee/crazyseo, a second publisher of the same server).
    • Thin: io.github.sparrow84001/mcp-seo (no install info; one repo URL is under the 2-word minimum) · io.github.seob5285-alt/stateless-math-worker (description only).

    3. FIX

    • 32 titles over 60 characters (e.g. "SEO Analytics & Insights — Google Search Console MCP MCP Server for SEO: Tools + Setup", 86). Fix the template: a shorter suffix such as "{display}: Setup + Tools".

    4. Human review (the script can't see these)

    • Off-topic rows pass: ai.augmentev/paseo (matched "pa-seo"), com.airblockfz/seoul-apt-signal, io.github.kyungseopk1m/semver-checks. The registry search is a substring match. Filter the dataset by description before building.
    • Duplicate titles: 21 rows share "site MCP Server for SEO: Tools + Setup" (22 PUBLISH rows have a title used by another row). The gate checks URLs, not titles.
    • 11 titles say "MCP" twice because the server's own title already contains it, and 9 of them pass the length check (e.g. "DataForSEO MCP MCP Server for SEO: Tools + Setup"). Read the sample outlines before you approve the template.
    • Sample outline check (sample-pages.md): the first PUBLISH page is paseo, which is off-topic. Re-run after filtering.

    5. Launch plan

    Wave 1: 20-30 of the PUBLISH rows with 3/3 unique fields, linked from one hub page ("MCP servers for SEO"), plus the merged bot-IP page. Watch indexing and clicks in Search Console for 4-6 weeks before releasing the rest. Re-run the planner whenever the registry export changes.

    No search volume, traffic or rankings were used or invented.

    seo-mcp-servers.csv

    CSV · data export

    Generated

    Example file from a real run - the skill writes it into your workspace.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    Unlike free "write me 500 programmatic pages" prompts and page generators, this skill runs a quality gate on your dataset before you build anything. A bundled script renders the URL, title, H1 and meta for every row, then marks each page PUBLISH, FIX or HOLD for duplicate URLs, thin data, near-duplicates, length and zero demand. Every HOLD comes with a reason you can fix in the data. It never pads pages with filler.

    Sample run: a "best MCP servers for SEO" directory, one page per server, built from the official MCP Registry (registry.modelcontextprotocol.io, search "seo", 234 latest active servers, fetched 21 Oct 2026; public data; no demand column, so demand is left blank and never estimated):

    1. Run 1, URL /mcp-servers/seo/{name}: HOLD 67, including 58 duplicate URLs (21 servers are named "site", 13 "seo", 8 "seo-audit"), so the URL was changed to publisher + name
    2. Run 2: 234 rows | PUBLISH 188 | FIX 32 | HOLD 14
    3. HOLD near-duplicate: com.seoapi/googlebot, bingbot, yandexbot and 4 more (one-line "Validate X IP addresses" servers, similarity 0.85-0.90)
    4. HOLD near-duplicate: uk.co.seoplumbers/site, uk.co.seodealerships/site, 2 more (same "the site's own MCP server" text, 0.81-0.82)
    5. HOLD thin: io.github.sparrow84001/mcp-seo (only the description counts: no install info, and its one repo URL is under the 2-word minimum)
    6. FIX 32 titles over 60 chars (e.g. "SEO Analytics & Insights — Google Search Console MCP MCP Server for SEO: Tools + Setup", 86)
    7. Run 3 with max_similarity 0.70: HOLD 33, now 14 of the 18 seoapi validators and 14 of the 21 UK "site" clones
    8. Passed the gate but off-topic: paseo, Seoul apartment signals, a semver checker. The registry search "seo" matches substrings. The gate can't judge relevance, so that is the human review step
    9. Not caught by the script: 21 pages share the title "site MCP Server for SEO: Tools + Setup", and 9 PUBLISH titles say "MCP MCP Server" (e.g. "DataForSEO MCP MCP Server for SEO…"). Fix the title template, then re-run

    Full report from this run in the Example below.

    Works in Claude Code, Cursor and Codex · tested on real public data (the MCP Registry run above) · SKILL.md + one Python script (stdlib only, no network, no API keys) + templates · never invents search demand or traffic forecasts · v1.0, updated Oct 2026 · questions answered via Agensi messages within 24h · Check the search intent behind your page pattern with our Apify actor: https://apify.com/cygnix_labs/serp-intent-mapper · Free no-API-key SEO MCP server (keyword clustering, search intent, briefs): https://github.com/cygnixlabs-cmd/cygnix-seo-mcp

    Programmatic SEO can bring in hundreds of pages' worth of traffic, or get a whole section ignored as scaled content abuse. The difference is whether each page has real data of its own, and most teams only find out after launch.

    What it does

    • Renders URL, title, H1 and meta for every row from a simple JSON template spec ({column} and {column_slug} placeholders).
    • Holds duplicate URLs, thin rows (too few unique fields with real data), near-duplicates (word overlap of the unique data above your threshold) and rows with zero demand.
    • Flags titles and metas over length, missing placeholder data and missing demand data as FIX.
    • Renders sample page outlines so a person can check the pages are actually useful.
    • Plans a phased launch: 10-20% of the PUBLISH rows first, a hub page, and a 4-6 week stop rule in Search Console.

    How it works

    1. Pick the page pattern and data source (templates/pseo-opportunity-brief.md).
    2. Build the dataset CSV (one row per page) and the template spec (templates/page-template-spec.json).
    3. Your agent runs scripts/pseo_planner.py, then reviews the HOLD and FIX rows and the sample outlines with you (templates/quality-gate-checklist.md).
    4. You get pages-plan.csv (verdict, URL, title, H1, meta, lengths, unique data filled, closest duplicate, demand, reasons), sample-pages.md and a launch plan.

    Who it's for

    SEO leads, SaaS growth teams and directory or marketplace builders planning integration, location, comparison or "X for Y" pages from a spreadsheet. It is not a page generator: it decides which rows deserve a page.

    Pairs well with (Cygnix Labs, on Agensi)

    • Keyword Clusters + Intent Map: No Paid SEO Tool Needed (agensi.io/skills/keyword-clusters-intent-map-no-paid-seo-tool-needed): find the page pattern
    • SERP Intent Mapper — Keyword → Page Type Match (agensi.io/skills/serp-intent-mapper-keyword-page-type-match): confirm the page type for the pattern
    • Local SEO Keyword Pack — Service × City Matrix + Page Plan (agensi.io/skills/local-seo-keyword-pack-service-city-matrix-page-plan): build a service × city dataset
    • Map Niche into Pillars Clusters and Internal Links (agensi.io/skills/map-niche-into-pillars-clusters-and-internal-links): plan the hub page
    • SEO Meta Tags Generator — Titles, Descriptions + Schema (agensi.io/skills/seo-meta-tags-generator-titles-descriptions-schema): rewrite the title template the gate flags
    • Find Orphan Pages and Fix Your Internal Linking (agensi.io/skills/find-orphan-pages-and-fix-your-internal-linking): link the new pages after launch

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed with 1 warning 13 days ago

    Listed13 days ago
    Updated3 days ago

    What's inside

    Frequently Asked Questions