Broken Link Checker - Find 404 Errors & Redirects on a Website
Pricing
Pay per event
Broken Link Checker - Find 404 Errors & Redirects on a Website
Crawl a website and check every link on it: broken links (404, 500) and redirects (301, 302) with their destination URL, HTTP status and response time. One record per page, plus a site summary listing the dead links that appear on the most pages.
Pricing
Pay per event
Rating
5.0
(2)
Developer
My Smart Digital
Maintained by CommunityActor stats
2
Bookmarked
29
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Share
Broken Link Checker — Find 404s & Redirects on Any Website
Give it a URL. It reads every link on the page — or crawls the whole site — checks each one, and tells you which links are dead (404, 500), which redirect (301, 302), and where those redirects go.
No account, no API key, no browser extension. One run, one dataset.
What you get
Two kinds of records.
One record per page, with every link it carries
{"type": "page","pageUrl": "https://mysmartdigital.fr","title": "Réservations directes pour hôtels indépendants — My Smart Digital","httpStatus": 200,"linksCount": 7,"brokenLinksCount": 0,"redirectLinksCount": 4,"links": [{"url": "https://mysmartdigital.fr/tarifs","text": "Formules","isInternal": true,"httpStatus": 301,"responseTime_ms": 111,"redirectUrl": "https://mysmartdigital.fr/tarifs/"},{"url": "https://mysmartdigital.fr/","text": "MSD.My smartdigital","isInternal": true,"httpStatus": 200,"responseTime_ms": 432}]}
redirectUrl appears on 3xx links only. Redirects are reported, never followed: a 301 keeps its 301
status, shows its destination, and never counts as broken.
One site summary at the end of the run
{"type": "site-summary","pagesCrawled": 1,"linksTotal": 7,"brokenLinksTotal": 0,"redirectLinksTotal": 4,"byStatus": { "200": 3, "301": 4 },"byType": { "internal": 7, "external": 0 },"topBrokenLinks": []}
topBrokenLinks lists the 20 most frequent dead links with every page they appear on — that is the
list to fix first, since one bad link in a menu or a footer breaks on every page at once.
pagesCrawled counts pages actually delivered, not pages attempted.
Input
{"startUrls": ["https://example.com"],"crawlPages": true,"maxPages": 50,"maxConcurrency": 5,"sameDomain": true,"checkExternal": false,"timeout": 10000}
| Field | Type | Default | What it does |
|---|---|---|---|
startUrls | list of URLs | — | Pages to start from. Required. |
crawlPages | boolean | false | Off: only the start URLs are analyzed. On: the actor follows links and analyzes up to maxPages pages. |
maxPages | 1–1000 | 50 | Page ceiling for the crawl. No effect when crawlPages is off. |
maxConcurrency | 1–20 | 5 | Pages processed in parallel. |
sameDomain | boolean | true | Keep the crawl on the start domain. No effect when crawlPages is off. |
checkExternal | boolean | false | Also check links pointing to other domains. Off by default: external checks are the slow part. |
timeout | 1000–60000 ms | 10000 | Time budget per link check. |
Two things worth knowing before your first run
Links are checked, pages are crawled. Every link found on an analyzed page is hit for its status
code and response time, wherever it points. What crawlPages controls is how many pages get read to
collect links from — a single-page run still checks all the links on that page.
A page that runs out of time is dropped, and costs you nothing. A page carrying thousands of links
can exceed its processing budget: it is abandoned, produces no page record, and neither it nor the
links it had started checking are billed. Raise timeout or lower maxConcurrency to get those pages.
What it costs
Pay per event, at the prices shown on this page: one PAGE_ANALYZED per page record delivered, one
LINK_CHECKED per link actually checked and returned. Nothing else is charged — no start fee, and the
site summary is free. A 4-page run returning 105 links is billed 4 pages and 105 links, no more.
Limits
- Links are checked over HTTP, not rendered in a browser: links injected by JavaScript after page load are not seen.
- A site that blocks automated traffic returns its block status (403, 429) instead of the real status of the link.
mailto:,tel:and same-page anchors are not checked.