seoskills.sh
Catalog/seoskills/internal

Inbound Anchor Risk Analyzer

Pulls the distribution of inbound anchor text across all referring domains and classifies it into branded, exact-match,…

0 installs

Use this skill

$ npx skills add seoskills.sh/inbound-anchor-risk-analyzer
Repository
seoskills/internal
GitHub stars
License

SKILL.md

---
name: Inbound Anchor Risk Analyzer
description: Pulls the distribution of inbound anchor text across all referring domains and classifies it into branded, exact-match, partial, generic, and URL anchors, flagging unnatural exact-match ratios and spikes that signal over-optimization risk. Use when the user wants an anchor-text profile audit, penalty-risk assessment, or a natural anchor-ratio target.
category: link-building
---

# Inbound Anchor Risk Analyzer

AGENT ROLE: Autonomous anchor-profile agent. Aggregate the inbound anchor distribution, classify it, assess manipulation risk, and emit the JSON in `references/output.schema.json`.

## OBJECTIVE
Report the inbound anchor-text distribution for a domain (and optionally per target page), classify anchors, and flag unnatural exact-match/commercial concentration or velocity spikes that indicate over-optimization or link-scheme risk — with a recommended natural target mix.

## INPUTS
- `target` (REQUIRED): the domain (or a specific URL) to analyze.
- `brand_terms` (REQUIRED string[]): to classify branded anchors correctly.
- `money_keywords` (OPTIONAL string[]): commercial terms to detect exact/partial commercial anchors.
- `exact_ceiling` (OPTIONAL, default 0.2): exact-match commercial ratio above which the profile is risky.

## AUTHENTICATION (Backlink API)
1. REQUIRE `DATAFORSEO_LOGIN`+`DATAFORSEO_PASSWORD` or `BACKLINK_API_KEY`.
   - IF absent THEN STOP `error.code="AUTH_MISSING_BACKLINK_PROVIDER"`.
2. Endpoint (DataForSEO): `POST https://api.dataforseo.com/v3/backlinks/anchors/live` with `{target, limit, order_by:["backlinks,desc"]}` → anchors with referring-domain counts.

## EXPECTED TOOL CALLS
- Run `scripts/inbound_anchors.py --target example.com --brand "Acme,Acme Inc"`.
- Fetch the anchors report (anchor text + referring-domain count + first-seen distribution when available).

## PROCEDURE (deterministic)
STEP 1 — FETCH anchors weighted by REFERRING DOMAINS (not raw backlinks — sitewide links skew raw counts).
STEP 2 — CLASSIFY each anchor: `branded`, `branded_plus_keyword`, `exact_match_commercial`, `partial_commercial`, `generic` ("click here", "website", "here"), `naked_url`, `empty_or_image`, `other`.
STEP 3 — DISTRIBUTION: ratios by referring-domain weight; compute `exact_commercial_ratio`, `branded_ratio`, `generic_ratio`.
STEP 4 — RISK FLAGS:
  - `OVER_OPTIMIZED_COMMERCIAL` IF `exact_commercial_ratio > exact_ceiling`.
  - `LOW_BRANDED` IF `branded_ratio < 0.3` (natural profiles are branded-heavy).
  - `VELOCITY_SPIKE` IF a large share of exact-commercial anchors share a tight first-seen window (link-scheme signal), when first-seen data is present.
STEP 5 — TARGET MIX: recommend a natural distribution (e.g., branded 40–60%, generic/URL 20–30%, partial ≤20%, exact ≤5–10%). EMIT distribution, flags, `risk_level`, and the recommended mix.

## RATE LIMITS & ERROR HANDLING
- Provider `429`/`402` → backoff `2^attempt` (max 5) then STOP `RATE_LIMITED`/`PROVIDER_PAYMENT_REQUIRED`.
- IF the anchors report is empty THEN `status="no_backlinks"`, no error.

## MISSING / INSUFFICIENT DATA
- Weight by referring domains; IF only backlink counts are available THEN note `weighting="backlinks"` and caveat that sitewide links may inflate ratios.
- Velocity analysis requires first-seen data; IF absent THEN skip `VELOCITY_SPIKE` and note `velocity_available=false`.
- Risk is advisory — mark `advisory=true`; do not claim a penalty is certain.

## OUTPUT
One JSON object per `references/output.schema.json`. No prose.

## FILES
- `scripts/inbound_anchors.py` — anchors fetch, classification, ratio + risk analysis.
- `references/output.schema.json` — output contract.

Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.

Embed a badge

seoskills.sh install badge

More in Link Building

Link Buildingaaron-he-zhu/seo-geo-claude-skills

backlink-analyzer

No description available.

26.1K installs
Link Buildingcalm-north/seojuice-skills

build-links

Design a link building campaign with prospect identification, asset creation, and outreach strategy. Use when the user asks about link building, backlinks, domain authority, how to get backlinks, outreach campaigns, digital PR, guest posting, or link acquisition. For internal linking, see fix-linking.

6.5K installs
Link Buildingagricidaniel/claude-seo

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.

5.5K installs
Link Buildingcalm-north/seojuice-skills

fix-linking

Design or audit internal link structure for a website. Use when the user asks about internal linking, link architecture, orphan pages, PageRank flow, anchor text, site structure, silo architecture, or why pages aren't ranking despite good content. For external link building, see build-links.

2K installs
Link Buildingkostja94/marketing-skills

link-building

When the user wants to build backlinks, acquire links, or improve off-page SEO. Also use when the user mentions "link building," "backlinks," "off-page SEO," "link acquisition," "outreach," "guest posting," "broken link building," "link outreach," "acquire backlinks," "how to build backlinks," or "link building strategy." For profile audit, use backlink-analysis.

1K installs
Link Buildingkostja94/marketing-skills

backlink-analysis

When the user wants to analyze backlinks, audit link profile, or identify link issues. Also use when the user mentions "backlink analysis," "backlink audit," "referring domains," "toxic links," "link profile," or "disavow file." For acquisition, use link-building.

993 installs