Seo Backlinks logo

Seo Backlinks

CommunityPopular
AgriciDaniel
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, link building, disavow, or backlink audit.

Overview

PublisherAgriciDaniel
Repositoryclaude-seo
Skill nameseo-backlinks
Stars
17.1K
Forks
2.5K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by AgriciDaniel on GitHub. Read the source before you install it.

Installation

Install the Seo Backlinks AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git /tmp/claude-seo
mkdir -p .claude/skills
cp -r /tmp/claude-seo/skills/seo-backlinks .claude/skills/seo-backlinks
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Seo Backlinks in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Seo Backlinks on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Seo Backlinks is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

CommandPurpose
/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 setupShow 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:

MetricGoodWarningCritical
Referring domains>10020-100<20
Follow ratio>60%40-60%<40%
Domain diversityNo single domain >5%1 domain >10%1 domain >25%
TrendGrowing or stableSlow declineRapid 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 TypeTarget RangeOver-Optimization Signal
Branded (company/domain name)30-50%<15%
URL/naked link15-25%N/A
Generic ("click here", "learn more")10-20%N/A
Exact match keyword3-10%>15%
Partial match keyword5-15%>25%
Long-tail / natural5-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:

FactorWeightSources (preference order)Confidence
Referring domain count20%DataForSEO > Moz1.0 / 0.85
Domain quality distribution20%DataForSEO > Moz DA distribution1.0 / 0.85
Anchor text naturalness15%DataForSEO > Moz > Bing anchors1.0 / 0.85 / 0.70
Toxic link ratio20%DataForSEO > Moz spam score1.0 / 0.85
Link velocity trend10%DataForSEO only1.0
Follow/nofollow ratio5%DataForSEO > Bing details1.0 / 0.70
Geographic relevance10%DataForSEO > Bing country1.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:
    Backlink Health Score: INSUFFICIENT DATA (X/7 factors scored)
    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:

bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run validate_backlink_report.py --report <report>.json --json

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)

SectionStatusScoreData Source
Profile Overviewpass/warn/failXX/100Moz (0.85)
Anchor Distributionpass/warn/failXX/100Moz (0.85)
Referring Domain Qualitypass/warn/failXX/100CC (0.50)
Toxic Linkspass/warn/failXX/100Moz Spam (0.85)
Top PagesinfoN/AMoz (0.85)
Link Velocitypass/warn/failXX/100DataForSEO only

Critical Issues (fix immediately)

High Priority (fix within 1 month)

Medium Priority (ongoing improvement)

Link Building Opportunities (top 10)

Error Handling

ErrorCauseResolution
No sources configuredNo API keys, no DataForSEORun /seo backlinks setup
Moz rate limitFree tier: 1 req/10sWait 10 seconds, retry. Built into script.
Bing site not verifiedSite not verified in BingVerify at https://www.bing.com/webmasters
CC download timeoutLarge graph file, slow connectionUse --timeout 180 flag
DataForSEO unavailableExtension not installedRun ./extensions/dataforseo/install.sh
No backlink data returnedDomain too new or very smallNote: 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 the report.

Fact-Check Every Claim

  • Schema claims: Did parse_html return @type for each block? If any @type is missing, re-check, it may use @graph wrapper (valid JSON-LD, not malformed).
  • "link_removed" findings: Is the page JS-rendered? If unverifiable_js, say so, never report a JS-rendered page as "link removed" (that's a false negative).
  • H1 findings: Are any H1s in the h1_suspicious list? If so, note they are likely counters/stats, not semantic headings.
  • Reciprocal links: If site A links to site B AND B links back to A, flag it as a reciprocal link pattern. Check outbound links against verified inbound sources.
  • Health score: Are 4+ of 7 factors scored? If not, report INSUFFICIENT DATA, never show a misleading numeric score.

Verify Data Source Labels

  • Every metric in the report has a source label (e.g., "Parsed (0.95)", "CC (0.50)")
  • Every "not found" result distinguishes between "not crawled" vs "below threshold" vs "error"
  • Social media pages flagged as unverifiable_js (not link_removed)

Cross-Check Consistency

  • Platform detection matches actual signals (check for wp-content, shopify CDN, etc.)
  • Referring domain count in summary matches the actual verified links list
  • No claim is presented without a data source backing it

If ANY check fails, fix the finding before presenting. Never present inferred data as fact.

Post-Analysis

After completing any backlink analysis command, always offer: "Generate a professional PDF report? Use /seo google report"

Reference Documentation

Load on demand (do NOT load at startup):

  • skills/seo/references/backlink-quality.md -- Detailed toxic link patterns and scoring methodology (shared reference, load when analyzing toxic links or spam scores)
  • skills/seo/references/free-backlink-sources.md -- Source comparison, confidence weighting, setup guides (shared reference, load when configuring free backlink APIs)

Frequently asked questions

What does the Seo Backlinks AI skill do?

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.

Why use Seo Backlinks on TypingMind?

Because you install it once and use it with any model. Seo Backlinks is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Seo Backlinks in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/AgriciDaniel/claude-seo/tree/main/skills/seo-backlinks. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Seo Backlinks?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Seo Backlinks?

As many as you like. As long as a model supports skills, you can use Seo Backlinks with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Seo Backlinks AI skill free?

Yes. It is published on GitHub by AgriciDaniel under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇