--- 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 ``` our-seo-agent CLI: Primary ranking data source (future); use --input for pre-fetched JSON WebSearch: Supplementary ranking data ``` ### 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. Identify tracking project or use --input for pre-fetched data 2. Retrieve tracked keywords via `management-project-keywords` 3. Fetch current positions via `rank-tracker-overview` 4. Fetch competitor data via `rank-tracker-competitors-overview` (if requested) ### 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