From rad-seo-optimizer
Competitor analysis, competitor SEO, who ranks for, competitive audit, compare my SEO, competitor gap. Covers content gaps, technical SEO comparison (observable signals), SERP feature ownership, AI citation pattern observation, and qualitative link opportunity mapping. Does NOT report numerical backlink counts, domain authority, organic traffic, or actual AI citation rates — those require a backlink / traffic / AI-platform MCP (Path B).
How this skill is triggered — by the user, by Claude, or both
Slash command
/rad-seo-optimizer:competitor-intelligence [competitor URL or domain] [--non-interactive] [--resume <run-id>][competitor URL or domain] [--non-interactive] [--resume <run-id>]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Perform a competitor SEO analysis via observable signals. Every finding includes a concrete, prioritized action. Be honest about what's measured vs. observed vs. requiring Path B integration.
Perform a competitor SEO analysis via observable signals. Every finding includes a concrete, prioritized action. Be honest about what's measured vs. observed vs. requiring Path B integration.
Works identically on current Opus / Sonnet / Haiku models. Opus/Sonnet batch WebFetch calls + WebSearch queries in parallel. Haiku may prefer sequential for large competitor sets.
Read references/CAPABILITIES.md. Key constraints for this skill:
Report observable signals; mark gaps in measurement_gaps[]; never fabricate numbers.
--non-interactive — Skip confirmation prompts, use defaults, emit trailing JSON--resume <run-id> — Load .seo/state/<run-id>.json and continue from last saved phaseBefore starting, collect from the user. Do not proceed without all three:
If only a URL is provided, ask:
"Provide 2-3 competitors already known, plus 5-10 keywords to rank for. The analysis will also discover digital competitors — sites actually beating the target site in search, which are often different from direct business competitors."
In --non-interactive mode, use reasonable defaults and record unanswered items.
Accept the user's 2-3 competitors. Validate each URL loads via WebFetch (head-level check).
Digital competitors rank in top 10 for target keywords regardless of whether they're direct rivals. For each target keyword (in parallel):
WebSearch("[keyword]")
Collect every domain in the top 10 across all keyword searches. Rank by keyword overlap. Top 3-5 recurring domains (excluding user's own) are digital competitors.
Present combined list:
| # | Competitor | Type | Overlapping Keywords |
|---|---|---|---|
| 1 | example.com | Business + Digital | 8 of 10 |
| 2 | blog-rival.com | Digital only | 6 of 10 |
| 3 | toolsite.io | Digital only | 5 of 10 |
Ask user to confirm which to include (recommend 3). Save Phase 1 checkpoint.
For each confirmed competitor × target keyword pair:
WebSearch("site:competitor.com [keyword]")
WebSearch("site:competitor.com")
Build a list of each competitor's top-performing URLs and the topics they cover.
Compare competitor topic lists against the user's site. Classify each gap:
For the top 5 content gaps, WebFetch the competitor's page. Evaluate:
A "10x opportunity" is a topic where:
Flag top 3 10x opportunities with rationale.
WebFetch the homepage + one key landing page from each competitor. Benchmark:
Load behavior via WebFetch headers + HTML inspection. Note:
Do NOT report numerical CWV scores — that requires Lighthouse/PSI (Path B). Report as risk factors.
HTML inspection:
Parse <script type="application/ld+json"> from fetched HTML. Catalog schema types per competitor:
Flag schema types competitors use that the user does not.
| Site | Pattern | Depth | Keyword in URL |
|---|---|---|---|
| user.com | /blog/post-title | 2 levels | Sometimes |
| comp1.com | /guides/category/topic | 3 levels | Always |
Honest framing: This skill cannot measure backlink counts, referring domain counts, or domain authority. Those require Ahrefs / Majestic / Semrush / Moz APIs (Path B). Instead, this phase identifies observable link opportunities via mentions in WebSearch.
For each competitor (in parallel):
WebSearch('"competitor.com" -site:competitor.com')
WebSearch('"competitor brand name" recommendation OR review OR resource')
Collect referring domains that appear in results. Cross-reference across competitors to find sites that mention multiple competitors but not the user — these are the highest-value observable opportunities.
For each opportunity:
See references/link-building-tactics.md for detailed playbooks.
Sort by combined score of (relevance × feasibility). Present top 10.
Measurement gap: Actual backlink counts, referring domains, and DA/DR numbers require Path B integrations — surface in measurement_gaps[].
Map who currently owns SERP features for each target keyword (parallel WebSearch).
For each target keyword:
WebSearch("[keyword]")
Note whether a featured snippet appears + who holds it. Record format (paragraph / list / table) + approximate content.
Check for: review stars, product cards, video carousels, image packs, event listings, recipe cards. Map which competitors own each type for which keywords. (FAQ accordions and HowTo steps no longer exist in Google SERPs — FAQ retired May 2026, HowTo 2023; if observed, that's a different engine or a stale cache.)
Collect PAA questions that appear. Note which competitors' pages are surfaced. These questions are direct content-brief opportunities.
Check whether any competitor has a knowledge panel. If user doesn't, note steps to establish one (Google Business Profile, Wikidata, structured data).
| Keyword | Feature | Current Owner | User Eligible? | Action to Win |
|---|---|---|---|---|
| best crm | Featured snippet (list) | comp1.com | Yes | Add H2 list format |
| crm pricing | PAA presence | comp2.com | Yes | Publish direct-answer pricing section |
Honest framing: This phase observes what content patterns earn AI citations — NOT the user's or competitors' actual citation rates. Measuring actual citation rates requires direct AI-platform API integration (Path B).
For each target keyword:
WebSearch("[keyword]")
If Google surfaces an AI Overview, note:
Also search for related patterns:
WebSearch("[keyword] site:perplexity.ai")
WebSearch("[keyword] what does ai say")
For competitor content that gets cited by AI Overviews (observable via WebSearch), investigate:
For keywords where a competitor is cited by AI but the user isn't:
This is NOT a "how often am I cited" score — it's a diagnostic of why my content isn't structurally ready to be cited.
Reference references/aeo-playbook.md and skills/aeo-optimizer Phase 1 (AI-Extractability Content Linter) for detailed structural rules.
For each observable gap, recommend a specific action: reformat with question-format H2, add direct-answer lead, add FAQ schema, add comparison table, add original data.
Measurement gap: Actual AI citation rates across ChatGPT / Perplexity / Gemini / Claude / Copilot require direct platform APIs — surface in measurement_gaps[].
# Competitor Intelligence Report: [Your Site] vs. [Competitors]
# Generated: [Date]
## Executive Summary
[3-5 sentence overview of competitive position, biggest observable gaps, biggest opportunities.
Name the measurement gaps honestly.]
## Competitor Overview (observable signals)
| Metric | Your Site | Comp 1 | Comp 2 | Comp 3 |
|--------|-----------|--------|--------|--------|
| Type | — | Business | Digital | Digital |
| Keyword Overlap | — | 8/10 | 6/10 | 5/10 |
| Content Depth Signal | [qualitative] | [qualitative] | [qualitative] | [qualitative] |
| Schema Types Used | [count] | [count] | [count] | [count] |
| SERP Features Owned | [count] | [count] | [count] | [count] |
| AI Overview Citations Observed | [count] | [count] | [count] | [count] |
## Measurement Gaps (Path B integrations would unlock)
- Backlink counts + DR/DA: Ahrefs / Majestic / Semrush / Moz MCP
- Organic traffic estimates: Similarweb / Semrush MCP
- Actual AI citation rates across all platforms: direct AI-platform API MCPs
## Content Gaps (observable)
1. **[Topic]** — Competitor X has [URL], user has nothing. **Action**: [specific content to create].
2. ...
## 10x Content Opportunities
1. **[Topic]** — Existing competitor content is [weakness]. User can win by [strategy].
## Technical SEO Comparison
[Observable technical signals; code-level risk factors for page speed — not numerical CWV]
## Qualitative Link Opportunities
1. **[Referring Site]** — Observed to link to Comp 1 + Comp 2 not user. Type: [resource page]. **Tactic**: [outreach approach].
## SERP Feature Opportunities
1. **[Keyword]** — Featured snippet held by [competitor]. Format: [list/table/paragraph]. **Strategy**: [restructure to win snippet].
## AI Citation Pattern Observations
[What content patterns competitors use that get cited — NOT their citation rates]
### Observable Gaps
- [Keyword] — Competitor X cited by Google AI Overview with [format]. User's equivalent page missing [specific structural pattern].
### User AI-Extractability Action Plan
1. **[Action]** — Target: [page]. Pattern to apply: [specific structural rule]. See skills/aeo-optimizer Phase 1.
## Prioritized Action Plan
Sorted by (Impact / Effort). Max 15 items.
| # | Action | Category | Impact | Effort | Timeline |
|---|--------|----------|--------|--------|----------|
| 1 | [action] | Content Gap | High | Low | 1 week |
| 2 | [action] | SERP Feature | High | Low | 2 days |
...
references/aeo-playbook.md for AI strategies and references/link-building-tactics.md for link playbooksProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub radorigin-llc/rad-claude-skills --plugin rad-seo-optimizer