Broken Link Checker
Enter a URL to check it for broken links, dead links and 404 errors, along with up to 10 internal pages it links to. Each link shows its status code, anchor text and where it sits on the page. Redirects show their final target, and images and other resources are checked too.
Free · needs a free account · reads public data only
See your results in one click. Sign in with Google, then run any of the 150 free tools.
Continue with GoogleHow to use the Broken Link Checker · 45 sec
A broken link checker finds the links on your pages that send visitors to an error instead of the content they expected. Enter a URL and our free tool scans that page, plus up to 10 internal pages it links to. It tests every unique link once, along with the images, scripts and stylesheets the pages load. Each result shows the HTTP status code, the anchor text and where the link sits on the page: menu, header, content, sidebar or footer. Broken links are split into internal and external. Redirected links show their final target, and timeouts are reported separately, so you know what to fix first. It works as a dead link checker and a 404 checker in one pass, and you can export the full table as a CSV file.
How to use the Broken link checker
- 1 Choose a page to start fromYour home page is usually the best start, because it links to your main sections, so the checker scans those pages too. For a blog or shop, also try a category page or a long resource page.
- 2 Enter the full URLPaste the address and run the check. We scan that page and up to 10 internal pages linked from it, respecting robots.txt, and collect every link, image, script, stylesheet and embed.
- 3 Read the summaryThe checks at the top count broken internal links, broken external links, broken images and resources, links that redirect, links that timed out and links that refused our checker.
- 4 Filter and fixUse the filters to show only broken links, redirects or timeouts, or only internal links. Each row shows the anchor text, the section of the page and the pages it was found on, so you can find it in your editor.
- 5 Export and re-runExport the table as CSV to share with whoever maintains the site. Once fixes are live, clear any page cache and run the check again.
Why broken links matter
Broken links send visitors to error pages and waste the authority that internal links pass around your site. A few are normal on a large site; many make it look neglected to visitors and search engines.
What this checker looks at
Every unique link and resource on the page you enter and on up to 10 internal pages linked from it: up to 150 links plus 50 images, scripts, stylesheets and embeds, each tested once. Broken links (4xx and 5xx) are split into internal and external. Redirected links show where they end, timeouts are reported separately, and sites that refuse automated checks (401, 403, 429) are listed on their own. nofollow, sponsored and ugc links are flagged, and mailto: and tel: links are counted but not requested.
What a broken link is
A broken link is a hyperlink whose destination no longer returns the page. The usual cause is a URL that changed without a redirect: a product was discontinued, a blog post was renamed, a site was rebuilt with a new URL structure, or another website you linked to has closed or reorganized.
Technically, a link is broken when the server answers with a 4xx client error or a 5xx server error, or does not answer at all. Our broken link checker follows redirects on the way. A link that redirects and then loads correctly is reported as a redirect, with its final address, while one that redirects into a 404 is reported as broken.
Dead links vs broken links vs 404 errors
People search for a broken link checker, a dead link checker and a 404 checker, and in everyday use the three mean almost the same thing. The differences are worth knowing, because they change what you fix and how.
A broken link and a dead link are the same idea: a link that no longer takes the visitor where it promised. A 404 is the most common reason a link is broken, but it is only one of several. A link can also fail with a 410 Gone, a 500 server error, a 503 while a site is down for maintenance, or no answer at all because the domain has expired.
- Broken link or dead link: any link whose destination fails to load the intended content.
- 404 Not Found: the server says nothing exists at that address. The most common broken link.
- 410 Gone: the page was removed on purpose and is not coming back.
- 5xx error: the destination exists but the server failed. Often temporary, so check again later.
- Soft 404: looks like a working page to a checker but is treated as missing by Google. See the section on soft 404s below.
How to read your results
Every row in the table has a status badge. These are the ones you will see and what to do about each.
- 200 (green): the link loaded. Nothing to do.
- 404 broken, 410 broken, 500 broken and similar (red): the destination returned an error. Fix internal ones first.
- 301 → 200 (amber): the link redirects and then loads. The final target is shown under the link. For internal links, change the href to the final URL to save a hop.
- timeout: the server did not answer within 6 seconds. It may be slow or overloaded rather than gone, so open it yourself before removing it.
- no DNS, SSL error, too many redirects: the domain does not resolve, its certificate failed, or the link redirects more than five times.
- 401, 403 or 429 blocked (grey): the site refused an automated request. These usually open fine in a browser.
- not checked: the site answered slowly and we reached the time limit before testing this link. Run the check again later.
Internal links vs external links
An internal link points to another page on your own site; an external (outbound) link points to a different website. The checker counts a link as internal when it uses the same domain as the page, including www and other subdomains such as blog.example.com.
Broken internal links are the priority. You control both ends, they are usually quick to fix, and they matter for crawling: internal links are how search engines discover your pages and understand which ones are important. A broken link in a menu or footer repeats on every page, which is why each row shows the section it was found in.
Broken external links matter less for rankings but still affect trust. If you cite a source that has vanished, readers lose the evidence behind your point. Fix them on your most visited pages first.
Images, scripts, stylesheets, icons and embeds are listed separately as resources, so a missing image is never counted as a broken link. They still matter: a broken stylesheet or script can break the layout or a form, and a missing image leaves a gap on the page.
How this checker tests each link
Knowing exactly how the check runs helps you read the results correctly. We download the page you enter, then up to 10 internal HTML pages linked from it, skipping files such as PDFs and images, admin, logout, cart and checkout pages, and any path that robots.txt disallows. On each page we collect the href of every link and the address of every image (including lazy-loaded data-src images), script, stylesheet, icon, iframe, video and audio source. Relative URLs become full URLs and duplicates are dropped, so a link that appears on all 11 pages is tested once and lists the pages it was found on.
Links starting with mailto: and tel: are counted in the summary but not requested, because they are not web pages. Fragments (#section) and javascript: links are skipped. Links marked rel="nofollow", "sponsored" or "ugc" are still checked, since visitors can click them, and the flag is shown in the table.
Up to 150 links and 50 resources are tested per run. Each is requested in parallel with a HEAD request, which asks for the status code without downloading the page. Redirects are followed for up to five hops, and every hop is checked against our private-network guard. Any URL that answers 400, 403, 404, 405, 406, 500, 501 or 503 gets a second try with a normal GET, because many servers answer HEAD requests badly. Each request has 6 seconds to answer, and the whole check stops starting new requests at about 25 seconds, marking anything left as not checked instead of guessing.
Links added to the page later by JavaScript are not seen, because we read the HTML the server sends. If your navigation is built entirely in JavaScript, its links may not appear in the report.
How to fix broken links in WordPress, Shopify and other platforms
For internal links, the best fix is always to update the link itself so it points straight at the correct live URL. If the old address may have been linked from other websites, bookmarked or indexed, also add a permanent 301 redirect from the old URL to the closest matching page. Where to do that depends on your platform.
- WordPress: edit the post or page and fix the link in the block editor. Menu links live under Appearance, Menus in classic themes, or in the Navigation block of the Site Editor in block themes. For many old URLs, a redirect plugin such as Redirection, or the redirect manager in an SEO plugin you already use, adds 301s from the dashboard.
- Shopify: when you change a product, collection or page handle, tick the option to create a URL redirect from the old address. For other old URLs, add them in the URL redirects section of the admin, next to your navigation menus.
- Wix: use the URL Redirect Manager in the SEO settings to send old paths to new pages.
- Squarespace: add lines such as /old-page -> /new-page 301 under URL mappings in the developer tools settings.
- Webflow: add 301 redirects in the Publishing tab of the site settings, then republish.
- Apache or Nginx hosting: add a Redirect 301 line to .htaccess, or a location block with return 301 in the Nginx config, as in the examples below.
- Behind Cloudflare: a single redirect rule or a bulk redirect list can send old paths to new ones at the edge, before the request reaches your server.
Broken backlinks: find them and win them back
A broken backlink is a link from another website to a page on your site that no longer exists. Those links still arrive, but they land on a 404, so the visitor bounces and the link does nothing for you. Recovering them is one of the cheapest SEO wins available, because the link already exists; you only need to give it somewhere to land.
This checker tests the links on pages you enter. It does not have an index of the web, so it cannot list every site that links to you. Free data from Google and Bing can, and the steps below turn it into a short fix list.
- In Google Search Console, open the Links report and export the Top linked pages list, which shows the pages on your site that other sites link to.
- In the Page indexing report, open the Not found (404) group. Inspecting a URL can show the referring page where Google found a link to it.
- Bing Webmaster Tools has a backlinks report you can export in the same way.
- Paste the target URLs into the Bulk Redirect Checker, or test single URLs with the HTTP status code checker, to see which now return 404.
- For each one, restore the page, or add a 301 redirect to the closest matching live page. Avoid sending them all to the home page.
- Check again a few days later to confirm the old URLs now redirect in one hop.
Soft 404s: broken pages a status code cannot reveal
A soft 404 is a page that answers 200 OK but has nothing useful on it. Typical examples are an empty search or category page, a product page that says "no longer available" with no alternatives, or a theme template that shows "page not found" text while still sending a 200 status. Google also tends to treat a redirect to an irrelevant page, such as every old URL going to the home page, as a soft 404.
Any status code checker, including this one, sees a soft 404 as a working link, because the code says everything is fine. Google reports the soft 404s it detects in the Page indexing report in Search Console. The fix is either to return a real 404 or 410 for content that is gone, or to put real content back on the page, or to redirect to a genuinely equivalent page.
How often to check for broken links
There is no single right schedule, because links break when things change. A small brochure site that rarely changes needs far fewer checks than a shop or blog that adds and removes pages every week.
- After any redesign, migration, change of URL structure, domain move or switch to https: check straight away.
- After deleting or renaming products, categories or posts in bulk: check the pages that linked to them.
- Monthly for your home page, main service or category pages and most visited posts.
- Quarterly for older content with many outbound links, such as resource lists and guides, because other sites change over time.
- Whenever Search Console reports new Not found (404) pages.
Dealing with broken outbound links
You cannot fix another website, but you can choose where you send people. When an external link fails, search for the page on the same site in case it simply moved, and update your link to the new address. If the content has gone, look for an equally good source, or check whether an archived copy exists and decide if that serves the reader.
If neither works, remove the link and adjust the sentence so it still reads naturally. It is also worth glancing at old outbound links that still work. A domain that has expired and been bought by someone else may return a healthy 200 status while showing ads or a parked page, and a status code cannot tell you that.
Treat 401, 403 and 429 results with care. Large platforms such as social networks and marketplaces often block automated checks while working perfectly for real visitors. Open these in a browser before deciding they are broken.
How this tool compares with the W3C Link Checker
The W3C Link Checker at validator.w3.org/checklink is a long-standing free tool from the World Wide Web Consortium. Its documentation says it checks links, anchors and referenced objects in a web page, a CSS style sheet or a whole site, and it can follow links recursively to a depth you choose. It also checks that fragments such as #pricing exist on the target page.
The W3C checker is deliberately polite: its documentation says it honors robots exclusion rules and waits at least one second between requests to each server, which makes large checks slow. Our broken link checker is built for a quick answer. It scans one level deep (your page plus up to 10 internal pages it links to), tests links in parallel, separates internal, external, blocked and timed-out links, and checks images and other resources in the same run. It does not check whether #fragments exist on the target page, so use the W3C Link Checker when you need that.
Checking a whole website
Each free run covers the page you enter and up to 10 internal pages linked from it. Links in menus and footers repeat on every page, so a run from the home page already covers the links most likely to break site-wide. For more coverage, run it again from a category page, a long blog post or a resource page.
For every page of a site, the site crawl on our Pro and Agency plans follows internal links across up to 100 or 500 pages. It lists internal URLs that return an error and, for each one, the pages that link to it and the anchor text used.
If you prefer to run checks yourself, open-source command-line link checkers such as lychee and linkinator can test a sitemap or crawl a site on a schedule, for example from a CI pipeline.
Examples you can copy
Apache .htaccess: permanently redirect individual old URLs to their replacements
Redirect 301 /old-services/ https://www.example.com/services/
Redirect 301 /blog/2019/summer-offer https://www.example.com/offers/
Nginx: redirect a removed page and a whole renamed folder
location = /old-services/ {
return 301 https://www.example.com/services/;
}
location ^~ /news/ {
rewrite ^/news/(.*)$ https://www.example.com/blog/$1 permanent;
}
Squarespace URL mappings: one old path per line
/old-services -> /services 301
/blog/summer-offer -> /offers 301
A broken internal link and its corrected version in HTML
<!-- Broken: page was renamed -->
<a href="/our-servces/">View our services</a>
<!-- Fixed: points straight at the live URL -->
<a href="https://www.example.com/services/">View our services</a>
A lazy-loaded image the checker reads from data-src
<img src="data:image/gif;base64,R0lGODlhAQABAAAAACw="
data-src="/images/team-photo.jpg"
alt="Our team">
Common mistakes to avoid
Redirecting every dead page to the home page
Google often treats irrelevant redirects as soft 404s, and visitors still do not find what they wanted. Redirect to the closest matching page, or let truly removed content return 404 or 410.
Relying on redirects instead of updating links
Leaving internal links pointing at old URLs means every click and crawl goes through an extra hop. Use the redirect filter to find them and update the link in the content or menu.
Deleting pages without a plan
Removing products or posts in bulk creates broken links across the site overnight. Decide on redirects before you delete, then check affected pages.
Removing links that are only blocked or slow
A 403 or 429 from a large platform usually means it refused an automated check, and a timeout can be a slow server. Open them in a browser before taking action.
Forgetting images and files
A renamed media folder or deleted upload leaves broken images on old posts. Check the resources filter as well as the links.
Forgetting links in menus and footers
Links in navigation repeat on every page, so one bad menu link becomes hundreds of broken links. The section column shows when a broken link sits in the menu or footer.
Frequently asked questions
Update the link to the right URL. If the page moved, also add a 301 redirect from the old address so links from other sites still work.
Some sites, such as LinkedIn and Amazon, refuse requests that are not from a normal browser. That is not a problem for your visitors.
Each free run covers the page you enter plus up to 10 internal pages it links to. To check every page, the site crawl on the Pro (up to 100 pages) and Agency (up to 500 pages) plans follows your internal links across the site and flags pages that return errors.
Yes. Every link and resource is requested and its HTTP status is shown, so 404 (not found) and 410 (gone) links are listed as broken, alongside other 4xx and 5xx errors. To see whether a single URL returns 404 or redirects, use the Redirect Checker.
The W3C Link Checker is a free, open-source validator that checks the links on a page, optionally recursively. This checker also covers images, scripts and stylesheets, splits internal from external errors, separates timeouts and sites that block bots, shows anchor text and exports a CSV.
No. A broken backlink is a link on another site pointing to a page of yours that no longer exists, and finding those needs a backlink index. This tool checks the links on your own pages. To recover broken backlinks, find old URLs that get traffic or links in Search Console and 301 redirect them to the closest live page.
A handful will not cause a ranking penalty, but they waste crawl activity and stop internal link value from reaching your pages. Many broken links also make a site look poorly maintained to visitors.
Both tell search engines the page is not there. A 410 says it was removed deliberately, but either is acceptable.
Yes. Images (including lazy-loaded data-src images), scripts, stylesheets, icons, iframes and video or audio sources are checked and listed as resources, separately from links, so a missing image is never counted as a broken link.
The page you enter plus up to 10 internal HTML pages linked from it, respecting robots.txt. Each unique link is tested once, however many of those pages it appears on.
It works, but goes through at least one redirect first. The table shows the first redirect code and the final target. For internal links, point the href at the final URL so visitors and crawlers skip the hop.
The server did not answer within 6 seconds. That can mean it is down, but often it is just slow or overloaded, so open the link yourself before removing it.
Yes. They are tested like any other link, because visitors can click them, and the rel value is shown next to the link in the table.
Yes. Export CSV downloads every row with its status, final URL, anchor text, type, rel flags, section and the pages it was found on, ready for a spreadsheet or a ticket. Copy puts the same table on your clipboard.
Not directly, because it checks the links on pages you enter. Export your top linked pages from Google Search Console or Bing Webmaster Tools, test them with the Bulk Redirect Checker, and 301-redirect any that return 404.
Use our HTTP status code checker. It requests one URL, follows every redirect and shows the final status code, such as 200, 301 or 404.
Each run has a time limit of about 25 seconds so results come back quickly. On a slow site we stop starting new requests before the limit and mark the rest as not checked, rather than guessing. Run the check again, or start from a page with fewer links.
A broken link sits on your page and points at something that fails. A broken backlink sits on another website and points at a page on your site that no longer exists. You fix the first by editing your page and the second by restoring the page or adding a 301 redirect.
Learn more
- Automate Broken Link Checks: Scheduled Crawls and GitHub Actions How to run broken link checks automatically with lychee or linkinator on a GitHub Actions schedule, check external links politely and fix them in bulk.
- Soft 404 Errors Explained: What They Mean and How to Fix Them Soft 404 errors in Search Console explained: why Google flags thin, empty and out-of-stock pages, and step-by-step fixes for each cause, including Shopify.
- 301 vs 302 Redirects (and 307, 308): Which to Use and When 301 vs 302 vs 307 vs 308 redirects explained: how Google treats each, when to use them, and how to set them up in .htaccess, Nginx, Cloudflare and Shopify.
- How to Find and Fix Broken Links and Redirect Chains Find broken internal links, soft 404s and redirect chains, then fix them with copy-paste Apache and Nginx rules that send users and Googlebot in one hop.
- Agency Client Reporting Workflow: From Data Pull to Sent Report A step-by-step agency client reporting workflow: pull data, flag anomalies, draft commentary, review and send, with clear owners and the checks people keep.
- Editorial Workflow: From Content Calendar to Published Post A step-by-step editorial workflow for publishers and creators: ideas, calendar, brief, draft, edit, fact-check, metadata, scheduling and post-publish checks.
- Website Launch QA Process: A Repeatable Workflow for Web Agencies A website launch QA process for agencies: staging freeze, automated checks, triage, client sign-off, go-live window and post-launch rechecks, with clear gates.
- WordPress 7.2 Beta 1: What Site Owners Should Test Before December WordPress 7.2 Beta 1 arrived on October 20, 2026, ahead of a December 8 release. What changes for editors, admin speed and developers, and how to test safely.
- Automated Website Reports by Email: How to Set Them Up How to get automated website reports by email: scheduled audits, Search Console summaries and uptime alerts, what each should contain and how often to send.
- Broken Link Checker for SharePoint: Online and 2013 Options Is there a broken link checker in SharePoint? What Microsoft offers natively, plus community tools, scripts and crawlers for SharePoint Online and 2013.
- White Label SEO Reports: What to Include and How to Use Them What a white label SEO report should include, how agencies use white label website audits to win and keep clients, and the honesty rules that keep them credible.
- Website Audit API: A Developer Guide to Scans and Webhooks A developer's guide to using a site audit API: queue scans, poll or use webhooks, verify HMAC signatures, handle rate limits and run crawls and batches safely.
Free website audit
See how your site scores, free
Speed, SEO, DNS, email (SPF/DKIM/DMARC) and security in one scan, with a prioritised fix list.