Free broken link checker

Find dead links on a whole website (up to 50 pages, no sign-up), in a sitemap, in a pasted URL list or HTML. LinkGuard checks every link, image and script, shows the page each broken link sits on and each redirect hop, and remembers the list so your next re-check shows what changed.

Check links

Links are pulled out of the text right here in your browser. Found 0 unique URLs.

Checks that every URL you ask Google to index actually answers 200. Child sitemaps in an index are listed so you can pick one.

Your browser walks the site one page at a time (same domain only, up to 25 pages), collects every link, image and script, then checks them all and shows which page each broken link is on.

Reads one page and queues every link, image, script and stylesheet on it. It does not crawl on to other pages.

Up to 500 URLs per run, 20 at a time.

What the colours mean

Each result gets a signal aspect, the same three-lamp logic a railway uses:

  • Clear: the link answered 2xx. Nothing to do.
  • Caution: it still works but goes through redirects, or the server refused an automated check (401, 403, 429). Open these by hand before you call them broken.
  • Danger: 404/410 (gone), 5xx (server failing), DNS failure, timeout or a redirect loop. Fix or remove.

How LinkGuard checks a link

Your browser is not allowed to read another site's HTTP status. That rule (the same-origin policy) is what stops a random web page from reading your bank's pages, so any honest online link checker needs a server hop. Ours is small and forgetful: it sends a HEAD request (falling back to GET when a server rejects HEAD), follows up to 10 redirects one hop at a time, and returns the result. Nothing is logged or stored. Lists, results and history live in your browser's local storage, and you can wipe them on the privacy page.

It never crawls: it checks exactly the URLs you give it. For a whole site, import the sitemap, check it, then check the pages that matter most one at a time.

Why a page can't check links by itself

  1. Script asks for other-site.com/page

    JavaScript on linkguard.pro calls fetch() on a URL on another domain.

  2. The server answers: 404 Not Found

    The request really happens, and the other server really replies.

  3. Browser checks the CORS headers

    The reply has no Access-Control-Allow-Origin header naming linkguard.pro, which is normal: most sites never send one.

  4. Status hidden from the script

    The browser throws the response away (or hands over an "opaque" one with status 0). The page cannot tell a 200 from a 404.

Why dead links are worth an afternoon

Google's own documentation treats broken outbound links as a quality signal only in the loosest sense; the bigger costs are practical. A dead internal link wastes a crawler's visit and strands the link equity pointing at it. A dead link in a sales page or help article sends a real person to an error page at the worst moment. And a 404 in your sitemap tells search engines you don't keep your own index tidy.

The most common sources, in the order we see them: pages renamed during a redesign with no redirect, outbound links to sites that closed or restructured, images hot-linked from a CDN that moved, and typos in hand-edited links. The fix guide walks through what to do with each.

Want domain authority numbers too?

LinkGuard does not show backlink counts or authority scores; we don't run a link index, and made-up numbers are worse than none. For real ones, Ahrefs has a free website authority checker and broken backlink checker, and Google Search Console lists the 404s Googlebot actually hit on your site.

Questions people ask

Is this broken link checker really free?

Yes. There is no account, no trial and no paid tier. Each run checks up to 500 URLs, and there is a fair-use limit per connection so the service stays free for everyone.

Can it check my whole website?

Yes, up to 50 pages per scan on the same domain. Your browser walks the site one page at a time, collects every link, image, script and stylesheet, then checks them all and lists which page each broken link is on. For bigger sites, import the sitemap (up to 500 URLs per run) or scan sections one at a time.

How do I find broken links on my website for free?

Enter your home page in the "Whole website" tab and press Scan. Broken links appear in red with the page they were found on and their anchor text. Google Search Console's Pages report also lists 404s Googlebot found, but not where the links to them live.

Does it check images and external links too?

Yes. Internal links, outbound links, images, scripts, stylesheets and iframes are all checked. Mailto, tel and javascript links are skipped because they have no HTTP status.

Why does a link show 403 or 429 when it works in my browser?

Some sites block automated requests or rate-limit them. A 403 or 429 from a checker usually means "the server refused the robot", not "the page is gone". LinkGuard marks these as caution rather than broken; open them by hand to confirm.

Is my data private?

Pasted text is parsed in your browser. Only the URLs themselves are sent to our checking function, which requests each one and returns the status without logging or storing anything. Saved lists and history stay in your browser's local storage.

What is the difference between a dead link and a broken link?

People use them interchangeably. Strictly, a dead link points at something that no longer exists (404 or 410), while "broken" also covers links that fail for other reasons: a server error, a domain that no longer resolves, an expired certificate or a redirect loop.

How often should I check for broken links?

After every redesign, migration or URL change, and otherwise monthly for an active site. Save your list here and re-run it; LinkGuard highlights what changed since the last check.

Keep going