Adopt: directory keeps its NN- ordering prefix; skill `name:` is the clean form without it (dir 16-seo-schema-validator → name: seo-schema-validator). Nicer to invoke, matches the original desktop/SKILL.md names, still globally unique. - 71 root SKILL.md: name: NN-foo → name: foo (flat skills + reference-curator suite). Plugins (mac-optimizer/multi-agent-guide/dintel-bootstrap) already clean; 95 already clean. - scripts/migrate_skill_root.py: derive name = dirname minus NN- prefix (skill_name()). - CLAUDE.md + SKILL-MIGRATION-GUIDE.md: document the dir-prefix / clean-name convention. verify_skills.py: 0 name collisions across all renamed skills. (The ~/.claude/skills symlinks were re-pointed to the clean names separately — filesystem only.) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
10 KiB
name, description
| name | description |
|---|---|
| seo-migration-planner | 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 our-seo-agent CLI, 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
- URL Inventory - Crawl entire site via Firecrawl to capture all URLs and status codes
- Traffic Baseline - Capture per-page traffic, keywords, and backlinks via our-seo-agent CLI
- Redirect Map Generation - Create old URL -> new URL mappings with 301 redirect rules
- Risk Scoring - Score each URL (0-100) based on traffic, backlinks, and keyword rankings
- Pre-Migration Checklist - Generate type-specific migration checklist (Korean)
- Post-Migration Traffic Comparison - Compare pre vs post traffic by page group
- Redirect Health Check - Detect broken redirects, chains, and loops
- Indexation Tracking - Monitor indexed page count changes and missing pages
- Ranking Monitoring - Track keyword position changes for priority keywords
- Recovery Estimation - Estimate traffic recovery timeline based on migration type
- Alert Generation - Flag traffic drops >20%, broken redirects, indexation loss
Data Source Selection
Site migration spans URL inventory (crawl), traffic/keyword/backlink baseline (third-party + first-party), redirect verification (live HTTP), and post-launch monitoring (delta over time). Pick per data class — migration baselines often combine 3-4 backends.
| Backend | Best for | Notes |
|---|---|---|
| OurSEO (CLI + MCP) | Default for URL inventory, on-page crawl, index status, technical audit, schema baseline | CLI: our collect crawl, our collect distributed, our audit tech, our research google index. MCP: mcp__ourseo__crawl_website, mcp__ourseo__check_index. Distributed crawler for sites >5K URLs. |
Firecrawl MCP (mcp__firecrawl__*) |
Large-scale URL inventory when OurSEO crawler is unavailable; per-URL redirect verification | firecrawl_crawl for full site map; firecrawl_scrape for redirect health on a specific URL. Useful when target is JS-heavy. |
Ahrefs MCP (mcp__ahrefs__*) |
Per-URL traffic value + backlink count baseline (risk scoring), top pages by traffic | site-explorer-top-pages (traffic per URL), site-explorer-pages-by-backlinks, site-explorer-metrics, site-explorer-metrics-history, site-explorer-pages-history. |
Semrush MCP (mcp__semrush__*) |
Per-URL organic traffic + keyword baseline | organic_research, url_research, overview_research. |
GSC (via our research search-console) |
First-party impression baseline — what Google rendered for each URL pre-migration | Required for ground-truth post-migration comparison. Use pages / combined reports. |
GA4 (via our research ga4 *) |
First-party traffic baseline (sessions, conversions per URL) | Best for actual user-traffic baseline, complements GSC impressions. |
Perplexity MCP (mcp__perplexity__*) |
Research migration best practices, common pitfalls per migration type | Not a data source — guidance enrichment. |
How to pick
- User named a backend explicitly → use it.
- User preference memory — read
feedback_seo_tool_preferences.md; honor the task-type default. - URL inventory → OurSEO crawler (CLI primary). Use Firecrawl only when OurSEO crawler can't handle the target (e.g., JS-heavy SPA).
- Per-URL traffic value for risk scoring → Ahrefs
site-explorer-top-pagesis the strongest signal. Semrushurl_researchis the alternate. - First-party baseline (REQUIRED for accurate post-migration diff) → GSC + GA4 via
ourCLI. Always capture before migration date. - Redirect verification (post-launch) → Firecrawl
firecrawl_scrapeper URL ORWebFetchwith redirect following. - Default baseline stack: OurSEO crawl + Ahrefs top-pages + GSC pages + GA4 traffic. Document every source.
- Still ambiguous + non-trivial → ask once via
AskUserQuestion.
Backend call patterns
OurSEO CLI (default — URL inventory + audit):
our collect crawl https://<site> --max-pages 5000
our collect distributed https://<site> --workers 8 --max-pages 50000
our audit tech https://<site>
our research google index --domain <site>
OurSEO MCP (Claude Desktop):
mcp__ourseo__crawl_website(url="<site>", max_pages=5000)
mcp__ourseo__check_index(domain="<site>")
Firecrawl (URL inventory + redirect verification):
mcp__firecrawl__firecrawl_crawl(url="<site>", limit=5000)
mcp__firecrawl__firecrawl_scrape(url="<specific URL>", formats=["markdown"])
Ahrefs MCP (per-URL traffic + backlink baseline):
mcp__ahrefs__site-explorer-top-pages(target="<site>", country="us", limit=500)
mcp__ahrefs__site-explorer-pages-by-backlinks(target="<site>", limit=500)
mcp__ahrefs__site-explorer-metrics(target="<site>")
mcp__ahrefs__site-explorer-metrics-history(target="<site>", history="weekly")
mcp__ahrefs__site-explorer-pages-history(target="<site>")
Semrush MCP (per-URL organic baseline):
mcp__semrush__organic_research(query="<site>", database="us")
mcp__semrush__url_research(query="<specific URL>", database="us")
mcp__semrush__overview_research(query="<site>", database="us")
First-party baseline (GSC + GA4):
our research search-console pages --site sc-domain:<site> --days 90
our research search-console combined --site sc-domain:<site> --days 90
our research ga4 traffic --property-id <id>
our research ga4 landing-pages --property-id <id>
Migration best practices (Perplexity):
mcp__perplexity__search(query="SEO migration <type> best practices")
Always record the chosen data source(s) per metric in the planning report's Baseline section and re-use the same sources in post-migration monitoring so the diff is meaningful.
Workflow
Pre-Migration Planning
- Accept target domain, migration type, and new domain (if applicable)
- Crawl URL inventory via Firecrawl (capture all URLs + status codes)
- Fetch top pages baseline via our-seo-agent CLI or pre-fetched data
- Fetch site-level metrics (total traffic, keywords, referring domains)
- Enrich URL inventory with traffic/backlink data from our-seo-agent CLI
- Score risk per URL (0-100) based on traffic weight (40%), backlinks (30%), keywords (30%)
- Generate redirect map (old URL -> new URL) based on migration type
- Aggregate risk assessment (high/medium/low URL counts, overall risk level)
- Generate pre-migration checklist (common + type-specific items, in Korean)
- Save baseline and plan to Notion
Post-Migration Monitoring
- Accept domain, migration date, and optional baseline JSON
- Compare pre vs post traffic using our-seo-agent metrics history
- Check redirect health via Firecrawl (broken, chains, loops)
- Track indexation changes (pre vs post page count, missing pages)
- Track keyword ranking changes for priority keywords
- Estimate recovery timeline based on traffic delta and migration type
- Generate alerts for significant issues (traffic >20% drop, broken redirects, etc.)
- Save monitoring report to Notion
Output Format
Planning Report
## 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
## 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
- Data freshness depends on source and collection method
- 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