Skip to content
SEO
Skill

/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,

BOOST
From plugin
codex-seo
81027 skills2 agents1 hook
Install
$ npx -y skills add agricidaniel/codex-seo --skill seo-backlinks --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/seo-backlinks

Context preview

The summary Claude sees to decide when to auto-load this skill.

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,

SKILL.md

seo-backlinks.SKILL.md
name: seo-backlinks
description: "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, link building, disavow, or backlink audit."
user-invokable: true
argument-hint: "<url>"
license: MIT
compatibility: "Free: Common Crawl + verify always available. Optional: Moz API, Bing Webmaster (free signup). Premium: DataForSEO extension."
metadata:
  author: AgriciDaniel
  version: "1.9.6"
  category: seo

Backlink Profile Analysis

Shared Data Cache

**Step 0 -- Check shared data cache:**

Before gathering, check `.seo-cache/` for reusable context from related SEO skills. Reference: `../seo/references/shared-data-cache.md` for schemas and dependency map.

Check these cache files when present:

  • `.seo-cache/site-meta.json` for domain, business type, industry, and crawl context
  • `.seo-cache/audit-scores.json` for prior full-audit priorities
  • `.seo-cache/pages/{url-slug}/page-analysis.json` for page-level context when a URL is provided
  • If found: parse and use clearly valid fields (note "Using cached [X] from [date]")
  • If missing, corrupt, or irrelevant: continue with fresh evidence
  • If the user says "refresh" or "re-run": ignore cache reads and overwrite on write

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): `python scripts/backlinks_auth.py --check moz --json` 3. **Bing Webmaster** (free signup): `python scripts/backlinks_auth.py --check bing --json` 4. **Common Crawl** (always available): Domain-level graph with PageRank 5. **Verification Crawler** (always available): Checks if known backlinks still exist

Run `python scripts/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:** `python scripts/moz_api.py metrics <url> --json` → Domain Authority, Page Authority, Spam Score, linking root domains, external links.

**Common Crawl:** `python scripts/commoncrawl_graph.py <domain> --json` → in-degree (referring domain count), PageRank, harmonic centrality.

**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:** `python scripts/moz_api.py anchors <url> --json`

**Bing Webmaster:** `python scripts/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% -- this is a Google Penguin risk signal.

3. Referring Domain Quality

**DataForSEO:** `dataforseo_backlinks_referring_domains`

**Moz API:** `python scripts/moz_api.py domains <url> --json` → domains with DA scores

**Common Crawl:** `python scripts/commoncrawl_graph.py <domain> --json` → top referring domains (domain-level, no authority scores)

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:** Spam Score from `python scripts/moz_api.py metrics <url> --json` (1-17% scale, >11% = high risk)

**Verification Crawler:** `python scripts/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
Read more
Ships withcodex-seo

Codex-first SEO analysis suite with 1 orchestrator skill, 26 specialist workflows, 24 TOML agent profiles, MCP/API extensions, deterministic headless runners, and premium audit report generation.

Get the whole plugin

Other skills on codex-seo.