All checks
Content & UXhighbroken-internal-linkcompares every page we scan against the others

Broken internal link

multiple links on this site point at pages that do not load.

Why it matters

multiple links on this site point at pages that do not load. A visitor who follows one hits a dead end and, on an unfamiliar site, usually leaves rather than navigating back. Search engines treat them the same way: crawl budget spent on URLs that return nothing, and the pages that do exist found more slowly.

How ShipReady detects it

Same-origin links that lead nowhere. SITE-scoped because the candidate set spans the whole crawl: every `<a href>` on every fetched page, plus the URLs the crawler discovered but had no page slots left to fetch. A page-scoped version would re-probe the shared footer's links once per page. Probing is bounded three ways — at most MAX_PROBES distinct URLs, three at a time, and the whole probing phase under a hard PROBE_BUDGET_SECONDS deadline that returns whatever completed rather than failing the scan. A partial answer here is honest (the finding only ever claims what it observed) and a timeout that killed the scan would not be. Only 404, 410 and 5xx are reported for INTERNAL links. A 403 or 429 is bot mitigation, not a broken link. External links are stricter still — see the module docstring.

Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.1.0.

How to fix it

This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.

One or more links on your site point at same-origin pages that return 404, 410, or a server error. For each broken URL in the evidence, decide which it is: a page that was renamed or removed (update the link, and add a 301 redirect from the old path if anything external may still point at it), a page that was never built (build it or remove the link), or a typo in the href. Then re-crawl your own site to catch the rest — a link checker in CI (lychee, linkinator, or a crawl step in your deploy pipeline) turns this into something you find before your visitors do rather than after.

Frequently asked questions

What does "Broken internal link" mean?
multiple links on this site point at pages that do not load.
How serious is it?
ShipReady rates this high. Fix before launch. A real weakness that an attacker can act on.
How do I fix it?
Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
Can I check my own site?
Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check. The free report lists every issue it finds and shows full evidence and a fix prompt for the critical and high-severity ones; medium and low findings are counted and unlock on Pro.

Related checks

Run this check on your site

ShipReady checks this and 193 other things across up to ten pages of your site, with an AI-ready fix for each. Free, no signup.