Example output: examples/seo-keyword-niche-espresso-machine-reviews-20260514/KEYWORD-NICHE-PLAN.md
Keyword Niche
Mine the long tail for content opportunities. Pulls longtail variants, question-intent keywords, related keywords, and SERP samples to find under-served niche keywords; clusters them by intent; proposes a content tier (template + URL pattern + sample pages + thin-content quality gates) that can be published programmatically or as a steady editorial cadence.
Prerequisites
- SE Ranking MCP server connected.
- User provides: a seed topic (e.g. "running shoes", "tax preparation"), or 2–5 seed keywords. Target country (default
us). Optional: minimum volume threshold (default: 50/mo for niche skill — lower thanseo-keyword-cluster's 100), maximum KD (default: 40 for accessibility).
Process
-
Validate & preflight
- Confirm seeds make sense (not too broad, not branded, not single-letter).
DATA_getCreditBalance— surface remaining credits. This skill is heavier than most: pulling longtail at depth costs more than pulling head terms.
-
Longtail expansion
DATA_getLongTailKeywords- For each seed: pull longtail variants (typically 3+ words, lower individual volume, lower KD).
- Target: 200–500 longtail candidates per seed.
-
Question expansion
DATA_getKeywordQuestions- For each seed: pull question-phrased keywords.
- These are gold for content mining — explicit user intent in the keyword.
-
Related expansion
DATA_getRelatedKeywordsandDATA_getSimilarKeywords- For each seed: pull related + similar keywords.
- Catches semantic neighbours that longtail expansion missed.
-
Filter and clean
- Remove keywords below
min_volumeand abovemax_kd. - Strip branded keywords the seed-domain doesn't own (unless the user supplied a branded seed).
- Tag each keyword with detected intent: informational, commercial, transactional, navigational.
- De-duplicate across seeds.
- Remove keywords below
-
SERP sample for representative keywords
DATA_getSerpResults- For 5–10 representative keywords (one per emerging cluster), pull top 10.
- Identify the dominant page type for each cluster (informs the template proposal in step 8).
-
Cluster by intent + theme
- Group keywords by semantic similarity + intent.
- Each cluster: name, primary keyword, supporting keywords, total volume, weighted KD, dominant page type.
- Target 8–20 clusters (more granular than
seo-keyword-cluster's 5–12 — this skill is for niche tiers).
-
Propose a content tier
- Template structure: which fields make each page unique. For
{city} apartment rentals, the template fields are{city},{neighborhood},{price_range},{property_count}. For{tool} alternativesit's{tool},{competitor_count},{primary_use_case}. - URL pattern:
/{category}/{slug}/or/{topic}/{tool}-alternatives/etc. - Sample pages: 3 fully-spec'd page wireframes for representative cluster keywords.
- Internal-linking automation: how to link pages within the tier (hub-spoke from a category page, or peer-to-peer for genuinely flat structures).
- Template structure: which fields make each page unique. For
-
Quality gates (anti-thin-content guardrails)
- Minimum unique data per page: template fields must produce ≥ 5 unique attributes (counts, prices, names, dates, etc.). Pages without 5+ unique attributes are duplicates in disguise — skip those keyword variants.
- Minimum word count: 600 words effective content (excludes navigation, footer, boilerplate).
- Schema requirement: every templated page gets
Article(or relevant type) +BreadcrumbList. - Index/noindex split: if the variant doesn't pass the unique-data threshold, generate the page but
noindexit.
9a. Programmatic publishing — extra gates
Most users discover this skill because they want to ship pages at scale (programmatic SEO, data-driven directories, location pages). Programmatic publishing is the highest-risk path for spam-classifier blowback. Apply these in addition to the gates above whenever the proposed tier expects to ship 50+ templated pages.
- Per-row uniqueness threshold (≥ 30% varying fields). Of the template's content-producing fields (excluding nav/footer boilerplate), at least 30% must hold values that differ from the median sibling page. A 12-field template where 9 fields are identical across pages is templated mush — Google's spam systems are well-tuned for this since the 2024 core update. Compute:
varying_fields / content_fields ≥ 0.30per row vs the cluster median. - Min unique-fact count vs parent + sibling (≥ 5 facts). Each row carries at least 5 facts that do not appear on the parent hub page or any sibling page in the same cluster. Facts = numbers, dates, named entities, original quotes, photos. Synonym shuffles don't count. Sample 10 rows manually before greenlighting the tier.
- Data-source independence. Don't auto-publish from a single source (one CSV, one API, one scrape). If the page's only differentiator is a row from
cities.csv, the page is a CSV row dressed as content — likely thin. Combine ≥ 2 independent data sources per page. - Index-bloat circuit-breaker. After the first 50 pages ship, monitor GSC. If the index-coverage rate drops below 60% (Google indexed <60% of submitted), pause the tier and re-audit. Continuing past this signal compounds bloat across the rest of the tier.
- Crawl-budget honesty. Sites under 50k pages can usually crawl whatever you ship. Sites >50k must factor in crawl-budget cost: every thin programmatic page steals attention from the cornerstone content. If the site is in this band and the unique-fact count is borderline, default to noindex.
These gates are not negotiable for the programmatic path. If the proposed tier can't pass them, the right answer is fewer pages, not lower thresholds.
- Synthesise
KEYWORD-NICHE-PLAN.md
Output format
Create a folder seo-keyword-niche-{target-slug}-{YYYYMMDD}/ with:
seo-keyword-niche-{target-slug}-{YYYYMMDD}/
├── KEYWORD-NICHE-PLAN.md (synthesised plan — primary deliverable)
├── keywords.csv (all enriched keywords with cluster + intent — load-bearing CSV the publishing team paste into CMS/sheets)
├── 06-template-spec.md (fields, URL pattern, sample pages — load-bearing reference writers consult directly)
├── 07-quality-gates.md (thin-content guardrails — load-bearing reference release-gate readers consult directly)
└── evidence/
├── 01-seed-expansion.md (raw expansion per seed — raw step output)
├── 02-question-keywords.md (DATA_getKeywordQuestions)
├── 03-filtered-keywords.md (post min-vol / max-kd filter)
├── 04-cluster-assignment.md (every keyword and its cluster)
└── 05-serp-samples.md (top 10 for representative cluster keywords)
Top-level: KEYWORD-NICHE-PLAN.md + keywords.csv + 06-template-spec.md + 07-quality-gates.md. Writers consult the template spec directly when authoring; release gates consult the quality gates directly. The 01–05 step files preserve raw API/clustering outputs in evidence/.
KEYWORD-NICHE-PLAN.md shape:
# Keyword Niche Plan: {topic}
> Generated {YYYY-MM-DD} · Country: {country} · Seeds: {list}
## Inventory
- Longtail keywords mined: {n}
- Question keywords: {n}
- After filter (min-vol {n}, max-kd {n}): {n}
- Clusters formed: {n}
- Estimated combined monthly volume: {n}
## Recommended content tier
### Template
**URL pattern:** `/{category}/{slug}/`
**Required fields per page:**
- `{slug}` — URL-friendly identifier
- `{H1}` — page primary heading
- `{TL;DR}` — first 200 words direct answer
- `{primary_keyword}` — target keyword
- `{related_keywords}` — secondary keywords from cluster
- `{unique_attributes}` — list of ≥ 5 differentiating attributes (numbers,