Broken Link Checker: 404s, No Login
Pricing
from $0.70 / 1,000 page checkeds
Broken Link Checker: 404s, No Login
Find broken links on your website with a bulk broken link checker. $1.00 per 1,000 pages checked, links free. Crawls your pages and checks every internal and external link, image, script and stylesheet once. Returns status code, redirect chain, source pages and anchor text. MCP-ready, no login.
Pricing
from $0.70 / 1,000 page checkeds
Rating
0.0
(0)
Developer
Don Mangu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Broken Link Checker
Broken Link Checker finds broken links on your website. It crawls your pages over plain HTTP, checks every internal and external link once, and also checks images, scripts, stylesheets and icons. For each problem link you get the HTTP status code, the redirect chain, the pages that contain it and the anchor text, so you know exactly what to fix and where.
Use it for a one-off website audit, before and after a migration or redesign, or on a schedule so a dead link never sits on your site for weeks.
What does Broken Link Checker find?
| Category | What it means |
|---|---|
broken | 404, 410, 500 and other 4xx or 5xx answers, redirect loops, malformed link addresses and domains that no longer exist |
unreachable | The server timed out or refused the connection three times |
restricted | 401, 403, 429 or 999: the server refused an automated check. The link may still work in a browser, so check it by hand |
redirected | The link works only through one or more redirects. Point it to the final address to save a hop |
not_checked | Not requested: the target's robots.txt disallows it, or the target site does not allow automated checks |
ok | Answered 2xx directly (listed only when you turn on "List working links too") |
How to check a website for broken links
- Enter your website in Start URLs, as a domain (
example.com) or a full URL. - Set Maximum pages per website. Start with 10 to see the output, then raise it.
- Choose whether to check external links and images, scripts and stylesheets. Both are on by default.
- Click Start. A 100-page website usually finishes in 5 to 15 minutes, because the Actor paces its requests so your server is never under load.
- Open the Problem links view and sort by
foundOnCountto fix the links that appear on the most pages first. Export to CSV, Excel or JSON, or read the dataset through the API.
To keep a site clean, save the input as a task and add a weekly schedule in Apify.
How much does it cost to check links?
Broken Link Checker uses pay-per-event pricing. You pay $0.001 per page crawled on the Free plan ($1.00 per 1,000 pages; $0.0009 on Starter, $0.0008 on Scale, $0.0007 on Business), and every link on that page is checked at no extra cost. Link rows and the site summary are free.
Worked example: a website with 100 pages and about 600 unique links costs 100 x $0.001 = $0.10 on the Free plan, plus the small Apify start fee. A tool that charges $0.001 per link would charge about $0.60 for the same site.
You can set a spending limit on the run. The Actor reads it before crawling and never crawls more pages than you pay for.
Input example
{"startUrls": ["https://www.example.com/"],"maxPagesPerSite": 200,"checkExternalLinks": true,"checkAssets": true,"reportRedirects": true}
Output example
One row per problem link:
{"rowType": "link","url": "https://www.example.com/old-pricing","category": "broken","status": 404,"finalUrl": "https://www.example.com/old-pricing","redirectChain": [],"isInternal": true,"linkType": "link","error": null,"foundOnCount": 12,"foundOn": [{ "pageUrl": "https://www.example.com/", "anchorText": "See pricing" }]}
You also get one row per crawled page (rowType: "page") with its link counts and up to 50 problem links, and one summary row per website (rowType: "site") with totals and the reason the check stopped, if it stopped early.
How it works
- It starts at your URL and follows links on the same host (with or without
www.), up to your page limit. - Links found on those pages are each checked once per run, even if they appear on hundreds of pages. Pages beyond the limit are still checked as links.
- External links get a HEAD request first and a GET only when HEAD is refused, so the check is light on other websites.
- It obeys robots.txt on every host, including the Crawl-delay of your own site (up to 10 seconds), and waits at least 0.25 s between requests to your site and 1 s between requests to any external host.
- It identifies itself with an honest user agent that includes a contact address.
Related Actors
- Sitemap URL Extractor API: Use it to list every page URL of a website from its XML sitemaps.
- AI Crawler Access Audit: Use it to check which AI crawlers a website allows or blocks in robots.txt.
- Domain Authority Checker: Use it to check domain authority for a bulk list of domains.
- Website Screenshot API: Use it to capture full-page screenshots or PDFs of a list of URLs.
FAQ
Is it legal to check links on a website?
Checking the links on your own website, or on a public website you have permission to audit, is a normal part of site maintenance. The Actor reads only public pages, needs no login, collects no personal data, and respects robots.txt. It does not crawl sites whose terms forbid automated access, such as LinkedIn, Facebook, Instagram, X, Reddit, TikTok, Amazon and Google. Links pointing to those sites are listed as not_checked without a request.
Why is a link "restricted" when it works in my browser? Some servers refuse automated requests with 403 or 999. The Actor does not try to get around that. Open those links by hand once.
Does it render JavaScript? No. It reads the HTML your server sends. Links that exist only after JavaScript runs are not found. Most websites put their navigation and content links in the HTML.
Can it check a page list instead of crawling? Not in this version. Set Maximum pages per website to 1 to check only the links on the start page.
The run stopped early. Why?
Read stoppedReason in the site row: the page limit, your spending limit, or the website refusing requests (three block signals in a row). The Actor stops instead of pushing harder.
Found a problem or need a feature? Open an issue on the Issues tab and we will reply within a day.