# /seo-backlinks

> Backed by `.claude/context/ai-seo/playbook/07-backlinks.md` (+ Disavow prompt in `prompts/`).


# /seo-backlinks — Backlinks & Off-Page Authority

Backed by `.claude/context/ai-seo/playbook/07-backlinks.md` (+ Disavow prompt in `prompts/`).

## When to trigger
- "Find link opportunities for ACME Agency", "build a backlink plan", "anchor text plan", "disavow toxic links", "/seo-backlinks".
- After the site has its Core 30 pages live (links point at existing content) or when `/local-seo-audit` flags low authority.

## What it produces
A Google Doc "Backlinks / Authority — <Client>" with: a prioritized local link-opportunity list (with how to acquire each), an anchor-text distribution plan, internal/outbound link guidance, link-velocity rules, and (if toxic links are suspected) a disavow analysis + the disavow file approach.

## Step-by-Step

### 1. Parse
First positional = client/business. Flags: `--url`, `--location`, `--niche`, `--dry-run`.

### 2. Gather context
```bash
node ACME Agency/scripts/seo_run.mjs --skill backlinks --mode gather --client "<name>" --url "<url>" --location "<city>"
```
Read the CONTEXT (business + location → local link landscape).

### 3. Read the method
Read `.claude/context/ai-seo/playbook/07-backlinks.md` fully. Lock in: how authority is passed, the local link sources to prioritize, the **30-20-30-5-15 anchor ratio** (30% branded / 20% generic / 30% partial-match / 5% exact-match used only after 20-40+ total links / 15% natural variations), the "every URL needs ≥1 link" rule, link-velocity caution, and the disavow process. Load the verbatim Disavow prompt via `prompts/`.

### 4. Build the plan (markdown)
- **Link opportunities** — table: `| Opportunity | Type | How to acquire | Priority |`. Prioritize local: chamber of commerce, local sponsorships, local directories/citations, supplier/partner pages, local press. Use `WebSearch` to find real, named local opportunities for this niche+city where possible (don't invent specific URLs you didn't find — label generic categories as such).
- **Anchor-text plan** — apply the 30-20-30-5-15 distribution; give example anchors in each bucket for this business.
- **Internal + outbound links** — internal linking pattern + 1-2 authority outbound targets per money page.
- **Disavow** — if the user provides a backlink export (or you have reason to suspect spam), run the Disavow prompt and produce the disavow analysis + `disavow.txt` format; otherwise note it as an optional follow-up needing a Search Console/Ahrefs export.
- **Velocity & cautions** — natural pace, what to avoid (PBNs as ranking links, over-optimized exact-match).
Write to `ACME Agency/clients/<Client>/SEO/backlinks.md` (or `/tmp`).

### 5. Save + report
```bash
node ACME Agency/scripts/seo_run.mjs --skill backlinks --mode save --client "<name>" \
  --in "<backlinks.md>" --title "Backlinks / Authority — <Client>" \
  --slack "*Backlinks / Authority — <Client>*
<N> local link opportunities, anchor plan ready. Disavow: <status>."
```
Add `--dry-run` to skip Drive/Slack. Output the Doc link.

## Guardrails
- **Plan only** — no automated outreach or link placement; the team runs outreach.
- **Don't fabricate specific link URLs** — only list named opportunities you actually found; otherwise describe the category.
- **Anchor discipline:** exact-match only sparingly and only after enough total links exist, per the ratio.
