Broken Link Checker: Find 404 Links on Your Site

Find broken links (404, 5xx), redirects and timeouts on a page or across the whole website: up to 10 pages and 300 links per scan.

Broken link checker for your website

Find broken links online: check a single page or the whole website (up to 10 pages per scan). The tool finds links returning 404 and 5xx errors, redirect chains and timeouts, and shows the anchor text and the page where each link sits. Broken links waste crawl budget, leak link equity and frustrate visitors — check them after every migration, URL change or page removal.

Single page or whole-site scan (up to 10 pages, 300 links)
404, 410, 5xx status codes and timeouts
Links that go through redirects — candidates for direct URLs
Anchor text, nofollow and the page where the link was found
Internal and external links separated

How to Use

  1. Paste a page URL or your homepage
  2. Choose “This page only” or “Whole website”
  3. Fix the links at the top of the report: broken first, then redirects

Use Cases

  • Audit outbound links on blog posts and landing pages.
  • Check content quality before bulk publishing.

Limitations

  • Checks a single page at a time, not the entire site crawl.
  • Some targets may rate-limit bot requests (429/403).

Example Input / Output

Example Input
https://example.com/blog/seo-checklist
Example Output
Detected 4 broken links: three 404 and one 500 with anchor and URL details.

FAQ

How to check a website for broken links online: one page or the whole site

This broken link checker works in a straightforward way: it downloads the page HTML, collects every link from <a href> tags and requests each one to get the server's status code. It is free and needs no sign-up. The form has two modes, and your choice decides what ends up in the report.

  • “This page only” — checks up to 100 unique links on the URL you enter. Use it to quickly verify an article, a landing page or a category page after edits.
  • “Whole website (up to 10 pages)” — adds up to 9 internal HTML pages linked from the start page (usually the menu and key sections). Up to 300 unique links are checked in total, and the “Found on” column shows which pages each link sits on.

The limits, stated plainly so you read the result correctly:

  • The crawl is shallow: in site mode only pages linked from the start URL are opened. To check a deep section, enter the URL of its hub page (a catalogue, a blog archive) — each scan gives you a fresh batch of links.
  • Links injected by JavaScript in the browser (SPAs, infinite scroll) are not in the source HTML and won't appear in the report.
  • It checks links, not assets: broken images (<img src>), stylesheets and scripts are out of scope — unless an image is linked with a regular <a href="photo.jpg">.
  • Fragments (#section), mailto:, tel: and javascript: links are skipped — they have no HTTP response.
  • Rate limit: up to 5 page scans per 2 minutes and 3 site scans per 5 minutes.

For a site with hundreds of pages, a full crawl is more practical — the SEO Audit button appears below the report. A step-by-step walkthrough is in the help centre: how to find broken links.

Reading the report: 404, 410, 5xx, timeouts and redirects

The report is sorted by severity: broken links first (red badge with the code), then timeouts, redirects (yellow badge) and working links (green). Each link is first requested with HEAD; any error except 429 is re-checked with a full GET. So a server that answers HEAD with 404 or 405 but serves the page on GET is not flagged as broken. The code shown is the final one, after following up to 5 redirects. That makes the tool a practical 404 checker for every link on a page in one pass.

In the reportWhat it meansWhat to do
404No page at this URL: deleted, renamed or the link has a typoFix the link or add a 301 to the new URL
410The server explicitly says the page is gone for goodRemove the link or point it to an alternative
500, 502, 503, 504Server-side error at the destination: crash, overload, maintenanceRe-check in an hour; if it's your server, read the logs
403, 429Access denied or too many requests. Often bot protection (Cloudflare, a WAF) — a human in a browser will see the pageOpen the link manually; if it loads, the link is fine
“—” (timeout)No response within 8–10 seconds, DNS doesn't resolve, or the connection was resetCheck the domain; a dead external site means the link should go
200 with a yellow (redirect) badgeThe link works but passes through a redirectReplace with the final URL (internal links especially)
301/302 with a yellow badgeThe chain didn't end within 5 hops — a long chain or a loopTrace it with the redirect checker

A nofollow badge next to the anchor doesn't make a broken link any less broken: visitors still hit the error. For how Google treats each status code, see Google Search Central.

What to do with a broken link

The fix depends on where the link was supposed to go.

  1. Typo in the URL — correct the link. Common culprits: an extra slash, non-ASCII characters, http instead of https on a site without a redirect.
  2. The page moved — update the link to the new URL and also add a 301 from the old one: other sites and bookmarks may still point there.
  3. The page was removed but a close equivalent exists — 301 to it. Redirecting every removed page to the homepage is usually treated by Google as a soft 404, so no equity is preserved.
  4. The page was removed with no replacement — remove the link and return 410 (or keep the 404).

301 and 410 in nginx

location = /old-page/ { return 301 /new-page/; }
# structure change: /blog/2024/05/post/ → /blog/post/
rewrite ^/blog/\d{4}/\d{2}/(.+)$ /blog/$1 permanent;
location = /discontinued/ { return 410; }

301 and 410 in Apache (.htaccess)

Redirect 301 /old-page/ https://example.com/new-page/
RedirectMatch 301 ^/blog/\d{4}/\d{2}/(.+)$ /blog/$1
Redirect gone /discontinued/

Internal vs external broken links: what to fix first

The “Type” column splits links into internal and external (the www subdomain counts as the same site). Start with internal ones: you control both ends, and a broken internal link wastes crawl budget and cuts the flow of link equity between your own pages. Links in the menu, footer and templates matter most — one mistake in a template repeats on every page, which in site mode shows up as a long list in the “Found on” column.

External links break on their own over time (link rot): sources shut down, restructure or move to new domains. Swap the link for the current version of the resource, another authoritative source, or remove it. Redirects on external links are rarely a problem; internal links, however, should point straight to the final URL.

Broken links in WordPress and after a site migration

The report tells you which page holds the link, but in WordPress the same old URL is often hard-coded into dozens of posts. Find them all with a database query (your table prefix may differ from wp_):

SELECT ID, post_title FROM wp_posts
WHERE post_status = 'publish' AND post_content LIKE '%/old-page/%';

For bulk replacement after a domain or permalink change, use WP-CLI — it handles serialized data correctly. Always do a dry run first:

wp search-replace 'https://old.example.com' 'https://example.com' --skip-columns=guid --dry-run

The Redirection plugin is useful: it manages 301s from the dashboard and logs 404s. Background link-checking plugins are convenient but can put noticeable load on hosting for large sites — a one-off external scan doesn't.

When migrating (new CMS, domain or URL structure), build an “old URL → new URL” map before launch, set up one-to-one redirects, and right after release scan the homepage and main sections in “Whole website” mode: internal links still using old URLs will get a yellow redirect badge — update them to the new addresses.

Broken links and Search Console: the “Not found (404)” report

In Search Console, under Pages → “Why pages aren't indexed”, there's a “Not found (404)” row. These are URLs Googlebot discovered and got a 404 for — from internal links, other sites or an old sitemap. The report shows the dead URL, but not always where it's linked from. That's where this online check complements Search Console: scan your sections to find the pages that link to those URLs. If dead URLs are listed in your sitemap, remove them from the file — this tool doesn't read sitemaps. Setup is covered in connecting Search Console.

404s in that report are not a penalty in themselves: Google expects removed pages. Fix the ones your own links or external backlinks point to.

How often to run a broken link check

  • Right after a migration, a URL structure change, or bulk removal of products or posts.
  • After editing the menu, footer or page templates.
  • Monthly for content sites and blogs: outbound links in older articles decay over time.
  • Before promoting a page: link equity shouldn't leak into dead ends.

Broken backlinks: recover link equity with a 301

A separate case is other websites linking to pages you've removed. Those links land on a 404 and their value is lost. In Search Console, open Links → “Top linked pages” (external links), check the URLs with the HTTP status checker, and 301 the ones returning 404 to the closest relevant live pages. To find sites linking to your domain, use the backlink checker.

Improve search rankings

SEO problems may be costing you traffic. Cascade link building will improve site visibility in search.

Cascade link promotion for your site $30 bonusBacklinks 5→50→5000 across 100+ platforms. From $30 to start, plus a $30 bonus for newcomers.