---
name: seo-kpi-framework
description: |
  SEO KPI and performance framework for unified metrics, health scores, ROI, and period-over-period reporting.
  Triggers: SEO KPI, performance report, health score, SEO metrics, ROI,
  baseline, targets, SEO 성과 지표, KPI 대시보드, SEO 성과 보고서.
---

# SEO KPI & Performance Framework

## Purpose

Aggregate SEO KPIs across all dimensions into a unified dashboard. Establish baselines, set targets (30/60/90-day), generate executive summaries with health scores, provide tactical breakdowns, estimate ROI using our-seo-agent traffic cost data, and support period-over-period comparison (MoM, QoQ, YoY).

## Core Capabilities

1. **KPI Aggregation** - Unified metrics across 7 dimensions (traffic, rankings, links, technical, content, engagement, local)
2. **Health Scoring** - Weighted 0-100 score with trend direction
3. **Baseline & Targets** - Establish baselines and set 30/60/90 day growth targets
4. **ROI Estimation** - Traffic value from organic cost data
5. **Performance Reporting** - Period-over-period comparison with executive summary
6. **Tactical Breakdown** - Actionable next steps per dimension

## MCP Tool Usage

### SEO Data
```
our-seo-agent CLI: Primary metrics source (future); use --input for pre-fetched JSON
WebSearch / WebFetch: Supplementary metrics data
```

### Notion for Report Storage
```
mcp__notion__*: Save reports to SEO Audit Log database
```

## Workflow

### 1. KPI Aggregation
1. Fetch site-explorer-metrics for current organic data
2. Extract traffic, ranking, link, technical, content metrics
3. Calculate dimension scores with weights (traffic 25%, rankings 20%, technical 20%, content 15%, links 15%, local 5%)
4. Compute overall health score (0-100)
5. Set 30/60/90 day targets (5%/10%/20% improvement)
6. Estimate ROI from traffic cost data (use our-seo-agent CLI or pre-fetched JSON)

### 2. Performance Reporting
1. Determine date range from period (monthly/quarterly/yearly/custom)
2. Fetch metrics-history for current and previous period
3. Calculate period-over-period changes
4. Identify wins (>5% improvement) and concerns (>5% decline)
5. Generate executive summary with trend arrows
6. Create tactical breakdown with actionable next steps
7. Compare against targets if provided

## Output Format

```markdown
## SEO KPI Dashboard: [domain]

### Health Score: [score]/100 ([trend])

### KPI Summary
| Dimension | Score | Key Metric | Trend |
|-----------|-------|------------|-------|
| Traffic | [score] | [organic_traffic] | [arrow] |
| Rankings | [score] | [visibility] | [arrow] |
| Links | [score] | [DR] | [arrow] |
| Technical | [score] | [health] | [arrow] |
| Content | [score] | [indexed_pages] | [arrow] |

### Executive Summary
- Top Wins: [list]
- Top Concerns: [list]
- Recommendations: [list]

### Targets (30/60/90 day)
[Target table with progress bars]
```

## Key Metrics

| Dimension | Metrics | Source |
|-----------|---------|--------|
| Traffic | Organic traffic, traffic value (USD) | site-explorer-metrics |
| Rankings | Visibility score, top10 keywords | site-explorer-metrics |
| Links | Domain rating, referring domains | domain-rating, metrics |
| Technical | Pages crawled, technical health | site-explorer-metrics |
| Content | Indexed pages, freshness score | site-explorer-metrics |
| Local | GBP visibility, review score | External data |

## Limitations

- Local KPIs require external GBP data (not available via our-seo-agent)
- Engagement KPIs (bounce rate, session duration) require Google Analytics
- Technical health is estimated heuristically from available data
- ROI is estimated from organic traffic cost data, not actual revenue

## 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, Priority, Found Date, Audit ID
- **Language**: Korean with English technical terms
- **Audit ID Format**: KPI-YYYYMMDD-NNN
