Run the additive migration pass from SKILL-MIGRATION-GUIDE: generate a root SKILL.md for every skill that lacked one, copied from its desktop/SKILL.md (or code/SKILL.md), with name set to the directory name and description + body preserved verbatim. - scripts/migrate_skill_root.py: the reusable, non-destructive migrator (dry-run default). - 61 new root SKILL.md (desktop source for most; code/SKILL.md for 61/62/92). - Untouched: 16/17/95 (already had root); desktop/ and code/ packaging left intact. - All 64 root SKILL.md validate: frontmatter <=1024, kebab name, description present. Still MANUAL (no SKILL.md source — commands/README only), need hand-authored root SKILL.md: 81-mac-optimizer, 90-reference-curator, 91-multi-agent-guide, 94-dintel-bootstrap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
148 lines
6.2 KiB
Markdown
148 lines
6.2 KiB
Markdown
---
|
|
name: 22-seo-link-building
|
|
description: |
|
|
Link building diagnosis and backlink analysis tool.
|
|
Triggers: backlink audit, link building, referring domains, toxic links, link gap, broken backlinks, 백링크 분석, 링크빌딩.
|
|
---
|
|
|
|
# SEO Link Building Diagnosis
|
|
|
|
## Purpose
|
|
|
|
Analyze backlink profiles, detect toxic links, find competitor link gaps, track link velocity, and map Korean platform links. Provides actionable link building recommendations.
|
|
|
|
## Core Capabilities
|
|
|
|
1. **Backlink Profile Audit** - DR, referring domains, dofollow ratio, anchor distribution
|
|
2. **Toxic Link Detection** - PBN patterns, spam domains, link farm identification
|
|
3. **Competitor Link Gap Analysis** - Domains linking to competitors but not target
|
|
4. **Link Velocity Tracking** - New/lost referring domains over time
|
|
5. **Broken Backlink Recovery** - Find and reclaim broken high-DR backlinks
|
|
6. **Korean Platform Mapping** - Naver Blog, Cafe, Tistory, Brunch, Korean news
|
|
|
|
## Data Source Selection
|
|
|
|
This skill can pull backlink data from multiple backends. **Pick one per task** — don't fan out by default (cost + rate limits). Backlink graphs are the most cost-sensitive of all SEO data.
|
|
|
|
| Backend | Best for | Notes |
|
|
|---|---|---|
|
|
| **Ahrefs MCP** (`mcp__ahrefs__*`) | **Default** — Ahrefs' backlink graph remains the strongest in the industry. All `site-explorer-*` endpoints. | Primary capability: `site-explorer-domain-rating`, `-backlinks-stats`, `-referring-domains`, `-anchors`, `-broken-backlinks`, `-refdomains-history`. |
|
|
| **Semrush MCP** (`mcp__semrush__*`) | Alternative when user is already in Semrush context or wants a second opinion | `backlink_research` covers similar ground; Authority Score replaces DR. Coverage is competitive but not identical to Ahrefs. |
|
|
| **OurSEO** | **Not a backlink source.** No backlink graph in the OurSEO stack. | If asked, use OurSEO MCP / CLI only as a supplement for on-page link inventory (`crawl_website` extracts internal/outbound links from the target site itself). |
|
|
| **WebSearch / WebFetch** | Manual spot-check of a specific referring URL | Useful for verifying anchor / context of a high-value referring page. |
|
|
|
|
### 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. **Task is comparison across vendors** (e.g., "verify Ahrefs claims with Semrush") → run both, document the source per metric.
|
|
4. **Default**: **Ahrefs MCP** — backlink work is the one SEO task where Ahrefs is the default, not Semrush.
|
|
5. **Still ambiguous + non-trivial** → ask once via `AskUserQuestion`.
|
|
|
|
### Backend call patterns
|
|
|
|
**Ahrefs MCP (default):**
|
|
```
|
|
mcp__ahrefs__site-explorer-domain-rating(target="<domain>")
|
|
mcp__ahrefs__site-explorer-backlinks-stats(target="<domain>")
|
|
mcp__ahrefs__site-explorer-referring-domains(target="<domain>", limit=100)
|
|
mcp__ahrefs__site-explorer-anchors(target="<domain>")
|
|
mcp__ahrefs__site-explorer-broken-backlinks(target="<domain>", limit=100)
|
|
mcp__ahrefs__site-explorer-refdomains-history(target="<domain>", history="weekly")
|
|
mcp__ahrefs__site-explorer-all-backlinks(target="<domain>", limit=500)
|
|
mcp__ahrefs__site-explorer-linked-anchors-external(target="<competitor>")
|
|
```
|
|
|
|
**Semrush MCP (alternative):**
|
|
```
|
|
mcp__semrush__backlink_research(query="<domain>", database="us")
|
|
mcp__semrush__get_report_schema(report_id="...")
|
|
mcp__semrush__execute_report(report_id="...", params={...})
|
|
```
|
|
|
|
**OurSEO (on-page link inventory, supplement only):**
|
|
```
|
|
mcp__ourseo__crawl_website(url="<domain>", max_pages=100)
|
|
# Extract internal/outbound link inventory from crawl output — NOT a backlink graph.
|
|
```
|
|
|
|
### Korean platform mapping
|
|
|
|
Backlinks from Korean platforms (Naver Blog, Cafe, Tistory, Brunch, Korean news) are often underrepresented in both Ahrefs and Semrush. After pulling from the chosen backend, supplement with `WebSearch` for major Korean directories and brand-name queries on Naver to spot-check coverage gaps.
|
|
|
|
Always record the chosen data source in the report **Overview** so future audits can compare like-for-like.
|
|
|
|
## Workflow
|
|
|
|
### 1. Backlink Profile Audit
|
|
1. Fetch Domain Rating via `site-explorer-domain-rating`
|
|
2. Get backlink stats via `site-explorer-backlinks-stats`
|
|
3. Retrieve referring domains via `site-explorer-referring-domains`
|
|
4. Analyze anchor distribution via `site-explorer-anchors`
|
|
5. Detect toxic links (PBN patterns, spam keywords, suspicious TLDs)
|
|
6. Map Korean platform links from referring domains
|
|
7. Report with issues and recommendations
|
|
|
|
### 2. Link Gap Analysis
|
|
1. Fetch target referring domains
|
|
2. Fetch competitor referring domains (parallel)
|
|
3. Compute set difference (competitor - target)
|
|
4. Score opportunities by DR, traffic, category
|
|
5. Categorize sources (news, blog, forum, directory, Korean platform)
|
|
6. Rank by feasibility and impact
|
|
7. Report top opportunities with recommendations
|
|
|
|
### 3. Link Velocity Check
|
|
1. Fetch refdomains-history for last 90 days
|
|
2. Calculate new/lost referring domains per period
|
|
3. Determine velocity trend (growing/stable/declining)
|
|
4. Flag declining velocity as issue
|
|
|
|
### 4. Broken Backlink Recovery
|
|
1. Fetch broken backlinks via `site-explorer-broken-backlinks`
|
|
2. Sort by DR (highest value first)
|
|
3. Recommend 301 redirects or content recreation
|
|
|
|
## Output Format
|
|
|
|
```markdown
|
|
## Link Building Audit: [domain]
|
|
|
|
### Overview
|
|
- Domain Rating: [DR]
|
|
- Referring Domains: [count]
|
|
- Dofollow Ratio: [ratio]
|
|
- Toxic Links: [count] ([risk level])
|
|
|
|
### Anchor Distribution
|
|
| Type | Count | % |
|
|
|------|-------|---|
|
|
| Branded | [n] | [%] |
|
|
| Exact Match | [n] | [%] |
|
|
| Generic | [n] | [%] |
|
|
| Naked URL | [n] | [%] |
|
|
|
|
### Toxic Links (Top 10)
|
|
| Domain | Risk Score | Reason |
|
|
|--------|-----------|--------|
|
|
|
|
### Korean Platform Links
|
|
| Platform | Count |
|
|
|----------|-------|
|
|
|
|
### Link Velocity
|
|
| Period | New | Lost |
|
|
|--------|-----|------|
|
|
|
|
### Recommendations
|
|
1. [Priority actions]
|
|
```
|
|
|
|
## Notion Output (Required)
|
|
|
|
All audit reports MUST be saved to OurDigital SEO Audit Log:
|
|
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
|
- **Properties**: Issue (title), Site (url), Category (Link Building), Priority, Found Date, Audit ID
|
|
- **Language**: Korean with English technical terms
|
|
- **Audit ID Format**: LINK-YYYYMMDD-NNN
|