“We noticed you may be using an ad blocker. SEO Site Checker relies on ads to keep our SEO tools free. Please consider disabling your ad blocker to support us - thank you!”“We noticed you may be using an ad blocker. SEO Site Checker relies on ads to keep our SEO tools free. Please consider disabling your ad blocker to support us - thank you!”
Find broken links, images and media on a web page. Results are grouped by the dead address, with the anchor text and place of every link, and can be copied or downloaded as CSV.
Results
The tiles count different addresses. An address found in several places counts once.
What this check can and cannot see
One page per run. It reads the links on the page you enter and does not follow them to other pages.
It reads the HTML the server sends. Links, images or content that JavaScript adds after the page loads are not seen.
Some websites refuse automated checks. When a website answers with a refusal code or a protection page, the address is listed as could not verify, not as broken.
The result is a snapshot from one server at one moment. A site can answer a browser, another country or another day differently.
A page that answers 200 but shows a "not found" message in its text is not detected.
It checks the href of links and image maps, and the src of images, video and audio. Scripts, stylesheets, frames and embeds are not checked.
Line numbers count the lines of the HTML the server sent. They are left out for links past line 65,534.
To be polite to the websites it checks, it tests one address at a time, waits between requests to the same website, stops asking a website that tells it to slow down, and skips a website whose robots.txt disallows SEOSiteCheckerBot by name. It reads the robots.txt of the website each link points at, not of the places a redirect leads to. Checking is paced, so 100 addresses on one website can take one to two minutes.
Quick answer: A broken link checker reads one web page and tests each link, image and media file on it to find the dead ones. This one lists each dead address once, with the places that point at it, and says so when it could not verify one: check the links on a page now.
This online broken link checker is free, with no sign-up. As a broken link finder, it sorts the addresses it checks into four groups: Working, Redirects, Broken and Could not verify. It reads one page per run.
How to Check Links on a Page
Type or paste one page into Page address. Leave out the https if you like: example.com/page works.
Leave Also check images and media files ticked to test images, video and audio as well, or untick it for links only.
Press Check links. A line such as Checked 23 of 87 addresses shows progress, results appear as they arrive, and Stop the check ends the run early.
Read the results, then press Check another page to start over.
A short page finishes in well under a minute. One near the 100 address limit takes a minute or two, depending on how slowly other websites answer.
Keep the tab open. If the page stops checking in with our server for two minutes, the check stops and shows what it finished; reloading picks up a running check.
We group by the dead address, because one address linked from five places is one thing to repair. Each address is tested once, and its card lists up to 25 places that link to it, with type, anchor text, page area and line; the rest read "N more places are not listed." Cards sort broken first, most places first, 40 at a time with Show 40 more.
The headline counts places and the tiles count addresses: a test page we built read "5 URLs cause 7 broken links on this page." Working is an address that answered with a success code. Redirects answered after one or more hops, and the card lists the redirect chain. Could not verify means we cannot tell, and the card says why.
Broken is kept for confirmed dead addresses, and each missing #section anchor adds one more, so the tiles can exceed the addresses checked. We made Broken hard to earn, and we prefer a slower check to a false alarm.
A 404, a 410 or a server error counts only after a GET request agrees with the first HEAD request (HEAD asks for headers only). A name that does not resolve, or a refused connection, is tried twice, five seconds apart, and is not called Broken if that website answered earlier. A refusal or a protection page is never called Broken.
A Real Check: The Links on Our Own Pages
On November 2, 2026 we ran this free broken link checker on three pages of our own site, one run each, from one server.
Page
Different addresses checked
Working
Redirects
Could not verify
Broken
Home page
82
81
1
0
0
URL redirects guide
59
58
1
0
0
Technical SEO checklist post
100 of 101
93
5
2
0
No dead links turned up. The one redirect on the first two pages is our own social profile link: a 301, a 302, then a 200 login page. It reads Redirects, which only says the address still answers; where it lands is your call.
The checklist post held 101 addresses, one over the 100 a run tests. Besides that link it has four redirects: an outside guidelines page that moved by a permanent 301 (worth updating, not broken) and three share links. Two other share links read Could not verify, one Protection page shown and one Refused our check (403).
Each run took around a minute, give or take. On November 6, 2026 each page showed one more Could not verify than the table: a second profile link of ours, to an outside company page, now met a protection page. Next, run the same check on your own page and read it as a snapshot.
404 Checker Results: What Each Status Means and What to Do
Every address a run tests gets a 404 check, and the table turns each card label into a next step.
Result
What it means
What to do
Not found (404)
A GET request got 404 Not Found: the page or file is gone or the address is wrong.
Fix the typo, restore the page or link the closest live one.
Gone (410)
The server says the address was removed on purpose.
Remove the link or swap in a current source.
Server error (for example 500)
A 500 or 503 means the server failed, perhaps briefly.
Check again later before changing anything.
Website name not found, Connection failed
A DNS error or a refused connection, twice, five seconds apart.
Try a browser. If it fails there too, replace or remove the link; if it loads, the website may block our server.
Redirect loop
The address sends visitors around in circles.
Replace the link.
Redirects
It works after one or more redirects (a 301 redirect, a 302 redirect); the card lists each step.
If it is permanent (301 Moved Permanently or 308) and the final address is the page you meant, update the link.
Could not verify
The website refused the check (403 Forbidden), showed a protection page, said 429 Too Many Requests, did not answer within 8 seconds (a timeout), has a certificate we do not accept (an SSL certificate error) or asks not to be checked.
Open it in a browser. Do not delete the link on this result alone.
RFC 9110 on 410 Gone says a 410 signals that the owners want remote links removed, while a 404 does not say whether the loss is temporary or permanent. Google's HTTP status code documentation, last updated February 4, 2026, says URLs that return a 4xx status other than 429 are not indexed and indexed ones are removed, while 429 and 5xx make its crawlers slow down.
Broken Image Checker, Anchor Links and http Links
With Also check images and media files ticked, images, video and audio are tested like links, so a missing picture shows up as a Not found (404) card tagged Image.
An anchor link such as #section is checked against the real ids on the same page; the part after the # is the URL fragment. Anchor not found means no element or named anchor has that id. An id a script adds later is not seen, and an anchor on another page is not checked.
A link that starts with http:// on an https page gets the badge "http on https page", and the filter "Only http addresses" lists them. Browsers may warn about it or block an image that uses it; see our guide to mixed content.
Filter, Copy and Download the Results as CSV
The buttons All, Broken, Redirects, Could not verify and Working show counts, the Type menu filters by kind, and Only http addresses keeps the http ones. Broken plus Images lists the missing pictures.
Copy broken links puts a plain text list on your clipboard: each dead address, its reason and up to 25 of its places. Download CSV saves a comma separated values (CSV) file that your browser builds on your device, not our server. It has one row per listed place and twelve columns: result, http_status, reason, address, final_address, redirects, type, anchor_text, page_area, line, http_on_https_page and found_on_page.
The file is UTF-8 with a byte order mark, so accents survive. A cell starting with an equals sign, plus sign, minus sign or at sign gets a leading quote, so a spreadsheet does not run it as a formula. One flaw: the file holds every result, whatever filter is active, in the order the checker found them, not the screen's, so sort by the result column (ok, redirect, broken or unverified).
What This Website Link Checker Cannot See
This broken link checker covers one page per run, and it must be a web page, not a sitemap, PDF or image. Each internal link and external link on it is tested, but the pages behind them are not read.
It reads the HTML the server sends and does not run JavaScript, so links a script adds after load are not seen, and a page built entirely with scripts can show few links or none. Stylesheets, frames, embeds, srcset and lazy load attributes are not tested either.
Google's guidance on crawlable links, last updated December 10, 2025, says Google can generally crawl a link only if it is an anchor element with an href attribute, and crawls one that JavaScript inserts when it uses that markup. This checker never renders the page, so it is no stand-in for search engines. The Website Source Code Viewer shows the HTML we read.
Every result is a snapshot from one server at one moment, and a website can answer a browser differently. Soft 404s are not detected: a page that answers 200 but says "not found" reads Working.
The cap is 100 different addresses per run, or 300 with a free account. Links come first, then images and media files, and the report says how many were left out. A check stops starting requests after 4 minutes without an account and 9 with one, and untested addresses read Could not verify.
How the Checker Treats the Websites It Checks
The checker's requests carry the user agent SEOSiteCheckerBot. It tests one address at a time, with at least a quarter of a second between two requests to the same website.
It sends HEAD first, and a small GET only when HEAD fails or comes back with an error. A website that answers 429 is paused, and a second 429 ends its check. Three timeouts in a row and 90 seconds of total waiting end it too.
It reads each website's robots.txt before testing its addresses. An address that a group naming SEOSiteCheckerBot disallows is not requested and reads Website asks not to be checked; the other addresses are still tested. A group for all crawlers does not count, and the page you type is not subject to robots.txt. Test your own file with the Robots.txt Tester.
How to Fix a Broken Link Once You Find It
Start with the dead address that lists the most places, because fixing it clears the most links:
A typo or moved page: fix the href attribute, using the final address for a permanent redirect.
A replacement page exists: point the link at it or redirect the old address (see our guide to URL redirects).
No replacement: remove the link, keep the words.
An outside page is gone (a 410 or an expired domain): swap in a current source or drop the link.
A page of your own that people still want: restore or redirect it, and make the 404 page useful (see the custom 404 page guide).
For the In-page Links row of our free SEO audit, see how our report tests links and how to repair them; this checker is the longer list for one page. After your edit, check for broken links again and confirm the card is gone.
Related Free Tools
Three tools pick up where this one stops.
Redirect Checker: follow one address hop by hop and read each response code.
XML Sitemap Generator: list your pages, then check the important ones here one at a time.
Frequently Asked Questions
Frequently Asked Questions (FAQs) is a list of common questions and answers provided to quickly address common concerns or inquiries.
What is a broken link?
A broken link is a hyperlink whose address no longer reaches the page or file it was meant to: a deleted page, a mistyped URL, a missing image or an expired domain (link rot). A redirect that lands on a working page is not broken.
How do I find broken links on a web page?
Type the page into Page address, press Check links and read the Broken group, where each dead address appears once with its places. One run covers one page, so a job like 'check website for broken links' becomes one run per page.
Is a redirect a broken link?
No. A redirect that ends on a working page is listed under Redirects; a permanent one (301 or 308) is worth updating. One ending on a missing page, a server error, a loop or a missing name is Broken, and a refusal or protection page reads Could not verify.
Why does a link show as could not verify when it opens in my browser?
Many websites refuse automated requests, show a protection page or ask visitors to sign in. We cannot tell whether the link works for a visitor, so we say Could not verify and name the reason, such as Refused our check (403). Open it in a browser.
Are broken links bad for SEO?
Not as a penalty that Google documents. Google's HTTP status code page, last updated February 4, 2026, covers URLs that return errors, not links pointing at them: 4xx URLs other than 429 are not indexed. Our view, not a rule: a dead end frustrates visitors.
Can it find broken links on a whole website, or only one page?
One page per run. It tests the addresses on that page, up to 100 (300 with a free account), but does not read the pages behind them, so it will not crawl a site. To find broken links on a website, run it per page that matters.
Will it find links added by JavaScript or soft 404 pages?
No to both. A script that builds links after the page loads is invisible here, because we read the HTML as the server sends it. A soft 404, a page that answers 200 but says not found, is reported as Working, so check those by hand.
How many links can I check at once, and does it cost anything?
It is free. One run tests up to 100 different addresses without an account and up to 300 with a free account. An address found many times counts once, its places are listed up to 25 per address, and the report counts what was left out.
Can the websites I check see or block the checker?
Yes. Requests send the user agent SEOSiteCheckerBot, so they appear in a log under that name. The checker does not request an address that a robots.txt group naming SEOSiteCheckerBot disallows. A site that blocks the user agent usually shows as Refused our check (403) or Protection page shown.
How often should I check for broken links?
There is no universal schedule. Run it after a content update, a page rename or a site migration, and again before a launch. Outside websites vanish without notice. A habit that costs little: check a page that earns traffic before and after you edit it.
We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. You consent to our cookies if you continue to use our website.
Install SEO Site CheckerFree SEO tools - always in your pocket.