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.
1 page links to a page that returns an error
/journal/ storm-shell-review/ Broken links: /products/ storm-shell (status 404)
http://127.0.0.1:8006raptor 0.3.0, 17 Oct 2026Open 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 crawlprints 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_findingswith thischeck_idreturns 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" }