seo-ahrefs
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested…
Cluster keywords by SERP overlap and design hub-and-spoke content architecture with internal links. Use for planning; `/seo cluster execute` then writes the posts with claude-blog's blog-write skill when it is installed, or content briefs when it is not.
Claude Code
$ npx -y skills add AgriciDaniel/claude-seo --skill seo-cluster --agent claude-code
Codex
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a codex -y
Cursor
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a cursor -y
Gemini CLI
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a gemini-cli -y
GitHub Copilot
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a github-copilot -y
OpenCode
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a opencode -y
Windsurf
$ npx skills add AgriciDaniel/claude-seo --skill seo-cluster -a windsurf -y
name: seo-cluster description: > Cluster keywords by SERP overlap and design hub-and-spoke content architecture with internal links. Use for planning; `/seo cluster execute` then writes the posts with claude-blog's blog-write skill when it is installed, or content briefs when it is not. user-invocable: true argument-hint: "<seed-keyword or url>" license: MIT metadata: author: AgriciDaniel original_author: "Lutfiya Miller (Pro Hub Challenge Winner)" version: "2.6.0" category: seo
SERP-overlap-driven keyword clustering for content architecture. Groups keywords by how Google actually ranks them (shared top-10 results), not by text similarity. Designs hub-and-spoke content clusters with internal link matrices and generates interactive cluster map visualizations.
**Scripts:** Located at the plugin root `scripts/` directory.
---
| Command | What it does | |---------|-------------| | `/seo cluster plan <seed-keyword>` | Full planning workflow: expand, cluster, architect, visualize | | `/seo cluster plan --from strategy` | Import from existing `/seo plan` output | | `/seo cluster execute` | Execute plan: create content via claude-blog or output briefs | | `/seo cluster map` | Regenerate the interactive cluster visualization |
---
Expand the seed keyword into 30-50 variants using WebSearch:
1. **Related searches**: Search the seed, extract "related searches" and "people also search for" 2. **People Also Ask (PAA)**: Extract all PAA questions from SERP results 3. **Long-tail modifiers**: Append common modifiers: "best", "how to", "vs", "for beginners", "tools", "examples", "guide", "template", "mistakes", "checklist" 4. **Question mining**: Generate who/what/when/where/why/how variants 5. **Intent modifiers**: Add commercial modifiers: "pricing", "review", "alternative", "comparison", "free", "top"
**Deduplication:** Normalize variants (lowercase, strip articles), remove exact duplicates. Target: 30-50 unique keyword variants. If under 30, run a second expansion pass with the top PAA questions as seeds.
This is the core differentiator. Load `references/serp-overlap-methodology.md` for the full algorithm.
**Process:** 1. Group keywords by initial intent guess (reduces pairwise comparisons) 2. For each candidate pair within a group, WebSearch both keywords 3. Count shared URLs in the top 10 organic results (ignore ads, featured snippets, PAA) 4. Apply thresholds:
| Shared Results | Relationship | Action | |---------------|-------------|--------| | 7-10 | Same post | Merge into single target page | | 4-6 | Same cluster | Group under same spoke cluster | | 2-3 | Interlink | Place in adjacent clusters, add cross-links | | 0-1 | Separate | Assign to different clusters or exclude |
**Optimization:** With 40 keywords, full pairwise = 780 comparisons. Instead:
**DataForSEO integration:** If DataForSEO MCP is available, use `serp_organic_live_advanced` instead of WebSearch for SERP data. Run `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check serp_organic_live_advanced --count N` before each batch. If `"status": "needs_approval"`, show cost estimate and ask user. If `"status": "blocked"`, fall back to WebSearch.
Classify each keyword into one of four intent categories:
| Intent | Signals | Include in Clusters? | |--------|---------|---------------------| | Informational | how, what, why, guide, tutorial, learn | Yes | | Commercial | best, top, review, comparison, vs, alternative | Yes | | Transactional | buy, price, discount, coupon, order, sign up | Yes | | Navigational | brand names, specific product names, login | No (exclude) |
Remove navigational keywords from clustering. Flag borderline cases for manual review. Keywords can have mixed intent (e.g., "best CRM software" is both commercial and informational) -- classify by dominant intent.
Load `references/hub-spoke-architecture.md` for full specifications.
**Design the cluster structure:**
1. **Select the pillar keyword**: Highest volume, broadest intent, most SERP overlap with other keywords 2. **Group spokes into clusters**: Each cluster is a subtopic area (2-5 clusters per pillar) 3. **Assign posts to clusters**: Each cluster gets 2-4 spoke posts 4. **Select templates per post**: Based on intent classification:
| Intent Pattern | Template Options | |---------------|-----------------| | Informational (broad) | ultimate-guide | | Informational (how) | how-to | | Informational (list) | listicle | | Informational (concept) | explainer | | Commercial (compare) | comparison | | Commercial (evaluate) | review | | Commercial (rank) | best-of | | Transactional | landing-page |
5. **Set word count targets:**
6. **Cannibalization check**: No two posts share the same primary keyword. If SERP overlap is 7+, merge those keywords into a single post targeting both.
Design the bidirectional linking structure:
| Link Type | Direction | Requirement | |-----------|-----------|-------------| | Spoke to pillar | spoke -> pillar | Mandatory (every spoke) | | Pillar to spoke | pillar -> spoke | Mandatory (every spoke) | | Spoke to spoke (within cluster) | spoke <-> spoke | 2-3 links per post | | Cross-cluster | spoke -> spoke (other cluster) | 0-1 links per post |
**Rules:**
Universal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested…
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics.…
Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing…
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles,…
Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl",…
Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic,…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…
Build an immersive scroll-scrubbed "fly through the world" landing page for any industry or brand using Higgsfield. As the…