seranking/seo-keyword-niche
Mine longtail keywords + question keywords for a topic at scale to surface niche content opportunities. Outputs a content tier plan (template + URL pattern + sample pages + quality gates) suitable for programmatic publishing or steady editorial output. Distinct from `seo-keyword-cluster` (which plans pillar+spoke architecture from broad seeds) — this skill goes deeper into the long tail. Use when the user asks "longtail keywords", "question keywords", "niche content", "content opportunities at scale", "programmatic SEO", "content mining", or "what should I write about for {topic}".
npx skills add https://github.com/seranking/seo-skills --skill seo-keyword-niche
> Example output: examples/seo-keyword-niche-espresso-machine-reviews-20260514/KEYWORD-NICHE-PLAN.md
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.
us). Optional: minimum volume threshold (default: 50/mo for niche skill — lower than seo-keyword-cluster's 100), maximum KD (default: 40 for accessibility).DATA_getCreditBalance — surface remaining credits. This skill is heavier than most: pulling longtail at depth costs more than pulling head terms.DATA_getLongTailKeywordsDATA_getKeywordQuestionsDATA_getRelatedKeywords and DATA_getSimilarKeywordsmin_volume and above max_kd.DATA_getSerpResultsseo-keyword-cluster's 5–12 — this skill is for niche tiers).{city} apartment rentals, the template fields are {city}, {neighborhood}, {price_range}, {property_count}. For {tool} alternatives it's {tool}, {competitor_count}, {primary_use_case}./{category}/{slug}/ or /{topic}/{tool}-alternatives/ etc.Article (or relevant type) + BreadcrumbList.noindex it.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.
varying_fields / content_fields ≥ 0.30 per row vs the cluster median.cities.csv, the page is a CSV row dressed as content — likely thin. Combine ≥ 2 independent data sources per page.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.
10. Synthesise KEYWORD-NICHE-PLAN.md
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, names, dates)
- `{related_pages}` — internal-link list (3–5 sibling pages)
- `{schema_type}` — Article/Product/Other
- `{datestamp}` — last-updated date
**Sample pages:** see `06-template-spec.md` for 3 fully-spec'd wireframes.
## Cluster build order (top 10 by priority)
| Rank | Cluster | Volume (combined) | Weighted KD | Dominant page type | Pages to ship |
|---|---|---|---|---|---|
| 1 | {cluster name} | {n} | {kd} | {type} | {n} |
| ... |
## Quality gates (do not ship pages that fail)
1. **Unique-data threshold:** each page has ≥ 5 unique attributes vs sibling pages in the same cluster.
2. **Minimum word count:** 600 words effective content.
3. **Schema:** `Article` + `BreadcrumbList` (or relevant `@type` for the page).
4. **Internal links:** ≥ 3 outbound to siblings, ≥ 1 inbound from category hub.
5. **Index/noindex:** noindex pages that don't pass the unique-data threshold.
### Programmatic-only gates (apply when tier ships 50+ pages)
6. **Per-row uniqueness ≥ 30%:** at least 30% of content-producing fields hold values that differ from the cluster median.
7. **Min unique facts vs parent + sibling (≥ 5):** five facts per row that don't appear on the parent hub or any sibling.
8. **Data-source independence:** ≥ 2 independent data sources per page (no single-CSV pages).
9. **Index-bloat circuit-breaker:** pause tier if GSC index-coverage <60% after the first 50 pages.
## Scaling estimate
- Clusters: {n}
- Pages per cluster (median): {n}
- Total pages: {n}
- At {pages/week} cadence: {n weeks} to ship the tier.
- Crawl-budget impact (for sites > 10k pages): noindex strategy keeps thin variants out of the index.
## Risks / monitoring
- **Thin-content penalty:** the quality gates above are the guardrail. Audit at scale via `seo-technical-audit` after first 100 pages ship.
- **Index bloat:** monitor in GSC; if newly indexed pages don't accrue impressions in 60 days, candidate for noindex/consolidate.
- **Cannibalization:** monitor with `seo-subdomain` + `seo-page` after first 50 pages.
## Recommended next step
Build a small pilot — 10 pages from the top cluster — before committing to the full tier. Apply quality gates rigorously to the pilot. Re-audit after 60 days; iterate the template based on which pilot pages indexed and ranked.
keywords.csv columns: keyword,volume,kd,cpc,intent,cluster,role_in_cluster,dominant_page_type,unique_attributes_estimate
DATA_getCreditBalance before running and surface the estimate.seo-keyword-cluster for the broader pillar+spoke architecture (this skill complements, not replaces).seo-content-brief to expand individual pillar topics into full editor briefs.seo-technical-audit after first 100 pages ship to catch any thin-content / canonicalization issues.Take seranking/seo-keyword-niche from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.