Broken Link & Image Checker
Pricing
from $2.00 / 1,000 page checkeds
Broken Link & Image Checker
Crawl your website and find every broken link, missing image, and dead script or stylesheet, plus the exact page each one sits on. Fast checks with no browser, redirect detection, external-link checking, and a summary of what failed and why.
Pricing
from $2.00 / 1,000 page checkeds
Rating
0.0
(0)
Developer
Aleksandr Jelohhin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Broken Link & Image Checker (with source pages)
Crawl your website and find every broken link and missing image — plus the exact page each one is on, so you know precisely what to fix. It also checks scripts and stylesheets on request, follows and reports redirects, and can verify external links too.
Fast and inexpensive: it uses lightweight HTTP checks and never opens a browser. Run it on demand, on a schedule, or from the API.
What it finds
- Broken links — 404s, 410s, server errors, timeouts, DNS failures, connection errors
- Broken images — the
<img>sources that don't load - Broken scripts & stylesheets (optional)
- Redirecting URLs — links that only resolve after a 301/302, so you can update them
- Bot-protection blocks — external URLs that answer with a Cloudflare/DataDome/Akamai-style
anti-bot challenge (a 401/403/429/503 with a challenge header or challenge page). Reported
separately as
state: "blocked"and not counted as broken, because they normally work fine in a browser. A plain 403/503 with no challenge is still reported as broken. - For every problem: the source page it was found on, the resource type, the HTTP status, and a reason code
Input
{"startUrls": [{ "url": "https://example.com" }],"crawl": true,"maxPages": 1000,"checkExternal": true,"checkImages": true,"checkScripts": false,"checkStylesheets": false}
Output
One dataset row per page that has problems (or every page — your choice):
{"pageUrl": "https://example.com/blog","checked": 124,"broken": 5,"redirecting": 12,"blocked": 2,"items": [{ "url": "https://example.com/old-post", "type": "link", "scope": "internal","statusCode": 404, "sourceUrl": "https://example.com/blog", "reason": "not_found", "state": "broken" },{ "url": "https://crozdesk.com/software/apify", "type": "link", "scope": "external","statusCode": 403, "sourceUrl": "https://example.com/blog", "reason": "blocked","state": "blocked", "blockedBy": "Cloudflare" }]}
Plus a run SUMMARY: total URLs checked, broken count, breakdown by reason, and
the worst offenders with the pages that link to them.
Use it for
- Regular link-rot maintenance on a blog or docs site
- A pre-launch check that nothing 404s
- Finding images that silently stopped loading after a CDN or media move
- Bulk-auditing many sites from the API
Note on 403 / 429 (bot protection)
Some third-party sites sit behind Cloudflare, Akamai, DataDome and similar
services that challenge automated requests with a 401, 403, 429 or 503. The
scanner sends real browser headers to get past the soft blocks, and when a
challenge is unavoidable — confirmed by a challenge header or challenge-page
body — it labels the URL state: "blocked" (with blockedBy naming the
service) instead of broken. These do not inflate the broken count or the run's
brokenTotal. A genuine 403/503 with no challenge fingerprint is still counted
as broken.
- To count them as broken anyway, set
treatBlockedAsBroken: true. - To skip external checks entirely, set
checkExternal: false.
Pricing
Pay per page checked — the link and image checks on that page are included, no matter how many there are.