ShipworkSite inspection
Broken links

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

Are any internal links sending visitors to a dead end?

A link that once worked and now 404s is invisible until someone clicks it. Broken internal links waste crawl budget, leak the trust you built, and quietly cost conversions.

Checks a set of internal links from your key pages with a real request. Saved to your account if you are signed in to a paid plan.

How this check works

Shipwork collects the internal links on a set of your key pages and requests each one, reporting any that return 404, 410 or a server error. It reads the links a crawler would follow, from outside your network.

What the broken internal link check tests

The check reads links from the pages discovered in a bounded crawl, deduplicates up to 30 internal URLs and requests up to 25 of them with HEAD. It reports URLs that return 404, 410 or a 5xx response and names the linked page URL. If all checked links respond outside those failure statuses, it reports that the checked sample answered cleanly. A failed request caused by a timeout is inconclusive and is not reported as a dead link.

This is not a full-site link inventory. A clean result covers only the links in the sample from pages the crawl reached. Some servers handle HEAD differently from normal browser requests, so confirm important findings with a direct request before removing or changing a link.

  • Internal links found on fetched pages.
  • A bounded set of unique destinations, with status checks for 404, 410 and 5xx.
  • The dead destination and its reported HTTP status.
  • No claim of a broken link when a request times out.

How to read a broken link result

A 404 means the server says the requested page is not found; 410 means it is gone. A 5xx response indicates a server-side error. The finding points to the destination, but you still need to locate the source page and decide whether the destination should exist. A temporary server error may clear on retry, while a removed product may need a redirect or a corrected link.

When a destination moved, update internal links to the new URL rather than relying on an old address to redirect. A redirect can preserve access, but the page should still be relevant to the original link. For permanently removed content without a replacement, remove the link or show an appropriate not-found response.

  • Open the destination and source page to confirm the failure.
  • Fix the link at its source if the page moved or the URL contains a typo.
  • Restore the page or add a relevant redirect when content has a true replacement.
  • Do not redirect every deleted URL to the homepage; the destination should match intent.

Fix broken links after site changes

Common causes include product handle changes, deleted collections, migrations, manual typos and links copied from a staging host. Search the site for the exact path shown in the finding. Update navigation, templates, editorial links and product references at the source. If the old URL has meaningful inbound traffic or a valid replacement, create a direct redirect and then update internal references so visitors do not need the extra hop.

For example, if a product moved from /products/blue-shirt-old to /products/blue-shirt, link to the current path in the product description and navigation. Add a redirect for legitimate old links, but keep the final URL in your own pages and sitemap.

  • Check source pages and templates for the outdated href.
  • Update the href to the live destination and verify it returns successfully.
  • Use the redirect generator when an old URL needs a replacement rule.
  • Use outbound link check for external destinations.

When a broken link check is useful

Run it after renaming pages, deleting products, migrating a domain or changing navigation. It is useful for catching obvious internal dead ends in the discovered sample, especially on key landing pages. If you need a complete map of links across a large site, use a deeper crawl with a larger page budget; this free check deliberately limits requests.

Broken links affect visitors directly and can waste crawler time, but one finding does not establish a broad ranking problem. Fix links that matter to navigation and content first, then check the relevant page response and rerun.

Questions

Why do broken internal links matter?
They waste crawl budget, drop link equity into nothing, and frustrate visitors, all of which cost ranking and sales.
How are links broken?
Renamed pages, deleted products or collections, and typo edits are the usual causes. A redirect can cover them, but fixing the link is better.
Is this a full site crawl?
The free check reads links from your key pages. Mapping every internal link on a large site is part of the paid deep crawl.
How do I find broken internal links on my website?
Crawl pages, collect same-site links, and check whether their destinations return not-found or server errors. Shipwork discovers a bounded set of pages, deduplicates internal URLs and checks up to 25 with HEAD requests. It reports 404, 410 and 5xx statuses, while timeouts remain inconclusive. Confirm important results directly and use a deeper crawl when you need broader coverage.
Do broken links hurt SEO?
Broken internal links create dead ends for visitors and make it harder for crawlers to reach useful pages. A single finding does not prove a ranking penalty, but it is worth fixing when it affects navigation, products or important content. Update the source link, restore the page, or redirect to a genuinely equivalent destination.
Why does a broken link checker show a link that works in my browser?
The check uses HEAD requests, and some servers or security layers handle HEAD differently from a normal browser GET. The destination could also have recovered after the crawl. Open the exact URL and check its response directly before changing the page. Shipwork treats timeouts as inconclusive rather than reporting them as dead links.
Does the broken link checker crawl my whole site?
No. The free lens checks a bounded sample of links extracted from pages discovered during its crawl. It may not reach every URL or every link on a large site. A clean result means the checked sample responded outside the failure statuses; use a deeper crawl when you need a broader link inventory.
Should I redirect a broken internal link?
If the content moved to a relevant replacement, a redirect can preserve old links while you update internal references to point directly to the new URL. If there is no equivalent destination, restore the content or remove the link and return an appropriate not-found response. Avoid sending unrelated old URLs to the homepage, which confuses visitors and crawlers.

Keep reading

What this reads

  • Reads public pages from outside your network, the way a crawler does.
  • No signup, and nothing is stored on the free checks.
  • One of 83 checks across discovery, content, markup, trust and catalogue data.
83checks
0signups needed
0stored on free checks
Cool, just ran an audit and got some insights! Let’s see if I can fix them :)
Tenta Dev, @DevTenta
Whoah! this site is crazy, nothing to roast at all
Ainreek, @AinreekAI
cool as heck, tried it on my blog and the insights it gave are helpful and not bluff.
Refaat 🍉 (Mouse), @1Mouse__