Internal Linking
Linking is driven by the client's Internal Linking Webmap doc, which is loaded before drafting and appended to after every approved piece. Two jobs: pick good destinations during the Optimized Draft, then log the new edges after the Final Draft.
Source of link destinations (priority order)
- Internal Linking Webmap (primary) — the maintained link graph. Use it to see what pages exist, what's already linked, what's over-linked, and which pages are orphaned/under-linked and worth pointing to.
- Screaming Frog CSV (if uploaded, Flood's standard) — refresh/extend the candidate set. Keep only 200-status,
Indexablerows; useTitle 1/H1-1as the topic signal; drop noindex, redirects, 4xx/5xx, parameter and non-content URLs. - Live crawl (
crawl_site) — if no Webmap or CSV yet, build the candidateURL → topictable from page H1s/titles.
If none yields usable URLs, draft without internal links and flag it — never invent client URLs.
Placement rules (Optimized Draft)
- Brief's named targets first, with natural anchor text where they fit best.
- Relevance over quantity — link only where the destination genuinely helps the reader.
- Descriptive anchors that name the destination topic ("air-source heat pump installation"), never "click here" or a bare URL.
- Density ~1 internal link per 200–300 words, scaled to how many genuinely relevant targets exist.
- No repeated identical anchors to different pages; don't stuff the primary keyword into every anchor.
- Prefer deep pages (relevant service/content pages) over the homepage.
- Use the Webmap to balance the graph — favour under-linked/orphan pages that fit the topic, and avoid piling more links onto already heavily-linked pages.
Link report (per draft, in delivery)
List every internal link inserted as anchor text → destination URL so the requester can confirm each resolves and points where intended.
Webmap update (after Final Draft approved)
Append to the Webmap Sheet via socrates_append_webmap_rows:
- One edge row per link placed: source = this piece's URL/slug, destination, anchor text, added by = this article, date.
- Any inbound-link opportunities this piece creates (existing pages that should now link to it) and refreshed orphan/under-linked notes go in the Webmap Notes tab.
The Sheet append is atomic — no rewrite, no duplicate doc. If Socrates is unreachable, emit the new rows in an update packet for paste-back (output-format.md).