Off-page backlink profile analysis — referring-domain quality, anchor-text distribution, toxic/spam link detection with disavow criteria, link-reclamation targets, and competitor backlink-gap mapping. Produces a confidence-weighted 0-100 backlink health score that degrades to "insufficient data" rather than faking a number when only free sources are available. Use for link audits, disavow decisions, and link-building opportunity lists.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add trungdo9/ClauKit --skill seo-backlinks --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Seo Backlinks?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/trungdo9-seo-backlinks)More formats (shields.io, HTML) on the badges page.
---
name: seo-backlinks
description: Off-page backlink profile analysis — referring-domain quality, anchor-text distribution, toxic/spam link detection with disavow criteria, link-reclamation targets, and competitor backlink-gap mapping. Produces a confidence-weighted 0-100 backlink health score that degrades to "insufficient data" rather than faking a number when only free sources are available. Use for link audits, disavow decisions, and link-building opportunity lists.
allowed-tools: Read, Write, Glob, Grep, WebSearch, WebFetch
---
# SEO Backlinks — Link Profile & Off-Page Analysis
> A backlink profile is a trust signal, not a vanity metric — 10 relevant, editorial links beat 500 directory links, and a numeric health score built on partial data is more misleading than no score at all.
## When this skill activates
**Implicit:** "check backlinks for X", "who links to my competitor", "is my link profile toxic", "should I disavow these links", "find link building opportunities", "anchor text looks spammy".
**Explicit:** "Use the seo-backlinks skill to [task]."
**Routed from:** [[seo]] orchestrator (off-page pillar), `/mk:seo audit` (backlink section), `/mk:seo` gap/toxic/outreach actions.
## Scope
Covers:
- Backlink profile overview — referring-domain count, follow ratio, domain diversity, trend.
- Anchor-text distribution vs. over-optimization benchmarks.
- Referring-domain quality — TLD mix, geography, authority tier, follow/nofollow split.
- Toxic/spam link detection with disavow criteria.
- Top linked pages, link-reclamation targets (404s that still hold external link equity).
- Competitor backlink-gap analysis (who links to them but not to us).
- New/lost link velocity, where a data source that tracks it over time is available.
- The 0-100 backlink health score and its data-sufficiency gate.
Does NOT cover:
- Technical crawl/index/Core Web Vitals audit → [[seo-technical]] / [[seo-audit]].
- On-page content quality, E-E-A-T scoring → [[seo-content]].
- Competitor *content*/SERP analysis (what ranks and why) → [[seo-competitor-pages]].
- DataForSEO account setup and tool wiring → [[seo-dataforseo]].
- Writing the actual outreach email copy → `copywriter` agent / [[seo-writing]] (this skill produces the *target list*, not the pitch).
## Data source ladder
ClauKit has no bundled backlink-API script harness or bulk crawl-graph download. Use a preference ladder — best available source, graceful fallback, never a hard fail:
| Tier | Source | Confidence | What it gives |
|---|---|---|---|
| 1 | DataForSEO MCP (if configured — see [[seo-dataforseo]], wire via `/ck:use-mcp`) | 1.0 | Referring domains, anchors, spam score, new/lost velocity, page-level backlinks |
| 2 | Moz API or Bing Webmaster Tools (free signup; call the vendor's REST endpoint yourself via `WebFetch` with the user's own key) | 0.85 / 0.70 | Moz: Domain/Page Authority, spam score, anchors, linking domains. Bing: registered-property link data only |
| 3 | `WebSearch` spot-checks (`site:`, quoted-URL, or brand-name searches) | 0.5 | Confirms a *specific* known backlink is still live; not bulk discovery — cannot enumerate a full referring-domain list |
| — | Model knowledge alone | n/a | Never assert a specific backlink, domain count, or spam score from memory. Label anything not backed by tiers 1-3 `[UNVERIFIED]` |
Always state which tier backed each number in the output — never present a tier-2/3 figure as if it were tier-1 precision.
If nothing beyond tier 3 is available, say so up front: "No backlink API is configured. This analysis is a manual spot-check via search, not a full profile crawl — configure DataForSEO or a free Moz/Bing key for referring-domain counts and anchor-text distribution."
## Analysis framework
Produce the sections below that the request calls for; state the source tier for each figure.
### 1. Profile overview
| Metric | Good | Warning | Critical |
|---|---|---|---|
| Referring domains | >100 | 20-100 | <20 |
| Follow ratio | >60% | 40-60% | <40% |
| Domain diversity | no single domain >5% of links | 1 domain >10% | 1 domain >25% |
| Trend | growing or stable | slow decline | rapid decline (>20%/quarter) |
### 2. Anchor-text distribution
| Anchor type | Target range | Over-optimization signal |
|---|---|---|
| Branded (company/domain name) | 30-50% | <15% |
| URL / naked link | 15-25% | — |
| Generic ("click here", "learn more") | 10-20% | — |
| Exact-match keyword | 3-10% | >15% |
| Partial-match keyword | 5-15% | >25% |
| Long-tail / natural phrase | 5-15% | — |
Exact-match anchors above 15% is a review heuristic, not an automatic penalty claim — flag it as "check for unnatural link patterns," not "this site is penalized."
### 3. Referring-domain quality
Check:
- **TLD mix** — `.edu`/`.gov`/`.org` skew signals authority; heavy `.xyz`/`.info` skews low-quality.
- **Geographic mix** — should roughly match the target market; a large majority from unrelated countries is a private-blog-network (PBN) signal.
- **Authority-tier spread** — a healthy profile has links across low/mid/high authority, not only the bottom tier.
- **Follow/nofollow per domain** — domains that only ever nofollow contribute limited direct SEO value (still fine for referral traffic/brand).
### 4. Toxic link detection
**High-risk (flag immediately):**
- Links from known PBN domains.
- A domain sending 100% exact-match anchor text.
- Links from penalized or deindexed domains.
- Mass directory submissions (50+ directory links).
- Link farms — pages with 10K+ outbound links.
- Sitewide paid-link patterns (footer/sidebar links present across every page of a domain).
**Medium-risk (review manually, don't auto-disavow):**
- Links from an unrelated niche.
- Reciprocal link patterns (A links to B, B links back to A).
- Links from thin-content pages (<100 words).
- One domain sending 50+ backlinks.
Only recommend disavowing links that clear the high-risk bar or that a manual review confirms; a disavow file is a blunt instrument and wrongly disavowing a legitimate link costs ranking equity.
### 5. Top pages by backlinks / link reclamation
Identify:
- Pages that attract the most external links ("link magnets" — study what made them link-worthy).
- Pages with strong external links but weak internal linking (an internal-linking opportunity).
- **404s that still hold external link equity** — redirect these to reclaim the equity instead of losing it.
### 6. Competitor backlink-gap analysis
For target vs. one or more competitors:
- Domains linking to the competitor but **not** to the target → the outreach/link-building opportunity list.
- Domains linking to **both** → validate the relationship still holds.
- Domains linking **only** to the target → a competitive advantage worth protecting.
- Rank opportunities by the linking domain's authority tier, not raw count.
### 7. New and lost backlinks
Only tier-1 sources track link velocity over time; tier-2/3 sources are point-in-time snapshots. If this is requested without a tier-1 source, say so explicitly rather than fabricating a trend line.
**Red flags when velocity data exists:**
- A sudden spike in new links (possible negative-SEO attack).
- A sudden loss of many links at once (penalty or site-wide content removal upstream).
- Declining acquisition velocity over 3+ months (content has stopped earning links organically).
## Backlink health score
A 0-100 score, confidence-weighted by source tier:
| Factor | Weight | Best source | Confidence if tier 1 / tier 2 |
|---|---|---|---|
| Referring-domain count | 20% | DataForSEO > Moz | 1.0 / 0.85 |
| Domain quality distribution | 20% | DataForSEO > Moz authority spread | 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 detail | 1.0 / 0.70 |
| Geographic relevance | 10% | DataForSEO > Bing country data | 1.0 / 0.70 |
**Data-sufficiency gate:** count how many of the 7 factors have at least one real data source behind them.
- **4+ factors scored** → produce a numeric 0-100 score, redistributing the missing weights proportionally across what's scored.
- **Fewer than 4 factors** → do **not** produce a numeric score. Show `Backlink Health Score: INSUFFICIENT DATA (X/7 factors scored)`, list the factors that ARE scored with their source and confidence, and recommend configuring a free Moz or Bing key.
A numeric score built from fewer than 4 factors reads as a real health grade when it's actually mostly absence of evidence — that's worse than admitting the gap.
## Pre-delivery review (do before showing the report)
- [ ] Every metric in the report carries a source-tier label (e.g., "Moz (0.85)", "spot-check (0.5)").
- [ ] Every "not found" result distinguishes "not checked" from "checked, below threshold" from "source errored" — never collapse these into a bare negative.
- [ ] Reciprocal-link claims are checked both directions (A→B and B→A) before being flagged.
- [ ] The health score is either a real 4+/7 number or explicitly `INSUFFICIENT DATA` — never a number implied to be precise when it isn't.
- [ ] No disavow recommendation rests on a medium-risk-only signal without saying so.
- [ ] No specific backlink, spam score, or domain count is asserted from model knowledge alone — mark it `[UNVERIFIED]` per the truth-only rule.
## Key concepts
- **Link equity ≠ link count.** A handful of topically relevant, editorially earned links outweighs hundreds of low-authority or directory links; the quality distribution matters more than the total.
- **Confidence-weighted scoring.** Mixing sources of different reliability without labeling confidence turns an estimate into a false claim — always carry the tier/confidence alongside the number.
- **Disavow is a blunt, risky tool.** Reserved for links clearing the high-risk bar or confirmed by manual review; over-disavowing legitimate links destroys ranking value the site already earned.
- **Link reclamation.** 404s and broken pages that still hold external links are near-free equity recovery via a redirect — usually higher ROI than new outreach.
## Output
- `plans/marketing/<campaign>/seo-backlinks.md` — the profile/gap/toxic-link report, source-tier labeled, per §6 of `.claude/workflows/marketing-rules.md` (audit reports with falsifiable findings).
- Inline recommendations and a prioritized opportunity/disavow list in the conversation.
## Cross-references
- `plans/marketing-context.md` — required hub (target market/geography informs the geographic-relevance check)
- [[seo]] — orchestrator; this skill covers its off-page/backlink pillar
- [[seo-audit]] — full-site audit that includes this as one section
- [[seo-technical]] — crawl/index/CWV side of technical SEO (not link-based)
- [[seo-competitor-pages]] — competitor *content* analysis, complements the backlink-gap view here
- [[seo-dataforseo]] — DataForSEO account/tool setup for tier-1 data
- `.claude/workflows/marketing-rules.md` — §2 (no hallucinated metrics — applies directly to spam scores/domain counts), §6 (output conventions)
## Provenance
Imported from `AgriciDaniel/claude-seo` (`skills/seo-backlinks/SKILL.md`, v2.2.4) and adapted for KitForge: the analysis framework, scoring tables, and toxic-link criteria are preserved; the source's `claude-seo run <script>.py` CLI harness and Common Crawl bulk-graph download (no local script/download infra in ClauKit) were replaced with a WebSearch/WebFetch + optional-MCP preference ladder in the style of [[seo-writing]]'s `references/research-tools.md`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!