Files
Andrew Yim 6ac547e78f
Some checks failed
Verify Skills / verify-skills (push) Has been cancelled
refactor(skills): clean skill names (strip NN- prefix from name:) — convention change
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>
2026-05-28 02:11:01 +09:00

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

  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 our-seo-agent CLI
  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

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

  1. User named a backend explicitly → use it.
  2. User preference memory — read feedback_seo_tool_preferences.md; honor the task-type default.
  3. URL inventoryOurSEO crawler (CLI primary). Use Firecrawl only when OurSEO crawler can't handle the target (e.g., JS-heavy SPA).
  4. Per-URL traffic value for risk scoring → Ahrefs site-explorer-top-pages is the strongest signal. Semrush url_research is the alternate.
  5. First-party baseline (REQUIRED for accurate post-migration diff) → GSC + GA4 via our CLI. Always capture before migration date.
  6. Redirect verification (post-launch) → Firecrawl firecrawl_scrape per URL OR WebFetch with redirect following.
  7. Default baseline stack: OurSEO crawl + Ahrefs top-pages + GSC pages + GA4 traffic. Document every source.
  8. 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

  1. Accept target domain, migration type, and new domain (if applicable)
  2. Crawl URL inventory via Firecrawl (capture all URLs + status codes)
  3. Fetch top pages baseline via our-seo-agent CLI or pre-fetched data
  4. Fetch site-level metrics (total traffic, keywords, referring domains)
  5. Enrich URL inventory with traffic/backlink data from our-seo-agent CLI
  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 our-seo-agent 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

## 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