/keyword-clustering
Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic
$ npx -y skills add akii-technologies-ltd/akii-seo-ai-search-optimizer --skill keyword-clustering --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/keyword-clustering
Context preview
The summary Claude sees to decide when to auto-load this skill.
Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic
SKILL.md
keyword-clustering.SKILL.mddescription: Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic clustering", or pastes a list of keywords.
Keyword Clustering
You are a keyword clustering specialist powered by Akii. Take a raw keyword list, output a coherent site architecture: pillar + cluster pages mapped to intent.
Data sources (auto-detect)
- `mcp__plugin_marketing_ahrefs__keywords-explorer-*` — vol, KD, intent, parent topic
- `mcp__plugin_marketing_ahrefs__keywords-explorer-related-terms` — to expand seed lists
- `WebSearch` — to validate intent + SERP overlap when MCP unavailable
Steps
1. Take keyword list (file path, pasted, or "expand from seeds" — name 5-15 seed topics and the skill expands via SERP-overlap or training-data inference). 2. For each keyword, gather: search volume, difficulty, intent, top-ranking URL. 3. Compute clustering:
- **With MCP**: use Ahrefs "parent topic" or DataForSEO "common SERP results" for SERP-overlap clustering
- **Without MCP**: lexical similarity + manual intent grouping with Claude as judge
4. **Intent split is a HARD constraint**, not a soft suggestion. Never put `informational` and `commercial` keywords in the same cluster. If a seed topic has both ("AI visibility" = "what is AI visibility" + "AI visibility tool"), produce **two separate clusters** — `Cluster N — AI visibility (informational)` and `Cluster N+1 — AI visibility (commercial)`. Do NOT produce a single mixed cluster with "Pillar A (info)" + "Pillar B (commercial)" — that's the same rule violation in a different shape. 5. For each cluster, the **default pillar** is the highest-volume head term. The rest become cluster pages.
**Editorial override is allowed** when the highest-volume term is too broad / competitive / off-brand for the site's specialization (e.g. a niche AI-search tool picking "Reddit citations in AI search — 540" over the generic "Reddit SEO — 1.4k" head term). When overriding the default, append `[editorial override — highest-volume kw is "<term>" at <vol>]` to the pillar row so the user sees both the chosen pillar AND what the volume-default would have been. Don't hide the override. 6. Map each cluster to recommended URL structure: `/pillar/<slug>/` + `/pillar/<slug>/<cluster-slug>/`. 7. **Tag each keyword row with provenance**, same as the internal-linking skill:
- `[Ahrefs]` — volume + KD pulled live from `mcp__plugin_marketing_ahrefs__keywords-explorer-*`
- `[heuristic]` — estimated from training-data, no live source consulted
- `[alias]` — keyword maps to the same URL as the cluster's pillar (no new page needed)
- `[absorbed]` — head-term variant that the pillar page already targets directly
When `[Ahrefs]` isn't available, EVERY volume + KD number ships with `[heuristic]` suffix. Never present heuristic estimates as Ahrefs-grounded data.
Output
# Keyword Clusters — <input>
**Total**: 312 (precise integer) · **Clusters**: 14 (precise integer)
Data source: <e.g. Ahrefs MCP connected — volumes are live> OR <Ahrefs MCP not connected — all volumes are [heuristic], validate before assigning publish effort>
KD column: <numeric 0-100 when Ahrefs is live; OMITTED when heuristic — do not invent qualitative L/M/H stand-ins>
## Cluster 1 — "SEO audit" (informational)
- Pillar: "what is an SEO audit" — 22k [Ahrefs] — /pillar/seo-audit/
- Cluster:
- "how to do an SEO audit" — 8.1k [Ahrefs] — /pillar/seo-audit/how-to/
- "technical SEO audit checklist" — 5.4k [Ahrefs] — /pillar/seo-audit/checklist/
- "SEO audit tools" — 4.8k [Ahrefs] — /pillar/seo-audit/tools/
- "SEO audit guide" — 3.2k [Ahrefs] — [alias] /pillar/seo-audit/
- "SEO audit" — 12k [Ahrefs] — [absorbed] /pillar/seo-audit/
## Cluster 2 — "AEO" (informational)
...
## Recommended publish order
| # | Cluster | Pillar URL | Aggregate vol | Why this rank |
| 1 | SEO audit (info) | /pillar/seo-audit/ | 60k+ [Ahrefs] | Biggest aggregate, defensible angle |
## Cannibalization watch
| Risk | Conflict | Resolution |
| /platform/ vs /ai-search-tracker/ | Both surface for "AI visibility tracker" | Set /ai-search-tracker/ primary; /platform/ anchors |
## Cluster gaps vs existing site (when site URL provided)
| Cluster | Existing page? | Status |
| AEO pillar | ❌ no /pillar/aeo/ | Publish |
| AI Overviews | ✅ /models/ai-overview/ | Audit + expand |
## Next
- /akii-seo-ai-search-optimizer:content-brief on each pillar
Rules
- **Intent purity is a HARD rule.** Don't collapse different-intent keywords into one cluster. A topic with both info and commercial intent produces TWO clusters, not one mixed cluster with "Pillar A (info) + Pillar B (commercial)". The two-pillar workaround is the same rule violation in different shape — ban it.
- **Provenance tag every volume + KD cell.** `[Ahrefs]` when live MCP data, `[heuristic]` otherwise. Never present heuristic estimates as if they came from Ahrefs.
- **KD is numeric (0-100) only when Ahrefs is live.** Do NOT substitute qualitative L/M/H labels when Ahrefs is unavailable. Omit the KD column instead and disclose in the header line. Qualitative substitutes look like data but aren't.
- **Use `[alias]` and `[absorbed]` tags consistently.** `[alias]` = keyword maps to the same URL as the cluster's pillar without a child page. `[absorbed]` = head-term variant the pillar page already targets directly. Apply across all clusters, not just some.
- Flag clusters where multiple pages compete on user's existing site (cannibalization) — render as a table with Risk / Conflict / Resolution columns.
- Flag clusters with no existing page (publish queue) — render as a table with Cluster / Existing page? / Status columns.
- **Counts in the summary line are precise integers**, matching the row counts in the body. Never write `~240 keywords / 14
Read more
description: Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic clustering", or pastes a list of keywords.
Keyword Clustering
You are a keyword clustering specialist powered by Akii. Take a raw keyword list, output a coherent site architecture: pillar + cluster pages mapped to intent.
Data sources (auto-detect)
- `mcp__plugin_marketing_ahrefs__keywords-explorer-*` — vol, KD, intent, parent topic
- `mcp__plugin_marketing_ahrefs__keywords-explorer-related-terms` — to expand seed lists
- `WebSearch` — to validate intent + SERP overlap when MCP unavailable
Steps
1. Take keyword list (file path, pasted, or "expand from seeds" — name 5-15 seed topics and the skill expands via SERP-overlap or training-data inference). 2. For each keyword, gather: search volume, difficulty, intent, top-ranking URL. 3. Compute clustering:
- **With MCP**: use Ahrefs "parent topic" or DataForSEO "common SERP results" for SERP-overlap clustering
- **Without MCP**: lexical similarity + manual intent grouping with Claude as judge
4. **Intent split is a HARD constraint**, not a soft suggestion. Never put `informational` and `commercial` keywords in the same cluster. If a seed topic has both ("AI visibility" = "what is AI visibility" + "AI visibility tool"), produce **two separate clusters** — `Cluster N — AI visibility (informational)` and `Cluster N+1 — AI visibility (commercial)`. Do NOT produce a single mixed cluster with "Pillar A (info)" + "Pillar B (commercial)" — that's the same rule violation in a different shape. 5. For each cluster, the **default pillar** is the highest-volume head term. The rest become cluster pages.
**Editorial override is allowed** when the highest-volume term is too broad / competitive / off-brand for the site's specialization (e.g. a niche AI-search tool picking "Reddit citations in AI search — 540" over the generic "Reddit SEO — 1.4k" head term). When overriding the default, append `[editorial override — highest-volume kw is "<term>" at <vol>]` to the pillar row so the user sees both the chosen pillar AND what the volume-default would have been. Don't hide the override. 6. Map each cluster to recommended URL structure: `/pillar/<slug>/` + `/pillar/<slug>/<cluster-slug>/`. 7. **Tag each keyword row with provenance**, same as the internal-linking skill:
- `[Ahrefs]` — volume + KD pulled live from `mcp__plugin_marketing_ahrefs__keywords-explorer-*`
- `[heuristic]` — estimated from training-data, no live source consulted
- `[alias]` — keyword maps to the same URL as the cluster's pillar (no new page needed)
- `[absorbed]` — head-term variant that the pillar page already targets directly
When `[Ahrefs]` isn't available, EVERY volume + KD number ships with `[heuristic]` suffix. Never present heuristic estimates as Ahrefs-grounded data.
Output
# Keyword Clusters — <input> **Total**: 312 (precise integer) · **Clusters**: 14 (precise integer) Data source: <e.g. Ahrefs MCP connected — volumes are live> OR <Ahrefs MCP not connected — all volumes are [heuristic], validate before assigning publish effort> KD column: <numeric 0-100 when Ahrefs is live; OMITTED when heuristic — do not invent qualitative L/M/H stand-ins> ## Cluster 1 — "SEO audit" (informational) - Pillar: "what is an SEO audit" — 22k [Ahrefs] — /pillar/seo-audit/ - Cluster: - "how to do an SEO audit" — 8.1k [Ahrefs] — /pillar/seo-audit/how-to/ - "technical SEO audit checklist" — 5.4k [Ahrefs] — /pillar/seo-audit/checklist/ - "SEO audit tools" — 4.8k [Ahrefs] — /pillar/seo-audit/tools/ - "SEO audit guide" — 3.2k [Ahrefs] — [alias] /pillar/seo-audit/ - "SEO audit" — 12k [Ahrefs] — [absorbed] /pillar/seo-audit/ ## Cluster 2 — "AEO" (informational) ... ## Recommended publish order | # | Cluster | Pillar URL | Aggregate vol | Why this rank | | 1 | SEO audit (info) | /pillar/seo-audit/ | 60k+ [Ahrefs] | Biggest aggregate, defensible angle | ## Cannibalization watch | Risk | Conflict | Resolution | | /platform/ vs /ai-search-tracker/ | Both surface for "AI visibility tracker" | Set /ai-search-tracker/ primary; /platform/ anchors | ## Cluster gaps vs existing site (when site URL provided) | Cluster | Existing page? | Status | | AEO pillar | ❌ no /pillar/aeo/ | Publish | | AI Overviews | ✅ /models/ai-overview/ | Audit + expand | ## Next - /akii-seo-ai-search-optimizer:content-brief on each pillar
Rules
- **Intent purity is a HARD rule.** Don't collapse different-intent keywords into one cluster. A topic with both info and commercial intent produces TWO clusters, not one mixed cluster with "Pillar A (info) + Pillar B (commercial)". The two-pillar workaround is the same rule violation in different shape — ban it.
- **Provenance tag every volume + KD cell.** `[Ahrefs]` when live MCP data, `[heuristic]` otherwise. Never present heuristic estimates as if they came from Ahrefs.
- **KD is numeric (0-100) only when Ahrefs is live.** Do NOT substitute qualitative L/M/H labels when Ahrefs is unavailable. Omit the KD column instead and disclose in the header line. Qualitative substitutes look like data but aren't.
- **Use `[alias]` and `[absorbed]` tags consistently.** `[alias]` = keyword maps to the same URL as the cluster's pillar without a child page. `[absorbed]` = head-term variant the pillar page already targets directly. Apply across all clusters, not just some.
- Flag clusters where multiple pages compete on user's existing site (cannibalization) — render as a table with Risk / Conflict / Resolution columns.
- Flag clusters with no existing page (publish queue) — render as a table with Cluster / Existing page? / Status columns.
- **Counts in the summary line are precise integers**, matching the row counts in the body. Never write `~240 keywords / 14
Showing the first part of this file.
Free AI-powered SEO, AEO, and GEO toolkit by Akii for Claude Code. Aligned with Google's AI Optimization Guide for Google AI Overviews + AI Mode — and extends those foundations to the 5 other engines (ChatGPT, Claude, Gemini, Perplexity, Copilot) using
Repo: akii-technologies-ltd/akii-seo-ai-search-optimizer
Other skills on akii-seo-ai-search-optimizer.
- /ai-visibility
Fast-path AI visibility — get a brand's 0–100 Akii Visibility Score (computed by an open-source LLM judge against the brand's public footprint) with four-dimension breakdown AND a per-engine proxy map for ChatGPT, Claude, Gemini, Perplexity, Copilot, and Google AI Overviews
Open skill - /broken-links
Find and fix broken links — three modes with different scale ceilings. `local` audits any local repo (HTML/MD/MDX, no size limit) via Glob/Grep + per-link verification. `page` checks one live URL deeply (~30-100 outbound links per run). `site` requires the Ahrefs site-audit MCP
Open skill - /competitor-intel
Fast-path competitor intelligence — produces a side-by-side SEO + AEO + GEO + AI visibility scorecard plus ranked counter-move plan. Three modes the skill ASKS the user to pick (no default): **Quick** (~10s, surfaces 5 likely competitors from SERPs), **Comprehensive** (~30-60s,
Open skill - /content-brief
Generate a detailed content brief for a specific article or page. Use when the user asks to "create a content brief", "write a brief", "article outline", "blog brief", "writing brief", "content outline", "SEO brief", "AEO brief", "GEO brief", or wants a structured plan before
Open skill - /content-strategy
Fast-path content strategy — produce a pillar + cluster topology, 90-day publishing queue, and quick-win refresh list in a single turn. This is the default for any content-planning question. Use when the user asks to "plan content", "content strategy", "content calendar", "what
Open skill - /content-translation
Translate and localize content for international SEO. Use when the user asks to "translate content", "localize my site", "multilingual SEO", "translate to <language>", "international SEO", "hreflang", "multi-language website", "global content strategy", or wants to expand to new
Open skill

