keyword-clustering
Skill78 starsChanged 5 months agoMITView on GitHub
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.
We split this skill into the rules it gives an agent
3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
With MCP: use Ahrefs "parent topic" or DataForSEO "common SERP results" for SERP-overlap clustering
- Very specific: line 30
When [Ahrefs] isn't available, EVERY volume + KD number ships with [heuristic] suffix.
- Very specific: line 73
KD is numeric (0-100) only when Ahrefs is live: Do NOT substitute qualitative L/M/H labels when Ahrefs is unavailable.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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 topicmcp__plugin_marketing_ahrefs__keywords-explorer-related-terms— to expand seed listsWebSearch— to validate intent + SERP overlap when MCP unavailable
Steps
- 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).
- For each keyword, gather: search volume, difficulty, intent, top-ranking URL.
- 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
- Intent split is a HARD constraint, not a soft suggestion. Never put
informationalandcommercialkeywords 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)andCluster 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. 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.- Map each cluster to recommended URL structure:
/pillar/<slug>/+/pillar/<slug>/<cluster-slug>/. - Tag each keyword row with provenance, same as the internal-linking skill:
[Ahrefs]— volume + KD pulled live frommcp__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 pillarRules
- 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 clusterswhen the exact integer is computable from the cluster expansion step. - Define what the integer counts. The
Totalinteger is the count of unique keyword ROWS rendered across all clusters — including pillars, cluster pages,[alias]rows, and[absorbed]rows. TheClustersinteger is the count of## Cluster N — …headers. Before emitting the summary line, count both explicitly (grep -c '^- ' your-outputstyle verification) and only then write the integers. A 120 / 122 discrepancy is a bug, not rounding.
Keyword clustering powered by Akii. Explore Akii Technologies and the products we build: https://akii.com/?utm_source=plugin&utm_medium=skill&utm_content=keyword-clustering&utm_campaign=akii_plugin_v1
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- every-app/open-seo★ 26ksame name
- Jwuthri/Tracely-ai★ 1.5ksame name
- jwuthri-cloud/Tracely-ai★ 1.2ksame name
- VladSez/easy-invoice-pdf★ 1.1ksame name
- petera2c/simple-table★ 231same name
- mtarcure/claude-vibe-squad★ 220same name
- searchfit/searchfit-seo★ 9same name
- kid7st/agenticseo★ 2same name
- ventra-rocket/EchoSEO★ 2same name
- winsley-jeune/harborrank-skills★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use seo-project-setup, openseo-release-notes and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JwuthriSkillseo-project-setup
Set up a durable local SEO workspace with project context, notes, goals, positioning, preferences, MCP checks, and Search Console data intake.
Also in 10 projects that use this
JwuthriSkillopenseo-release-notes
Cut an OpenSEO release — bump the version, draft user-facing release notes from commits since the last tag, run a review + subagent-verification pass, and open a "release: vX.X.X" PR. Use when the user asks to prepare a release, bump the version, or write release notes.
Also in 5 projects that use this
MicrosoftSkillcompetitive-landscape
Use when a branch manager asks something like \"Who are we up against in each metro\"
Also in 10 projects that use this
indranilbanerjeeSkillkeyword-research
Research keywords via the connected data source: intent, gaps. Grouping → keyword-cluster. \"what keywords should we target\"
Also in 10 projects that use this
LangChainSkillcompetitor-analysis
Analyze competitors in a given market segment. Trigger on: competitive landscape, competitor analysis, market comparison, competitive positioning.
Also in 10 projects that use this
huiferSkilllocal-seo
本地 SEO 分析和优化专家。自动检测项目是否需要本地 SEO,分析 NAP(Name, Address, Phone)一致性、本地关键词优化、Google Business Profile (GBP) 优化和本地结构化数据生成。提供本地商家搜索引擎排名优化建议,包括 NAP 标准化、本地关键词策略、GBP 完整性检查、评论策略、地图嵌入和本地 SEO 审计。
Also in 4 projects that use this
- +5 more from Jwuthri
In this repository11 other files it gives its agents.
- ai-visibilitySkill
- broken-linksSkill
- competitor-intelSkill
- content-briefSkill
- content-strategySkill
- content-translationSkill
- internal-linkingSkill
- llms-txtSkill
- optimize-pageSkill
- schema-markupSkill
- seo-auditSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

