Why Links Break
- Pages deleted or renamed without a redirect. The most common cause by far - a URL slug changes during a redesign and nothing 301s the old address to the new one.
- External sites restructuring or going offline. A link you have no control over simply stops resolving because the other site changed its URLs or shut down.
- Typos in the href. A single mistyped character in a hand-written link, easy to miss in review and easy for a crawler to catch.
- Content moved behind a new content type or route structure without updating every internal link that pointed at the old path.
How to Identify Every Broken Link
Scanverra's Browser Test crawls a live page and collects up to 25 links found on it, then checks each one with a HEAD request - a lightweight request that asks only for the status code, not the full page - batched in groups of 6 at a time so a full check completes quickly instead of taking minutes. Any link that comes back 400 or above, or times out, is reported as broken. If a page has more than 25 links, only the first 25 are checked in that run.
How to Fix It
1. Redirect moved or renamed pages, don't just delete them
Whenever a URL genuinely goes away, a permanent (301) redirect to its closest replacement preserves both the user's intent and any link equity pointing at the old address:
1export default {
2 async redirects() {
3 return [
4 {
5 source: "/blog/old-post-slug",
6 destination: "/blog/new-post-slug",
7 permanent: true,
8 },
9 ];
10 },
11};2. Fix or remove dead external links
For a link you don't control that's now broken, either find the content's new location and update the href, or remove the link and reference entirely if the source is gone for good - a stale citation is worse than no citation.
3. Quickly spot-check a suspicious link manually
1curl -I https://example.com/some/path4. Give visitors a genuinely useful 404 page
You won't catch every broken link before a user does - a custom 404 with a search box and links back into your main navigation turns an inevitable dead end into a recoverable one instead of a bounce.
How Scanverra Detects This
Scanverra's Browser Test genuinely crawls the page and issues real HEAD requests against up to 25 discovered links, batched 6 at a time, and reports each one that returns an error status or times out - it's a live check against the actual current state of those links, not a cached or estimated result.
