# No page is an orphan

> No page is an orphan. Maps the link graph, reports what nothing points at.

Loop: `internal-links`
Category: Content
Autonomy: auto
License: MIT
Source: https://vibemarketers.ai/loops/internal-links

Builds the internal link graph from the built output, excluding navigation, and reports pages nothing links to and pages that link nowhere.

## What you need

- none required

## Goal prompt

Give this to your agent. Replace anything in <angle brackets> with your own.

```
Build the internal link graph for <site> from the built output. Exclude
links inside navigation, header and footer, because those appear on every
page and hide the real structure. Report every page with no inbound
editorial link and every page with no outbound editorial link. Write the
report with a date.
```

## Verifier prompt

Run this as a second, separate agent. It grades the first one's work and must be
able to fail. A checker that never fails is not a checker.

```
Open the report. FAIL if navigation links were counted as editorial, if a
page with a real inbound link is reported as an orphan, if any built page is
missing from the graph, or if the report has no date. Otherwise PASS.
```

## Stopping condition

Every built page appears in the graph with an inbound and outbound count, and the verifier marks PASS.

## How to run it

1. Save this file into your project, for example `.claude/loops/internal-links.md`.
2. Open your agent in that project (Claude Code, Cursor, or Codex).
3. Paste the goal prompt, with your own values in place of the angle brackets.
4. When it stops, start a fresh session and paste the verifier prompt.
5. Read the verdict before you accept any change.

## What happened when we ran it

Last run 2026-09-25 on vibemarketers.ai.

- Baseline: 32 pages with no link graph of any kind. Whether anything linked to a given page was unknown, and the sitemap listed pages that no reader could reach by clicking.
- Result: 32 pages and 105 editorial links. 14 pages had no inbound editorial link: all 13 term pages and the questions page. A glossary index and two homepage links were added, and a rerun found 0 orphans across 124 editorial links.
- What this does not prove: An inbound link is not traffic and not relevance. This finds pages nothing points at, which is a structural problem, not evidence that fixing it moves anything.
- Cost: 0 human touches, 6 minutes, $0.00
- Raw log: https://github.com/genwfurukawa/vibemarketers-v2/blob/main/lab/runs/2026-09-25-internal-links.json

## Inside a company

- Problem it solves: Pages get published and then nothing links to them, so readers and crawlers never find them.
- Source of truth it reads: The built output, with navigation excluded so the graph shows editorial structure.
- What it may do: Read built pages, build the graph, report orphans and dead ends. Never insert a link.
- Who approves: The content owner decides which links to add and where.
- Who owns it: Content lead
- How you measure it: Count of pages with no inbound editorial link.

MIT licensed. Copy it, change it, run it. No attribution required.
