Add SEO skills 33-34 and fix bugs in skills 19-34

New skills:
- Skill 33: Site migration planner with redirect mapping and monitoring
- Skill 34: Reporting dashboard with HTML charts and Korean executive reports

Bug fixes (Skill 34 - report_aggregator.py):
- Add audit_type fallback for skill identification (was only using audit_id prefix)
- Extract health scores from nested data dict (technical_score, onpage_score, etc.)
- Support subdomain matching in domain filter (blog.ourdigital.org matches ourdigital.org)
- Skip self-referencing DASH- aggregated reports

Bug fixes (Skill 20 - naver_serp_analyzer.py):
- Remove VIEW tab selectors (removed by Naver in 2026)
- Add new section detectors: books (도서), shortform (숏폼), influencer (인플루언서)

Improvements (Skill 34 - dashboard/executive report):
- Add Korean category labels for Chart.js charts (기술 SEO, 온페이지, etc.)
- Add Korean trend labels (개선 중 ↑, 안정 →, 하락 중 ↓)
- Add English→Korean issue description translation layer (20 common patterns)

Documentation improvements:
- Add Korean triggers to 4 skill descriptions (19, 25, 28, 31)
- Expand Skill 32 SKILL.md from 40→143 lines (was 6/10, added workflow, output format, limitations)
- Add output format examples to Skills 27 and 28 SKILL.md
- Add limitations sections to Skills 27 and 28
- Update README.md, CLAUDE.md, AGENTS.md for skills 33-34

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 00:01:00 +09:00
parent dbfaa883cd
commit d2d0a2d460
37 changed files with 5462 additions and 56 deletions

View File

@@ -0,0 +1,171 @@
---
name: seo-migration-planner
description: |
SEO site migration planning and monitoring. Triggers: site migration, domain move, redirect mapping, platform migration, URL restructuring, HTTPS migration, subdomain consolidation, 사이트 이전, 도메인 이전, 리디렉트 매핑.
---
# SEO Migration Planner & Monitor
## Purpose
Comprehensive site migration planning and post-migration monitoring for SEO: crawl-based URL inventory, traffic/keyword baseline capture via Ahrefs, redirect map generation with per-URL risk scoring, pre-migration checklist creation, and post-launch traffic/indexation/ranking recovery tracking with automated alerts. Supports domain moves, platform changes, URL restructuring, HTTPS migrations, and subdomain consolidation.
## Core Capabilities
1. **URL Inventory** - Crawl entire site via Firecrawl to capture all URLs and status codes
2. **Traffic Baseline** - Capture per-page traffic, keywords, and backlinks via Ahrefs
3. **Redirect Map Generation** - Create old URL -> new URL mappings with 301 redirect rules
4. **Risk Scoring** - Score each URL (0-100) based on traffic, backlinks, and keyword rankings
5. **Pre-Migration Checklist** - Generate type-specific migration checklist (Korean)
6. **Post-Migration Traffic Comparison** - Compare pre vs post traffic by page group
7. **Redirect Health Check** - Detect broken redirects, chains, and loops
8. **Indexation Tracking** - Monitor indexed page count changes and missing pages
9. **Ranking Monitoring** - Track keyword position changes for priority keywords
10. **Recovery Estimation** - Estimate traffic recovery timeline based on migration type
11. **Alert Generation** - Flag traffic drops >20%, broken redirects, indexation loss
## MCP Tool Usage
### Ahrefs for SEO Baseline & Monitoring
```
mcp__ahrefs__site-explorer-metrics: Current organic metrics (traffic, keywords)
mcp__ahrefs__site-explorer-metrics-history: Historical metrics for pre/post comparison
mcp__ahrefs__site-explorer-top-pages: Top performing pages for baseline
mcp__ahrefs__site-explorer-pages-by-traffic: Pages ranked by traffic for risk scoring
mcp__ahrefs__site-explorer-organic-keywords: Keyword rankings per page
mcp__ahrefs__site-explorer-referring-domains: Referring domains for risk scoring
mcp__ahrefs__site-explorer-backlinks-stats: Backlink overview for migration impact
```
### Firecrawl for URL Inventory & Redirect Verification
```
mcp__firecrawl__firecrawl_crawl: Crawl entire site for URL inventory
mcp__firecrawl__firecrawl_scrape: Verify individual redirect health
```
### Notion for Report Storage
```
mcp__notion__notion-create-pages: Save reports to SEO Audit Log
```
### Perplexity for Migration Best Practices
```
mcp__perplexity__search: Research migration best practices and common pitfalls
```
## Workflow
### Pre-Migration Planning
1. Accept target domain, migration type, and new domain (if applicable)
2. Crawl URL inventory via Firecrawl (capture all URLs + status codes)
3. Fetch Ahrefs top pages baseline (traffic, keywords, backlinks per page)
4. Fetch site-level metrics (total traffic, keywords, referring domains)
5. Enrich URL inventory with Ahrefs traffic/backlink data
6. Score risk per URL (0-100) based on traffic weight (40%), backlinks (30%), keywords (30%)
7. Generate redirect map (old URL -> new URL) based on migration type
8. Aggregate risk assessment (high/medium/low URL counts, overall risk level)
9. Generate pre-migration checklist (common + type-specific items, in Korean)
10. Save baseline and plan to Notion
### Post-Migration Monitoring
1. Accept domain, migration date, and optional baseline JSON
2. Compare pre vs post traffic using Ahrefs metrics history
3. Check redirect health via Firecrawl (broken, chains, loops)
4. Track indexation changes (pre vs post page count, missing pages)
5. Track keyword ranking changes for priority keywords
6. Estimate recovery timeline based on traffic delta and migration type
7. Generate alerts for significant issues (traffic >20% drop, broken redirects, etc.)
8. Save monitoring report to Notion
## Output Format
### Planning Report
```markdown
## SEO 사이트 이전 계획: [domain]
### 베이스라인
- 전체 URL 수: [count]
- 오가닉 트래픽: [traffic]
- 오가닉 키워드: [keywords]
- 참조 도메인: [count]
### 위험 평가
- 전체 위험도: [HIGH/MEDIUM/LOW]
- 고위험 URL: [count]개
- 중위험 URL: [count]개
- 저위험 URL: [count]개
### 리디렉트 맵 (상위 위험 URL)
| Source URL | Target URL | Risk Score | Priority |
|------------|------------|------------|----------|
### 사전 체크리스트
- [ ] Step 1: ...
- [ ] Step 2: ...
```
### Monitoring Report
```markdown
## SEO 이전 모니터링 보고서: [domain]
### 이전일: [date] | 경과일: [N]일
### 알림
- [severity] [message]
### 트래픽 비교
| Page Group | Pre | Post | Change | Status |
|------------|-----|------|--------|--------|
### 리디렉트 상태
- 전체: [count] | 정상: [count] | 깨짐: [count] | 체인: [count]
### 인덱싱 현황
- 이전 전: [count] | 이전 후: [count] | 변화: [pct]%
### 회복 예상
- 예상 기간: [weeks]주
- 현재 회복률: [pct]%
```
## Risk Scoring Methodology
| Factor | Weight | Scale |
|--------|--------|-------|
| Traffic | 40% | 1,000+ monthly visits = high risk |
| Backlinks | 30% | 50+ referring domains = high risk |
| Keywords | 30% | 20+ keyword rankings = high risk |
### Priority Classification
| Risk Score | Priority | Action |
|------------|----------|--------|
| 75-100 | Critical | Manual redirect verification required |
| 50-74 | High | Priority redirect with monitoring |
| 25-49 | Medium | Standard redirect |
| 0-24 | Low | Batch redirect |
## Alert Thresholds
| Alert Type | Threshold | Severity |
|------------|-----------|----------|
| Traffic drop | >20% | warning; >40% critical |
| Broken redirects | >0 | warning; >10 critical |
| Redirect chains | >0 | warning |
| Indexation loss | >10% | warning; >30% critical |
| Ranking drop | >5 positions (volume 100+) | warning; >20 keywords critical |
## Limitations
- Ahrefs data has ~24h freshness lag
- Firecrawl crawl limited to 5,000 URLs per run
- Redirect chain detection depends on Firecrawl following redirects
- Recovery estimation is heuristic-based on industry averages
- URL restructuring requires manual mapping rules (no auto-pattern detection)
## 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 ("SEO Migration"), Priority, Found Date, Audit ID
- **Language**: Korean with English technical terms
- **Audit ID Format**: MIGR-YYYYMMDD-NNN

View File

@@ -0,0 +1,10 @@
name: seo-migration-planner
description: |
SEO site migration planning and monitoring. Triggers: site migration, domain move, redirect mapping, platform migration, URL restructuring, 사이트 이전.
allowed-tools:
- mcp__ahrefs__*
- mcp__firecrawl__*
- mcp__notion__*
- mcp__perplexity__*
- WebSearch
- WebFetch

View File

@@ -0,0 +1,37 @@
# Ahrefs
> MCP tool documentation for migration planner skill
## Available Commands
- `site-explorer-metrics` - Get current organic metrics (traffic, keywords) for a domain
- `site-explorer-metrics-history` - Get historical organic metrics for pre/post comparison
- `site-explorer-top-pages` - Get top performing pages by traffic for baseline
- `site-explorer-pages-by-traffic` - Get pages ranked by organic traffic for risk scoring
- `site-explorer-organic-keywords` - Get keyword rankings per page
- `site-explorer-referring-domains` - Get referring domain list for risk scoring
- `site-explorer-backlinks-stats` - Get backlink overview for migration impact assessment
## Configuration
- Requires Ahrefs MCP server configured in Claude Desktop
- API access via `mcp__ahrefs__*` tool prefix
## Examples
```
# Get site baseline metrics
mcp__ahrefs__site-explorer-metrics(target="example.com")
# Get top pages for risk scoring
mcp__ahrefs__site-explorer-top-pages(target="example.com", limit=500)
# Get traffic history for pre/post comparison
mcp__ahrefs__site-explorer-metrics-history(target="example.com", date_from="2025-01-01")
# Get backlink stats for a specific page
mcp__ahrefs__site-explorer-backlinks-stats(target="https://example.com/important-page")
# Get keyword rankings
mcp__ahrefs__site-explorer-organic-keywords(target="example.com", limit=200)
```

View File

@@ -0,0 +1,29 @@
# Firecrawl
> MCP tool documentation for URL inventory crawling and redirect verification
## Available Commands
- `firecrawl_crawl` - Crawl entire site to capture all URLs and status codes for migration inventory
- `firecrawl_scrape` - Scrape individual pages to verify redirect health (status codes, chains, final URL)
## Configuration
- Requires Firecrawl MCP server configured in Claude Desktop
- API access via `mcp__firecrawl__*` tool prefix
## Examples
```
# Crawl full site for URL inventory
mcp__firecrawl__firecrawl_crawl(url="https://example.com", limit=5000, scrapeOptions={"formats": ["links"]})
# Verify a redirect
mcp__firecrawl__firecrawl_scrape(url="https://old-example.com/page", formats=["links"])
```
## Notes
- Crawl limit defaults to 5,000 URLs per run
- For larger sites, run multiple crawls with path-based filtering
- Redirect verification returns status_code, final_url, and redirect_chain

View File

@@ -0,0 +1,46 @@
# Notion
> MCP tool documentation for saving migration planning and monitoring reports
## Available Commands
- `notion-create-pages` - Create new pages in the SEO Audit Log database
- `notion-update-page` - Update existing audit entries
- `notion-query-database-view` - Query existing reports
- `notion-search` - Search across Notion workspace
## Configuration
- Database ID: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
- All reports saved with Category: "SEO Migration"
- Audit ID format: MIGR-YYYYMMDD-NNN
## Examples
```
# Create migration planning report
mcp__notion__notion-create-pages(
database_id="2c8581e5-8a1e-8035-880b-e38cefc2f3ef",
properties={
"Issue": {"title": [{"text": {"content": "사이트 이전 계획 - example.com - 2025-01-15"}}]},
"Site": {"url": "https://example.com"},
"Category": {"select": {"name": "SEO Migration"}},
"Priority": {"select": {"name": "High"}},
"Found Date": {"date": {"start": "2025-01-15"}},
"Audit ID": {"rich_text": [{"text": {"content": "MIGR-20250115-001"}}]}
}
)
# Create post-migration monitoring report
mcp__notion__notion-create-pages(
database_id="2c8581e5-8a1e-8035-880b-e38cefc2f3ef",
properties={
"Issue": {"title": [{"text": {"content": "이전 모니터링 보고서 - new-example.com - 2025-02-01"}}]},
"Site": {"url": "https://new-example.com"},
"Category": {"select": {"name": "SEO Migration"}},
"Priority": {"select": {"name": "Critical"}},
"Found Date": {"date": {"start": "2025-02-01"}},
"Audit ID": {"rich_text": [{"text": {"content": "MIGR-20250201-001"}}]}
}
)
```