seo-ahrefs
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested @ahrefs/mcp@0.0.11 server. Pairs…
SERP-based semantic topic clustering for content architecture planning. Groups keywords by actual Google SERP overlap (not text similarity), designs hub-and-spoke content clusters with internal link matrices, and generates interactive visualizations. Optionally executes content
$ npx -y skills add AgriciDaniel/claude-seo --skill seo-cluster --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/seo-clusterContext preview
The summary Claude sees to decide when to auto-load this skill.
SERP-based semantic topic clustering for content architecture planning. Groups keywords by actual Google SERP overlap (not text similarity), designs hub-and-spoke content clusters with internal link matrices, and generates interactive visualizations. Optionally executes content
name: seo-cluster description: > SERP-based semantic topic clustering for content architecture planning. Groups keywords by actual Google SERP overlap (not text similarity), designs hub-and-spoke content clusters with internal link matrices, and generates interactive visualizations. Optionally executes content creation if claude-blog is installed. Use when user says "topic cluster", "content cluster", "semantic clustering", "pillar page", "hub and spoke", "content architecture", "keyword grouping", or "cluster plan". user-invocable: true argument-hint: "<seed-keyword or url>" license: MIT metadata: author: AgriciDaniel original_author: "Lutfiya Miller (Pro Hub Challenge Winner)" version: "2.3.1" 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
Claude SEO is an open-source SEO analysis plugin for Claude Code. It runs 25 sub-skills and 18 specialist agents in parallel across technical SEO, content quality (E-E-A-T), Schema.org markup, AI search optimization (GEO), local SEO, e-commerce, and
Repo: AgriciDaniel/claude-seo
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested @ahrefs/mcp@0.0.11 server. Pairs…
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via…
Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing visibility, link data, and IndexNow URL…
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor…
Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl", "find all pages", "broken links",…
Profound LLM citation tracker (extension). Time-series brand citation rates across ChatGPT, Perplexity, and other LLMs. Pairs with seo-seranking for…