Ken Lee.dev

Browser extensions

A 403 does not mean your link is broken

Free, with rate controls, and a CSV of everything at the end.

Half the value of a link checker is what it does with the ambiguous answers, and most of them get it wrong. A 403 or a 429 or a 999 means the far end blocked an automated request. It does not mean your link is dead. Report those as broken and you send someone off editing links that were always fine.

So this separates genuinely dead from blocked-the-checker, and says which is which. The second thing it does properly is show you the full redirect chain instead of just the final destination. A 301 pointing at a 301 pointing at a 404 looks perfectly healthy in a tool that only reports where you ended up.

The short version

Broken Link Checker tells those two apart, so the list you get at the end is a list of things that are really broken.

  • Check every link on the page and get the blocked ones separated from the genuinely dead ones.
  • Follow each redirect hop so you can see the chain, not just where you landed.
  • Slow it down when a host starts rate limiting, then export the lot as CSV when it finishes.

Best for: anyone cleaning up an old site who does not want to chase forty false alarms.

Replaces: the checkers that report a 403 as broken and send you hunting for a link that works fine.

How to use it

  1. Open the page you want to check.
  2. Click the icon. It collects every link on the page first, so you can see how many there are before anything gets requested.
  3. Set how many to check at once and how long to wait between them, or leave the defaults.
  4. Start it. Pause or stop at any point without losing what it has already found.
  5. Export the CSV if you want the whole thing, including which page each link was found on.

Why the speed controls are not a nice-to-have

Fire two hundred simultaneous requests at a site and one of two things happens. Either you get rate limited and half your results come back as failures that are really just you being throttled, or you cause a small nuisance for someone whose server you are not paying for.

Both outcomes are bad and the second one is rude. So you get a concurrency setting and a delay between requests, and the defaults are deliberately polite rather than fast. If a scan takes four minutes instead of forty seconds, that is the correct trade.

What it can access, and why

The things people ask before installing

Why did it flag something I can open myself? Usually bot protection. Cloudflare and Akamai answer an automated request differently from a real browser, and LinkedIn returns a 999 that means nothing except that it noticed. Those are marked blocked, not broken, on purpose.

Will it get my IP rate limited? It can, which is why the speed controls are there and set conservatively out of the box. Turn them down further on a page with hundreds of links to the same host.

Does it cost anything? No, and there is no quota either. Most hosted link checkers give you a hundred URLs and then ask for a card. This one runs on your machine, so there is nothing for me to meter.

Free, and it stays free. No account, no sign-up, and nothing leaves your browser.

Tell me when Broken Link Checker is live

It is with Google for review now. Say the word and I will send you the link the day it clears, which is the only thing I would ever use your address for.

FAQ

Why did a link that works in my browser come back as failed?

Almost always bot protection. Cloudflare, Akamai and a lot of large sites answer an automated request differently from a real browser, and LinkedIn in particular returns a 999 that means nothing except that it noticed. Those are flagged as blocked rather than broken. If you see a genuine 404 on something you can open by hand, that is worth telling me about.

Does it check images and scripts, or only anchor links?

Links you can click, which is what you were asking about. A missing image is a different problem with a different fix and mixing them into one list makes both harder to read.

Can it crawl my whole site?

No, it checks the page you are on. That is a deliberate limit rather than an oversight, because a full-site link crawl on hundreds of pages is a desktop job. Run it on your important templates and you will find most of what matters.

What is in the CSV?

Every link, its status, the full redirect chain if there was one, the anchor text, and the page it was found on. That last column exists because a list of broken URLs with no indication of where they live is not actionable.

Related