---
name: seo-competitor-intel
description: |
  Competitor intelligence and SEO benchmarking.
  Triggers: competitor analysis, competitive intelligence, competitor comparison,
  threat assessment, market position, benchmarking, 경쟁사 분석,
  경쟁 인텔리전스, 벤치마킹, 경쟁사 비교.
---

# SEO Competitor Intelligence & Benchmarking

## Purpose

Comprehensive competitor intelligence for SEO: auto-discover competitors, build profile cards, create head-to-head comparison matrices, analyze keyword overlap, track traffic trends, and score competitive threats. Supports Korean market analysis including Naver Blog/Cafe presence.

## Core Capabilities

1. **Competitor Discovery** - Auto-discover organic competitors via our-seo-agent CLI
2. **Profile Cards** - DR, traffic, keywords, referring domains, top pages, content volume
3. **Comparison Matrix** - Multi-dimensional head-to-head comparison
4. **Keyword Overlap** - Shared, unique, and gap keyword analysis
5. **Threat Scoring** - 0-100 score based on DR gap, traffic ratio, keyword overlap, growth
6. **Competitive Monitoring** - Traffic trends, DR changes, keyword movement, content velocity
7. **Alert Generation** - Flag significant competitive movements
8. **Market Share Estimation** - Organic traffic share within competitive set

## Data Source Selection

Competitor intelligence spans **organic profile** (traffic, keywords), **backlink profile** (DR, refdomains), **content velocity** (top pages, new content), and **Korean platform presence**. Different backends own different slices.

| Backend | Best for | Notes |
|---|---|---|
| **Semrush MCP** (`mcp__semrush__*`) | **Default** for organic competitor profile, keyword overlap, traffic trends | `organic_research`, `trends_research`, `overview_research` → `get_report_schema` → `execute_report`. Auto-discovery of competitors. |
| **Ahrefs MCP** (`mcp__ahrefs__*`) | Backlink profile, organic competitor discovery, top-pages-by-traffic, historical DR | `site-explorer-organic-competitors`, `site-explorer-organic-keywords`, `site-explorer-top-pages`, `site-explorer-domain-rating-history`, `site-explorer-backlinks-stats`. Pair with Semrush for cross-check. |
| **OurSEO** (CLI + MCP) | SERP overlap spot-checks, content similarity, crawl-derived content velocity | `mcp__ourseo__check_serp`, `mcp__ourseo__find_similar_pages`, `mcp__ourseo__crawl_website`. CLI: `our serp competitors`, `our serp ranked-keywords`. |
| **OurSEO CLI — Korean** (`our research naver *`) | Naver-engine competitor analysis (Blog/Cafe/Smart Store presence, Naver SERP) | Naver-only; required for Korean market since Semrush/Ahrefs don't cover Naver. |
| **WebSearch** | Korean Blog/Cafe/Tistory/Brunch presence checks | Supplement Korean platform mapping when Semrush/Ahrefs underrepresent these. |
| **DataForSEO MCP** (`mcp__dfs-mcp__*`) | Fallback for ranked-keywords / SERP competitors when `our` CLI isn't running | Same data as `our serp *`. |

### How to pick

1. **User named a backend explicitly** → use it.
2. **User preference memory** — read `feedback_seo_tool_preferences.md`; honor the task-type default.
3. **Task is backlink-focused** (DR comparison, link gap) → Ahrefs (backlink-graph moat).
4. **Task is keyword/traffic-focused** → Semrush (organic competitor view is strongest).
5. **Task is Korean-market competitor analysis** → **OurSEO CLI** (`our research naver *` + `our serp * --location 2410`). Korean platforms aren't covered by Semrush/Ahrefs.
6. **Default**: Semrush MCP for organic + Ahrefs for backlinks (paired). Korean override: OurSEO CLI.
7. **Still ambiguous + non-trivial** → ask once via `AskUserQuestion`.

### Backend call patterns

**Semrush MCP (default organic):**
```
mcp__semrush__organic_research(query="<target>", database="us")
mcp__semrush__organic_research(query="<competitor>", database="us")
mcp__semrush__trends_research(query="<target>", database="us")
mcp__semrush__overview_research(query="<target>", database="us")
```

**Ahrefs MCP (backlink + top pages):**
```
mcp__ahrefs__site-explorer-organic-competitors(target="<target>")
mcp__ahrefs__site-explorer-organic-keywords(target="<target>", country="us", limit=500)
mcp__ahrefs__site-explorer-top-pages(target="<competitor>", country="us")
mcp__ahrefs__site-explorer-domain-rating-history(target="<target>", history="weekly")
mcp__ahrefs__site-explorer-backlinks-stats(target="<target>")
```

**OurSEO (SERP overlap + content similarity):**
```
mcp__ourseo__check_serp(keyword="<keyword>", domain="<target>", country="kr")
mcp__ourseo__find_similar_pages(crawl_path="<path>", query="<topic>")
mcp__ourseo__crawl_website(url="<competitor>", max_pages=50)
```

**OurSEO CLI (Korean batch):**
```bash
our serp ranked-keywords <competitor.com> --location 2410 --limit 100
our serp competitors <target.com> --location 2410
our research naver serp "<keyword>"
our research naver keywords ideas "<keyword>"
```

**Korean platform presence (WebSearch):**
```
WebSearch: blog.naver.com "<competitor brand>"
WebSearch: cafe.naver.com "<competitor brand>"
WebSearch: tistory.com "<competitor brand>"
```

Always record the chosen data source(s) in the report **Overview** so future runs can compare like-for-like.

## Workflow

### Competitor Profiling
1. Accept target URL/domain
2. Auto-discover competitors via our-seo-agent CLI or use provided list
3. Build profile card for target and each competitor (DR, traffic, keywords, backlinks, content)
4. Analyze keyword overlap between target and each competitor
5. Build multi-dimensional comparison matrix
6. Score competitive threats (0-100)
7. Determine market position (leader/challenger/follower/niche)
8. If Korean market: check Naver Blog/Cafe presence

### Competitive Monitoring
1. Accept target, competitors, and monitoring period
2. Fetch traffic trend history for all domains
3. Fetch DR trend history for all domains
4. Track keyword movement (new/lost keywords)
5. Compare content publication velocity
6. Generate alerts for significant changes (>20% traffic, DR jump, keyword surge)
7. Estimate market share within competitive set

## Output Format

### Profiling Report
```markdown
## Competitor Intelligence Report: [domain]

### Target Profile
- Domain Rating: [DR]
- Organic Traffic: [traffic]
- Keywords: [count]
- Referring Domains: [count]

### Competitors (by threat score)
1. **[competitor.com]** - Threat: [score]/100
   - DR: [value] | Traffic: [value] | Keywords: [value]
   - Keyword Overlap: [shared] shared, [gap] gap
   - Strengths: [list]
   - Weaknesses: [list]

### Comparison Matrix
| Dimension | Target | Comp1 | Comp2 |
|-----------|--------|-------|-------|

### Market Position: [leader/challenger/follower/niche]
```

### Monitoring Report
```markdown
## Competitive Monitoring Report: [domain]
### Period: [N] days

### Alerts
- [severity] [message]

### Traffic Trends
| Domain | Direction | Growth | Current |

### Keyword Movements
| Domain | New | Lost | Net |

### Market Share
| Domain | Traffic% | Overall% |
```

## Threat Scoring Methodology

| Factor | Weight | Scale |
|--------|--------|-------|
| DR Gap | 20% | -30 to +30 mapped to 0-100 |
| Traffic Ratio | 30% | 0x to 2x+ mapped to 0-100 |
| Keyword Overlap | 25% | 0-50%+ mapped to 0-100 |
| Gap Keywords | 25% | Ratio to target keywords |

## Alert Thresholds

| Alert Type | Threshold | Severity |
|------------|-----------|----------|
| Traffic change | >20% | warning; >50% critical |
| DR change | >3 points | warning; >5 critical |
| Keyword surge | >15% growth | warning |
| Content burst | >2x avg velocity | info |

## Limitations

- Data freshness depends on source and collection method
- Keyword overlap limited to top 1,000 keywords per domain
- Content velocity based on page index data (not real-time crawl)
- Naver presence detection is heuristic-based

## Notion Output (Required)

All reports MUST be saved to OurDigital SEO Audit Log:
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
- **Properties**: Issue (title), Site (url), Category ("Competitor Intelligence"), Priority, Found Date, Audit ID
- **Language**: Korean with English technical terms
- **Audit ID Format**: COMP-YYYYMMDD-NNN
