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.
How to Use
- Paste a page URL or your homepage
- Choose “This page only” or “Whole website”
- 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
https://example.com/blog/seo-checklist
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:andjavascript: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 report | What it means | What to do |
|---|---|---|
| 404 | No page at this URL: deleted, renamed or the link has a typo | Fix the link or add a 301 to the new URL |
| 410 | The server explicitly says the page is gone for good | Remove the link or point it to an alternative |
| 500, 502, 503, 504 | Server-side error at the destination: crash, overload, maintenance | Re-check in an hour; if it's your server, read the logs |
| 403, 429 | Access denied or too many requests. Often bot protection (Cloudflare, a WAF) — a human in a browser will see the page | Open 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 reset | Check the domain; a dead external site means the link should go |
| 200 with a yellow (redirect) badge | The link works but passes through a redirect | Replace with the final URL (internal links especially) |
| 301/302 with a yellow badge | The chain didn't end within 5 hops — a long chain or a loop | Trace 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.
- Typo in the URL — correct the link. Common culprits: an extra slash, non-ASCII characters,
httpinstead ofhttpson a site without a redirect. - 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.
- 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.
- 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.