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