Skip to content
Searchpedia SEO field notes Callum Bennett Callum

Site ops

Dead Link Checker

I would not run a dead link checker on a site without first verifying it can handle JavaScript links — most free tools miss them entirely.

Beginner5 min readUpdated 2026-07-27Notes by Callum Bennett

The short verdict

  • Run a crawl with a dedicated dead link checker or the W3C Link Checker to find broken internal and external links on your site.
  • Prioritise fixing internal links that return 404 or 410, especially on pages with high traffic or link equity.
  • Set a recurring schedule — monthly for most sites — to re-check for dead links using Google Search Console or a standalone tool.
  • Export the list of broken links to CSV and hand it to the development team with clear redirect or update instructions.
  • Avoid relying on a single run; verify a few broken links manually to confirm the tool’s results are accurate.

What it's good at

A dead link checker crawls through URLs you feed it and reports every link that returns a status code in the 4xx or 5xx range — most commonly 404 (Not Found) and 410 (Gone). It also often flags redirects like 301, 307, and 308, which lets you separate truly broken links from ones that simply need a redirect update. I use this to scan a site’s entire internal link structure, but many tools also check external links, so you can catch broken outbound references to resources you don’t control.

When I run a site audit, I start with a tool like the W3C Link Checker because it’s standards-based and free. It scans not only HTML <a> tags but also anchors, images, CSS references, and other embedded objects. That breadth is important: a broken image in a product page might not be a link, but it damages the user experience just as much. For a larger site, I switch to a dedicated checker that supports CSV export, so I can triage the results by page priority. Exporting a list of all broken internal links, sorted by the number of incoming links pointing to the broken page, lets me decide which 301 redirects to set up first. That’s where the value shows: fixing a 404 on a page that has 50 inbound links preserves more link equity than patching a page with only two.

I also lean on [Google Search Console](/seo-audit/) for ongoing monitoring. It catches server errors and 404s that its crawler encounters, but it doesn’t scan every page the way a standalone checker does. For a deep one-off audit, nothing beats a tool that crawls your whole site and reports every broken link, internal and external, in one go.

What it's awkward for

The biggest blind spot: most free dead link checkers cannot evaluate JavaScript-rendered links. If your site loads navigation links via JavaScript, those <a> tags may not exist in the raw HTML the tool receives. I once ran a checker on a client site that used a JavaScript framework for its mega-menu, and the tool reported zero broken links. I knew that was wrong. When I manually inspected the rendered page, I found three broken internal links in the menu. The tool never saw them. So if your site relies heavily on JavaScript for navigation, you need a checker that can execute JavaScript, like Screaming Frog or a custom script using Puppeteer. Most free online checkers cannot do that.

Another awkward scenario: checking a large site with thousands of pages. Free tools often impose a page limit — 1,000 or 3,000 URLs — and some enforce a crawl delay that makes the process painfully slow. I ran into this on a 10,000-page e-commerce site. The free checker I used crawled only 2,000 pages before timing out. I had to split the crawl into batches, which defeated the purpose of a single audit. Paid tools like Ahrefs handle larger crawls, but they cost money. For a one-person operation, that might not be justified.

External links are another pain point. When a checker reports a broken external link, it might be a temporary glitch on the remote server — a 503 or a 429 that resolves in a few minutes. The tool does not retry. I learned to treat external link failures as potential false positives. I check a sample manually by re-requesting the URL a few hours later. If the link is still broken, then I act. Also, some sites block the checker’s IP address, so you get a connection error that looks like a dead link when it’s actually a firewall issue. I always verify a few of the reported broken links by visiting them in a browser first.

Alternatives I'd consider

If I need a quick, free, and reliable check for a small site, I use the W3C Link Checker. It’s not the prettiest interface, but it is thorough and respects the robots.txt file, so it won’t hammer your server. For a single page or a small domain, it’s my first choice. For a larger site where I want to manage the crawl and export results, I turn to a dedicated tool like Dead Link Checker (the domain deadlinkchecker.com). It supports CSV export, has a simple interface, and lets you exclude certain link patterns. I have used it for sites up to 5,000 pages without issues.

When I want to integrate broken-link checking into a broader [technical SEO](/technical-seo/) workflow, I use either Google Search Console for ongoing monitoring or a desktop crawler like Screaming Frog (not free, but worth it). Screaming Frog can render JavaScript, supports custom extraction, and exports every detail you need for a redirect mapping. I pair it with a [301 redirect](/301-redirect/) plan to map old URLs to new ones. For outreach purposes — finding broken links on other sites that point to your content — Ahrefs’ Broken Link Checker is excellent. It scans the web for backlinks to your site and identifies which ones are broken, so you can ask the linking site to update the link.

I also check [sitemap](/sitemap/) regularly to ensure that URLs I submit are not returning 404s. A broken link in your sitemap is a signal to Google that your site is poorly maintained. If you have a lot of pages, consider using a tool that checks the [canonical URL](/canonical-tag/) as well: sometimes a 404 on a canonicalised page is harmless, but it can still confuse users. The key is to match the tool to the job size. For a single urgent fix, a free online checker is fine. For a recurring audit, invest in something that handles JavaScript and exports clean data.

Next step

Quick answers

What status codes should I look for in a dead link checker report?

Focus on 404 (Not Found) and 410 (Gone). Also note 301, 302, 307, and 308 redirects — they are not dead but may indicate a change that needs updating. 500-series errors are server issues, not dead links, but should still be investigated.

How often should I run a dead link check on my site?

For a static site, monthly is enough. For a dynamic site with frequent content changes, weekly is better. Use Google Search Console for continuous monitoring, and run a full crawl with a standalone checker once a quarter to catch pages the search console doesn’t crawl.

Can a dead link checker find broken links that are only visible after JavaScript execution?

Most free online checkers cannot. They analyse the raw HTML, which does not include links added by JavaScript. To catch those, you need a tool that uses a headless browser, such as Screaming Frog or a custom script with Puppeteer. Always verify a few links manually if your site uses JavaScript.

What should I do after exporting a list of broken links?

Prioritise by the number of inbound links pointing to the broken URL. Set up 301 redirects to the most relevant live page. For obsolete content, consider a 410 to signal that it is permanently gone. Update internal links manually if the redirect is not possible. Share the CSV with the development team and track completion.

Sources

Primary documentation is linked directly. Anything commercial is marked nofollow.

  • W3C Link Checker — Standards-based checker that scans links, anchors, and referenced objects in a page or site.
  • Google Search Central — Provides guidance on crawlability and handling site errors, relevant to dead link management.
  • Dead Link Checker — Canonical product example of a dead-link checking tool with export features.
  • Ahrefs Broken Link Checker — Well-known SEO tool for checking broken inbound and outbound links, useful for outreach.

Notes from Callum Bennett.