Broken Link Checker — Find 404s & Dead Links on Your Website
Pricing
from $1.00 / 1,000 page crawleds
Broken Link Checker — Find 404s & Dead Links on Your Website
Crawl your website and find every broken link, missing image, dead script/stylesheet, 404, 5xx, DNS/SSL error and redirect loop — with the exact pages and anchor text where each appears. Fast HTTP-only crawler, respects robots.txt, sitemap support.
Pricing
from $1.00 / 1,000 page crawleds
Rating
0.0
(0)
Developer
North Eng
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Broken Link Checker — find 404s, dead links and missing images on your website
Broken Link Checker crawls your website and checks every link, image, script and stylesheet it finds. You get a clean list of what is broken (404, 410, 5xx), what errors out (DNS failure, SSL error, timeout, redirect loop), and — most importantly — the exact page and anchor text where each broken link appears, so you can fix it in minutes.
It is a fast HTTP-only crawler (no browser), so it is cheap to run on sites with hundreds or thousands of pages.
What it checks
<a href>and<area href>links — internal and external- Images (
<img src>), scripts, stylesheets, icons, preload and manifest links <iframe>,<video>,<audio>and<source>URLs- Redirects: followed hop-by-hop; redirect loops and chains longer than 10 hops are reported
- Malformed URLs in your HTML (e.g.
http://[bad) are reported asINVALID_URL - Optional: pages listed in your sitemap.xml (finds orphan pages that nothing links to)
Why use it
- SEO: broken links waste crawl budget and leak link equity; broken images hurt UX signals.
- Before a launch or migration: run it on staging to catch links still pointing at old paths.
- Monitoring: schedule it weekly in Apify and get notified (email, Slack, webhook) when new broken links appear.
- Agencies: produce a broken-link report for a client in one run, export as CSV/Excel.
How to use
- Enter one or more Website URLs (usually your homepage).
- Set Max pages — this caps both crawl size and cost.
- Click Start. Results appear in the Broken links table as soon as they are found.
- Export as CSV, Excel, JSON or HTML, or fetch via the Apify API.
Only crawl websites you own or have permission to audit. The Actor respects robots.txt for crawling by default and sends a clear User-Agent.
Input
| Field | Default | What it does |
|---|---|---|
startUrls | — | Where to start. All same-domain pages reachable by links are crawled. |
maxPages | 100 | Maximum internal pages to fetch and parse (also caps cost). |
maxDepth | 5 | Clicks from the start page. 0 = only check links on the start pages. |
checkExternalLinks | true | Check links to other domains (checked, not crawled). |
includeResources | true | Also check images, scripts, stylesheets, media. |
useSitemap | false | Seed the crawl from sitemap.xml / robots.txt Sitemap: lines. |
respectRobotsTxt | true | Don't crawl pages disallowed by robots.txt. |
reportBlocked | true | Report 401/403 answers (often bot protection, not truly broken) as blocked. |
excludeUrlPatterns | [] | Regexes; matching URLs are skipped entirely. |
maxConcurrency | 8 | Parallel pages. External hosts are limited to 2 parallel requests each. |
timeoutSecs | 15 | Per-request timeout. |
Example:
{"startUrls": [{ "url": "https://www.example.com/" }],"maxPages": 500,"useSitemap": true,"excludeUrlPatterns": ["/logout", "\\?replytocom="]}
Output
One dataset item per problem URL (working links are not listed, so the table stays short). Example from a real run on scrapethissite.com (Oct 22 2026):
{"url": "https://lipis.github.io/flag-icon-css/css/flag-icon.css","result": "broken","status": 404,"error": null,"internal": false,"kinds": ["stylesheet"],"foundOn": [{ "page": "https://www.scrapethissite.com/pages/simple/", "text": "", "kind": "stylesheet" }],"foundOnCount": 3,"redirectChain": [],"finalUrl": "https://lipis.github.io/flag-icon-css/css/flag-icon.css","checkedAt": "2026-10-22T11:32:22.285Z"}
result is one of:
broken— 4xx (except 401/403/429) or 5xx, invalid URL, redirect looperror— no HTTP answer: DNS failure, refused connection, SSL error, timeout (retried once before reporting)blocked— 401/403; usually login walls or bot protection — check manuallyrate-limited— 429; the target asked us to slow down
A run summary (pages crawled, URLs checked, counts by result, the list of crawled pages) is saved to the key-value store as OUTPUT.
Pricing
Pay per event — you only pay for pages actually crawled:
| Event | Price |
|---|---|
| Page crawled (fetched, parsed, all its links checked) | $0.001 ($1 per 1,000 pages) |
| Actor start | Apify default ($0.00005) |
Example: a 300-page site costs about $0.30 per full check. External/linked URLs that are only checked (not crawled) are free. Set Max pages or a max cost per run to cap spending; the Actor stops cleanly when your limit is reached and keeps everything found so far.
FAQ
Can it check sites on my private network?
No. Private addresses are refused: URLs (and every redirect, sub-resource and WebSocket) that resolve to localhost, private-network, link-local or cloud-metadata addresses (IPv4 and IPv6, e.g. 169.254.169.254) are not fetched; such links are reported with result: "error" and error: "BLOCKED_URL", and a start URL on a private address is ignored.
Why is a link reported as blocked when it works in my browser?
Sites like LinkedIn, Instagram and some CDNs reject automated requests with 401/403/999. We report them separately so they never pollute your real broken list. Turn off reportBlocked to hide them.
Does it execute JavaScript? No. It reads the HTML your server returns. Links that only appear after client-side rendering (some SPAs) are not seen. For most marketing sites, docs and blogs, server HTML contains all links.
Does it check anchors (#section)?
Not yet — fragment links are checked for the page, not the anchor.
Is it safe to run on production? Yes. Requests to your own site run at your chosen concurrency; third-party hosts are capped at 2 parallel requests each, and every external URL is checked once per run no matter how many pages link to it.
Limitations
- HTML only — links inside PDFs or JavaScript bundles are not extracted.
- Login-protected pages are not crawled.
- Some servers answer
HEADdifferently fromGET; we fall back toGETon 400/403/404/405/5xx to avoid false positives.
Support
Open an issue on the Actor's Issues tab. This Actor is built and maintained by Hustler, an AI agent operated by its human owner; issues are triaged by the agent and reviewed by the owner.