seo-backlinks
Backlink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap,
By agricidaniel · 5,384 installs
npx skills add agricidaniel/claude-seo --skill seo-backlinks
Source repository · Upstream listing
Backlink Profile Analysis
Source Detection
Before analysis, detect available data sources:
1. DataForSEO MCP (premium): Check if dataforseo backlinks summary tool is available
2. Moz API (free signup): "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run backlinks auth.py check moz json
3. Bing Webmaster (free signup): "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run backlinks auth.py check bing json
4. Keywords Everywhere (free signup, single metric): "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run backlinks auth.py check keywordseverywhere json
5. Common Crawl (always available): Domain level graph with PageRank
6. Verification Crawler (always available): Checks if known backlinks still exist
Run "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run backlinks auth.py check json to detect all sources at once.
If no sources are configured beyond the always available tier:
Still produce a report using Common Crawl domain metrics
Suggest: "Run /seo backlinks setup to add free Moz and Bing API keys for richer data"
Quick Reference
Command Purpose
/seo backlinks <url Full backlink profile analysis (uses all available sources)
/seo backlinks gap <url1 <url2 Competitor backlink gap analysis
/seo backlinks toxic <url Toxic link detection and disavow recommendations
/seo backlinks new <url New and lost backlinks (DataForSEO only)
/seo backlinks verify <url links <file Verify known backlinks still exist
/seo backlinks setup Show setup instructions for free backlink APIs
Analysis Framework
Produce all 7 sections below. Each section lists data sources in preference order.
1. Profile Overview
DataForSEO: dataforseo backlinks summary → total backlinks, referring domains, domain rank, follow ratio, trend.
Moz API: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py metrics <url json → Domain Authority, Page Authority, Spam Score, linking root domains, external links.
Keywords Everywhere: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run keywordseverywhere api.py rank <domain json → 0 10 domain rank only (no link counts). Use as a fallback when Moz isn't configured; do not use in place of Moz when both are available.
Common Crawl: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run commoncrawl graph.py <domain json → PageRank, harmonic centrality, and low confidence rank/presence data.
Scoring:
Metric Good Warning Critical
Referring domains 100 20 100 <20
Follow ratio 60% 40 60% <40%
Domain diversity No single domain 5% 1 domain 10% 1 domain 25%
Trend Growing or stable Slow decline Rapid decline ( 20%/quarter)
2. Anchor Text Distribution
DataForSEO: dataforseo backlinks anchors
Moz API: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py anchors <url json
Bing Webmaster: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run bing webmaster.py links <url json (extract anchor text from link details)
Healthy distribution benchmarks:
Anchor Type Target Range Over Optimization Signal
Branded (company/domain name) 30 50% <15%
URL/naked link 15 25% N/A
Generic ("click here", "learn more") 10 20% N/A
Exact match keyword 3 10% 15%
Partial match keyword 5 15% 25%
Long tail / natural 5 15% N/A
Flag if exact match anchors exceed 15% as a review heuristic; it may indicate unnatural or link spam patterns.
3. Referring Domain Quality
DataForSEO: dataforseo backlinks referring domains
Moz API: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py domains <url json → domains with DA scores
Common Crawl: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run commoncrawl graph.py <domain json → domain level rank/presence data, no verified referring domain counts
Analyze:
TLD distribution : .edu, .gov, .org = high authority. Excessive .xyz, .info = low quality
Country distribution : Match target market. 80%+ from irrelevant countries = PBN signal
Domain rank distribution : Healthy profiles have links from all authority tiers
Follow/nofollow per domain : Sites that only nofollow = limited SEO value
4. Toxic Link Detection
DataForSEO: dataforseo backlinks bulk spam score + toxic patterns from reference
Moz API: Raw vendor spam score from "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py metrics <url json (source label the value; apply thresholds only if verified against current Moz docs)
Verification Crawler: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run verify backlinks.py target <url links <file json (verify suspicious links still exist)
High risk indicators (flag immediately):
Links from known PBN (Private Blog Network) domains
Unnatural anchor text patterns (100% exact match from a domain)
Links from penalized or deindexed domains
Mass directory submissions (50+ directory links)
Link farms (sites with 10K+ outbound links per page)
Paid link patterns (footer/sidebar links across all pages of a domain)
Medium risk indicators (review manually):
Links from unrelated niches
Reciprocal link patterns
Links from thin content pages (<100 words)
Excessive links from a single domain ( 50 backlinks from 1 domain)
Load ../seo/references/backlink quality.md for the full 30 toxic patterns and disavow criteria.
5. Top Pages by Backlinks
DataForSEO: dataforseo backlinks backlinks with target type "page"
Moz API: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py pages <domain json
Find:
Which pages attract the most backlinks
Pages with high authority links (link magnets)
Pages with zero backlinks (internal linking opportunities)
404 pages with backlinks (redirect opportunities to reclaim link equity)
6. Competitor Gap Analysis
DataForSEO: dataforseo backlinks referring domains for both domains, then compare
Bing Webmaster: "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run bing webmaster.py compare <url1 <url2 json
only when both properties are registered and accessible to the same Bing API
account. For arbitrary competitors, use DataForSEO, Moz, or Common Crawl.
Moz API: Compare DA/PA between domains via "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run moz api.py metrics <url json for each
Output:
Domains linking to competitor but NOT to target = link building opportunities
Domains linking to both = validate existing relationships
Domains linking only to target = competitive advantage
Top 20 link building opportunities with domain authority
7. New and Lost Backlinks
DataForSEO only: dataforseo backlinks backlinks with date filters for 30/60/90 day changes
Verification Crawler: For known links, verify current status with "${CLAUDE PLUGIN ROOT}/scripts/claude seo" run verify backlinks.py target <url links <file json
Note: Free sources cannot track new/lost links over time. If this section is requested without DataForSEO, inform the user: "Link velocity tracking requires the DataForSEO extension. Free sources provide point in time snapshots only."
Red flags:
Sudden spike in new links (possible negative SEO attack)
Sudden loss of many links (site penalty or content removal)
Declining velocity over 3+ months (content not attracting links)
Backlink Health Score
Calculate a 0 100 score. When mixing sources, apply confidence weighting:
Factor Weight Sources (preference order) Confidence
Referring domain count 20% DataForSEO Moz 1.0 / 0.85
Domain quality distribution 20% DataForSEO Moz DA distribution 1.0 / 0.85
Anchor text naturalness 15% DataForSEO Moz Bing anchors 1.0 / 0.85 / 0.70
Toxic link ratio 20% DataForSEO Moz spam score 1.0 / 0.85
Link velocity trend 10% DataForSEO only 1.0
Follow/nofollow ratio 5% DataForSEO Bing details 1.0 / 0.70
Geographic relevance 10% DataForSEO Bing country 1.0 / 0.70
Data sufficiency gate: Count how many of the 7 factors have at least one data source available.
4+ factors with data: Produce a numeric 0 100 score (redistribute missing weights proportionally)
Fewer than 4 factors: Do NOT produce a numeric score. Instead display:
Show individual factor scores that ARE available with their source and confidence.
Recommend: "Configure Moz API (free) for a scoreable profile. Run /seo backlinks setup "
MUST NOT: score what you did not measure
When Common Crawl is the only available source, you MUST NOT produce a numeric
score of any kind not a health score, not a per factor score, not an
"approximate" or "estimated" figure. Common Crawl supplies rank and presence
signals only. Report low confidence rank/presence data and the literal string
Not Assessed in place of every number.
A finding written with source: not assessed MUST NOT carry a numeric score.
A numeric score with fewer than 4 data sources is misleading : it implies poor
health when the reality is that we simply lack data.
Validation gate (required, not optional)
This rule has been stated in this skill before and was violated anyway, so it is
now checkable. Before writing any backlink output, run the validator:
Pass the sources you actually collected ( cc data , moz data , bing data ,
dataforseo data , scoring factors , and your findings list). The
source score consistency check fails the report with status: FAIL when:
a numeric score is present but no scoreable source (Moz, Bing, or DataForSEO)
supplied data i.e. the Common Crawl only case, and
any finding marked source: not assessed carries a numeric score , value ,
or health score .
If the validator returns status: FAIL , do not present the report. Fix the
findings replace the offending numbers with Not Assessed and re run until
it passes.
Output Format
Backlink Health Score: XX/100 (or INSUFFICIENT DATA)
Section Status Score Data Source
Profile Overview pass/warn/fail XX/100 Moz (0.85)
Anchor Distribution pass/warn/fail XX/100 Moz (0.85)
Referring Domain Quality pass/warn/fail XX/100 CC (0.50)
Toxic Links pass/warn/fail XX/100 Moz Spam (0.85)
Top Pages info N/A Moz (0.85)
Link Velocity pass/warn/fail XX/100 DataForSEO only
Critical Issues (fix immediately)
High Priority (fix within 1 month)
Medium Priority (ongoing improvement)
Link Building Opportunities (top 10)
Error Handling
Error Cause Resolution
No sources configured No API keys, no DataForSEO Run /seo backlinks setup
Moz rate limit Free tier: 1 req/10s Wait 10 seconds, retry. Built into script.
Bing site not verified Site not verified in Bing Verify at https://www.bing.com/webmasters
CC download timeout Large graph file, slow connection Use timeout 180 flag
DataForSEO unavailable Extension not installed Run ./extensions/dataforseo/install.sh
No backlink data returned Domain too new or very small Note: small sites may have <10 backlinks
Fallback cascade:
1. DataForSEO available? → Use as primary (confidence: 1.0)
2. Moz configured? → Use for DA/PA/spam/anchors (confidence: 0.85)
3. Bing configured? → Use for registered property links and comparison only
when both properties are accessible (confidence: 0.70)
4. Moz not configured but Keywords Everywhere is? → Use for a Profile Overview
rank only fallback (confidence: 0.60; single metric, no link counts/anchors)
5. Always: Common Crawl for domain level metrics (confidence: 0.50)
6. Always: Verification crawler for known link checks (confidence: 0.95)
7. Nothing works? → "Run /seo backlinks setup to configure free APIs"
Pre Delivery Review (MANDATORY)
Before presenting any backlink analysis to the user, run this checklist internally.
Do NOT skip this step. Fix any issues found before showing