Internal links pillar
Surface link opportunities between your own pages — pages that semantically belong linked but currently aren't. The Links pillar runs cosine similarity over page embeddings and ranks high-confidence pairs.
How it works
- After the first crawl finishes, every fetched page gets an embedding (computed via Jina embeddings)
- The link-discovery service compares each page's embedding against every other page on the same site
- High-similarity pairs are stored as
LinkOpportunityrows with a similarity score, suggested anchor, anchor context, and direction (source → target) - Each opportunity is checked against the source page's existing HTML — if the anchor is already present, the opportunity is marked as already-linked
The links queue
Site nav → Links. Each row is a candidate pair: source page, target page, suggested anchor, similarity score. Sort by score (default) or by source page.
Acting on an opportunity
- Mark applied — you've added the link to the source page; opportunity is closed and stops appearing in the queue. Counted in Internal links added on Reports → Pulse.
- Dismiss — the opportunity isn't relevant; closes it without counting as applied
Opportunities don't auto-close. Adding the anchor on your live site doesn't close the queue entry — you mark it applied here when you ship the change.
Discovery cooldown
Link discovery is rate-limited per site to keep similarity computation costs bounded. The Discover links button shows when the next run becomes available. Discovery is automatic at end-of-crawl; manual discovery is rarely needed unless you've edited many pages outside a crawl cycle.
What links won't surface
- Already-existing links between the two pages
- Pages excluded from analysis
- Pages without a content hash (failed fetches)
- Cross-site link opportunities (Links is per-site only — there's no cross-domain semantic linking)
The suggested anchor reflects how similar pages typically reference the target's topic. Adapt the anchor to the source page's voice and surrounding context — don't paste it verbatim if it reads awkwardly.