Free broken link checker
Open your page in a real Chrome browser, test the links on it, find scripts, images and other files that fail to load, catch JavaScript errors, and review the page's forms — without ever submitting them.
What this tool checks
Links to your own pages
Links on the same site as the page (same protocol and domain), collected from the page as the browser renders it, with links in the navigation tested first.
Up to 12 internal and 5 external links
The first 12 unique links to your own pages and the first 5 links to other websites. Links to your own subdomains, email, phone and javascript: links are skipped, and #section links count as the page they belong to.
Broken means an error or no answer
An internal link is broken when it returns 400 or higher or doesn't answer within 8 seconds. Redirects are followed one hop at a time (up to 5). For other websites, 401, 403, 405, 429 and 999 count as inconclusive, because many sites refuse automated visitors.
JavaScript errors
Uncaught errors thrown while the page loads, which often mean a menu, form or slider doesn't work.
Console errors
Errors the page logs to the browser console.
Form checks (never submitted)
Each form's markup: password fields on an HTTP page or sent over http://, passwords sent with GET, placeholders used as the only label, missing labels, input types, autocomplete hints, external actions, a CSRF-style token and a submit button.
Files that fail to load
Your own scripts, stylesheets, images and fonts that fail or return an error status while the page loads, and images that load broken.
How the check works
We load the page in headless Chromium, wait for it to finish loading, and collect the links from the page as the browser sees it — so links added by JavaScript are included. Each link gets a quick HEAD request, falling back to GET when a server doesn't allow HEAD. Redirects are followed by hand, and every hop is checked to be a public address before it's requested.
Forms are never submitted, clicked, focused or filled in. We read their HTML, and ask the browser once — without touching any field — whether it would block an empty submission. The score starts at 100: each broken internal link costs 10 points (at most 40), each uncaught JavaScript error 10 (at most 30), each console error 5 (at most 20), each of your own files that fails to load 4 (at most 20), a password form on HTTP, posting to http:// or using GET 10 each, and a placeholder used as the only label 3. Broken external links, broken images and the other form notes are informational and cost nothing.
This is a quick check of one page. To check links across many pages, create a free account and run a site scan, which follows links from page to page and also reports links that point to redirects.
Evidence you'll see
Each broken link is listed with its URL, the status code it returned (or “no response”) and its link text. Failed files show their URL and status, JavaScript and console errors show the first messages, and form findings name the form and the fields involved — field names and labels only, never anything typed. Links we couldn't test, such as private addresses, are marked as not tested.
What this tool does not check
Every link on the page
Only the first 12 internal and 5 external links are tested. Links on other pages need a site scan.
Sites that block automated visitors
Some sites refuse checkers with 403 or 429. We treat those as inconclusive rather than broken.
Whether your forms actually work
Forms are never submitted, so we can't test what happens after sending, server-side validation, CSRF protection or spam filtering.
Buttons and interactions
Nothing is clicked, so errors that happen only after a tap — opening a menu, adding to cart — aren't caught.
Common problems we find
Pages that were moved or deleted
Old blog posts, discontinued products or renamed pages that still have links pointing to them.
Typos in links
A missing letter or an extra slash in a hand-typed link.
Links left over from a redesign
Old URL structures or links to a staging copy of the site.
Server errors
Pages that return a 500 error because of a broken plugin or template.
JavaScript that breaks on load
A missing library, a script loaded in the wrong order, or code that expects an element that isn't on this page.
Files that fail to load
Images, fonts or scripts that return 404 after a redesign or a plugin update.
Insecure or unlabelled forms
Login forms on pages still served over HTTP, search boxes that rely on placeholder text instead of a label, and email fields using type="text".
How to fix them
Update or remove the link
If the page moved, change the link to its new address. If it's gone for good, remove the link or point it to the closest useful page.
Redirect old addresses
Set up a permanent (301) redirect from the old URL to the new one so bookmarks and links from other sites keep working too.
Fix JavaScript errors from the top
Open the page, then your browser's developer tools (F12) and the Console tab. The first error often causes the rest, so fix that one first.
Re-check after publishing
Run the check again after changes, and after moving or deleting pages.
Tidy up your forms
Serve and submit forms over HTTPS, use method="post" for anything with a password, give every field a visible label, and use the right type and autocomplete values (email, tel, current-password) so phones and password managers help.
Frequently asked questions
Does it check links to other websites?
Yes, a few: the first 5 links to other websites. Because many sites refuse automated visitors, statuses such as 403 or 429 are treated as inconclusive, and broken external links are reported for information without lowering your score. Links to your own subdomains aren't tested.
Why only 12 internal links?
It keeps the free check fast: each link is a separate request. Links in your navigation are tested first, then the rest in page order. A site scan with a free account covers more pages and links.
A link is reported as broken, but it works in my browser. Why?
Some servers block automated visitors, require you to be signed in, or rate-limit requests, and return an error such as 403 or 429 to our checker. If the page works for real visitors, you can ignore it — or ask your host to allow the check.
Does it submit my forms or click buttons?
No. Forms are never submitted, clicked, focused or filled in, so nothing is sent or changed on your site. We read each form's HTML and the browser's own validation state, and report field names and labels — never values.
Why do console errors lower the score?
They often point to something that doesn't work for visitors, like a failed script. They cost less than broken links or uncaught errors, and the report shows the first messages so you can find them.
Helpful guides
- How to fix broken links on your website (and stop new ones appearing)Where broken links come from, how to find them, how to choose between updating, redirecting and removing each one, and how to stop them coming back.Read the guide
- How to check your website's forms: labels, input types, HTTPS and CSRFForms are where visitors hand you their data. What to check in every form, how to fix the common problems, and why Rudra reviews forms without ever submitting them.Read the guide
Related free tools
- SEO CheckerCheck your page title, description, headings, image descriptions, canonical URL, robots.txt and sitemap.Open SEO Checker
- Website AuditCheck one page for SEO, speed, mobile, accessibility, security, broken links and server problems in a single report.Open Website Audit
- Website Security CheckerCheck HTTPS, your SSL certificate and the security headers your server sends.Open Website Security Checker
Rather have someone fix it for you?
These checks are free and so are the guides. If you'd prefer a person to make the changes, our team offers paid help.