Broken internal link

links.broken_internal
Priority
High
Severity
Critical

What we look for

These pages link to pages on this site that answer with an error status code (a 4xx or 5xx reply, such as 404 Not Found), counting where a link ends up after redirects. 401, 403 and 429 are left out.

Why it matters

Visitors who follow these links hit a dead end, and search engines spend their visits on pages that fail.

How to fix

Point each broken link at a live page, or remove it, in the CMS or page template. If the target page should exist, bring it back or send its address to the closest live page with a 301 redirect (a permanent forwarding rule).

What it cannot know

Raptor tests only links to pages this crawl fetched. A link to a page it did not reach is not checked.

Seen in a real crawl

From a crawl of Fernhollow Outdoor, a test site built for this site’s demo.

High

1 page links to a page that returns an error

  • /journal/storm-shell-review/Broken links: /products/storm-shell (status 404)
Paths on http://127.0.0.1:8006raptor 0.3.0, 17 Oct 2026

Open this finding in that crawl’s report

It also fired on Millbrook Hardware.

Where you’ll see it

The id is stable, and every surface uses it, so it’s the thing to search for or hand to an agent.

Terminal
When it is one of the five findings under Fix first, raptor crawl prints the id under it.
Check: links.broken_internal
crawl.json and the CSV
The crawl JSON names the finding by this id, and so do the CSV and raptor_query.
"check_id": "links.broken_internal"
The HTML report
This link opens the finding in the report, and each finding shows its id.
crawl.html#finding=links.broken_internal
MCP
raptor_findings with this check_id returns the finding in full, with a fix brief ready to paste into a task. If it didn’t fire, it says why.
raptor_findings {
  "job_id": "...",
  "check_id": "links.broken_internal"
}