120 lines
4.1 KiB
Markdown
120 lines
4.1 KiB
Markdown
---
|
|
name: seo-position-tracking
|
|
description: |
|
|
Keyword position tracking for keyword ranking monitoring.
|
|
Triggers: rank tracking, position monitoring, keyword rankings, visibility score, ranking report, 키워드 순위, 순위 추적.
|
|
---
|
|
|
|
# SEO Position Tracking
|
|
|
|
## Purpose
|
|
|
|
Monitor keyword ranking positions, detect significant changes, calculate visibility scores, and compare against competitors using our-seo-agent CLI or pre-fetched ranking data. Provides actionable alerts for ranking drops and segment-level performance breakdown.
|
|
|
|
## Core Capabilities
|
|
|
|
1. **Position Monitoring** - Retrieve current keyword ranking positions from our-seo-agent CLI or pre-fetched data
|
|
2. **Change Detection** - Detect significant position changes with configurable threshold alerts (severity: critical/high/medium/low)
|
|
3. **Visibility Scoring** - Calculate weighted visibility scores using CTR-curve model (position 1 = 30%, position 2 = 15%, etc.)
|
|
4. **Brand/Non-brand Segmentation** - Automatically classify keywords by brand relevance and search intent type
|
|
5. **Competitor Comparison** - Compare keyword overlap, position gaps, and visibility scores against competitors
|
|
|
|
## MCP Tool Usage
|
|
|
|
### SEO Data (DataForSEO)
|
|
|
|
**Primary — our-seo-agent CLI:**
|
|
```bash
|
|
our serp ranked-keywords <domain> --location 2410 --limit 100
|
|
our keywords volume "<kw1>" "<kw2>" --location 2410 --language ko
|
|
our serp domain-overview <domain> --location 2410
|
|
our serp competitors <domain> --location 2410
|
|
```
|
|
|
|
**Interactive fallback — DataForSEO MCP:**
|
|
```
|
|
mcp__dfs-mcp__dataforseo_labs_google_ranked_keywords
|
|
mcp__dfs-mcp__dataforseo_labs_google_domain_rank_overview
|
|
mcp__dfs-mcp__dataforseo_labs_google_historical_rank_overview
|
|
mcp__dfs-mcp__dataforseo_labs_google_keyword_overview
|
|
```
|
|
|
|
### Common Parameters
|
|
- **location_code**: 2410 (Korea), 2840 (US), 2392 (Japan)
|
|
- **language_code**: ko, en, ja
|
|
|
|
### Notion for Report Storage
|
|
```
|
|
mcp__notion__notion-create-pages: Save tracking reports to SEO Audit Log
|
|
mcp__notion__notion-update-page: Update existing tracking entries
|
|
```
|
|
|
|
## Workflow
|
|
|
|
### Phase 1: Data Collection
|
|
1. Fetch current ranked keywords: `our serp ranked-keywords <domain> --location 2410 --limit 100 --format json`
|
|
2. Get domain overview: `our serp domain-overview <domain> --location 2410 --format json`
|
|
3. Get search volumes for tracked keywords: `our keywords volume "<kw1>" "<kw2>" --location 2410`
|
|
4. Fetch competitor positions: `our serp ranked-keywords <competitor> --location 2410 --limit 100`
|
|
5. For historical comparison, use MCP: `mcp__dfs-mcp__dataforseo_labs_google_historical_rank_overview`
|
|
|
|
### Phase 2: Analysis
|
|
1. Detect position changes against previous period
|
|
2. Generate alerts for changes exceeding threshold
|
|
3. Calculate visibility score weighted by search volume and CTR curve
|
|
4. Segment keywords into brand/non-brand and by intent type
|
|
5. Compare positions against each competitor
|
|
|
|
### Phase 3: Reporting
|
|
1. Compile position distribution (top3/top10/top20/top50/top100)
|
|
2. Summarize changes (improved/declined/stable/new/lost)
|
|
3. List alerts sorted by severity and search volume
|
|
4. Generate segment-level breakdown
|
|
5. Save report to Notion SEO Audit Log database
|
|
|
|
## Output Format
|
|
|
|
```json
|
|
{
|
|
"target": "https://example.com",
|
|
"total_keywords": 250,
|
|
"visibility_score": 68.5,
|
|
"positions": {
|
|
"top3": 15,
|
|
"top10": 48,
|
|
"top20": 92,
|
|
"top50": 180,
|
|
"top100": 230
|
|
},
|
|
"changes": {
|
|
"improved": 45,
|
|
"declined": 30,
|
|
"stable": 155,
|
|
"new": 12,
|
|
"lost": 8
|
|
},
|
|
"alerts": [
|
|
{
|
|
"keyword": "example keyword",
|
|
"old_position": 5,
|
|
"new_position": 15,
|
|
"change": -10,
|
|
"volume": 5400,
|
|
"severity": "high"
|
|
}
|
|
],
|
|
"segments": {
|
|
"brand": {"keywords": 30, "avg_position": 2.1},
|
|
"non_brand": {"keywords": 220, "avg_position": 24.5}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Notion Output (Required)
|
|
|
|
All tracking reports MUST be saved to OurDigital SEO Audit Log:
|
|
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
|
- **Properties**: Issue (title), Site (url), Category (Position Tracking), Priority, Found Date, Audit ID
|
|
- **Language**: Korean with English technical terms
|
|
- **Audit ID Format**: RANK-YYYYMMDD-NNN
|