Every link on the page, followed, with the status code it returns.
Free · no signup · reviewed
Free, no signup. We fetch the page live and read what a search engine would see.
Links rot. Products get deleted, external sites disappear, someone renames a page and forgets what pointed at it. Every broken link is a visitor who hit a dead end and a crawler that wasted a request it could have spent on a page that sells.
This takes the links on the page you give it — up to fifty, internal and external — follows each one, and reports what came back. 404s and server errors first, then the hosts that answered 403 or 429, which usually means they block bots rather than that the page is gone.
Requests go out in small batches with a real user agent and a short timeout, because this is hitting someone else's server and has no business behaving like a stress test.
Broken internal links leak the authority you paid to build: a link pointing at a 404 passes nothing and strands whatever was behind it. Broken outbound links carry no direct penalty, but a page full of dead links is the clearest signal to a reader — and to a quality rater — that nobody is maintaining the site.
Zero internal 404s. Outbound breakage happens to everyone, so the standard there is a quarterly check and a decision each time: update the link, replace the source, or remove the sentence.
Each of these has a full entry in our issue library: what it is, what it costs a business, and step-by-step fixes for WordPress, Shopify, Webflow and custom builds.
A link on the site points at a page that no longer exists.
Pages returning a not-found or forbidden status code.
A URL bounces through two or more redirects before it loads.
A checker that hands you a list and walks away has done half the job. Here is what each kind of finding means and what it is worth doing about it.
A broken link to your own site is a page you meant people to reach, a crawl request wasted, and any authority the link carried thrown away. These are also the easiest to fix, because both ends are yours.
A 404 means the page is gone. A 500 means the page exists and is broken, which usually affects more than the one URL you happened to link to. Check the destination yourself before assuming it is a link problem.
Plenty of large sites block anything that isn't a browser. Those links are almost always fine for a human, which is why they are listed separately rather than counted as broken.
The worst broken links live in content nobody has opened in two years — exactly where the accumulated links and rankings are. Page-level checks find what is in front of you; a crawl finds the rest.
This is worse than leaving the 404. Search engines call it a soft 404, visitors land somewhere unrelated to what they clicked, and you lose the signal that told you something was missing.
A redirect keeps visitors moving, but the link itself should be updated. Chains of old links through redirects are slower for every visitor and every crawl, and they accumulate until one of them breaks.
Links break on someone else's schedule. A site that was clean in January is not clean in June, which is why this belongs on a monthly or quarterly crawl rather than on a to-do list.
Old posts are where broken links concentrate and where the accumulated authority sits. They are also the cheapest content to improve, because they already rank.
The setting is in a different place on every platform, and that is usually what stands between knowing and fixing.
Plugin churn is the usual cause: a plugin that created URLs gets removed and the links stay. Use a redirect plugin for anything that genuinely moved, and edit the source posts rather than relying on the redirect forever.
Deleted products leave links in collection descriptions, blog posts and theme sections. Shopify's URL redirects tool under Navigation handles the destination; the links in content still need editing.
Redesigns move URLs, and Webflow's 301 manager under hosting settings is a separate step from publishing. Export the old URL list before a relaunch, not after.
Changing a page slug does not create a redirect. Add a rule under Settings → URL mappings, and check internal links in older blog posts, which point at the old path.
Redirects can live in next.config, in middleware and in a CMS table at once, in an order nobody remembers. Keep one source of truth, and make sure a missing page returns a real 404 status rather than a 200 with a "not found" message.
More on your platform: SEO audits by platform.
Score one page against the checks that actually move rankings.
Find your sitemap, prove it parses, and see what it is actually telling Google.
The tag that decides which URL gets the credit — checked properly.
Or see all ten free tools.