Broken Link Checker: 404s, 5xx & Redirect Chains (robots.txt)
Pricing
from $0.50 / 1,000 page crawleds
Broken Link Checker: 404s, 5xx & Redirect Chains (robots.txt)
Crawl your own website and find every broken link: 404 and other 4xx errors, 5xx server errors, timeouts, redirect chains and loops, plus dead external links, with the page each one was found on and its anchor text. Respects robots.txt and Crawl-delay. CSV report included.
Pricing
from $0.50 / 1,000 page crawleds
Rating
0.0
(0)
Developer
Larry Johnson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Point it at your own website and get a full link-health report in minutes:
- Broken links: 404 / 410 and other 4xx, 5xx server errors, timeouts, dead domains (DNS), connection failures
- Redirects: every hop of each redirect chain (301 → 302 → 200), redirect loops, HTTPS → HTTP downgrades
- Where to fix it: the page each broken link was found on, plus its anchor text
- External links to other sites verified too (free), with bot-walled responses (401/403/429/999) marked
ACCESS_RESTRICTEDinstead of falsely "broken" - Optional checks for images, scripts, stylesheets, iframes and canonical URLs
- A ready-to-share CSV of every broken link (
BROKEN_LINKS_CSVin the key-value store) and a run SUMMARY
It behaves like a polite search-engine crawler: it reads and obeys robots.txt (including Crawl-delay) for every host it contacts, identifies itself as ApifyBrokenLinkChecker, and caps parallel requests.
Use cases
- SEO audits: fix 404s and redirect chains that waste crawl budget and link equity
- Site migrations and redesigns: schedule weekly and catch regressions before visitors do
- Agencies: one report per client site, exported to Sheets or Slack
- Docs and blogs: find outbound links that rotted years ago
Input
| Field | Default | Notes |
|---|---|---|
startUrls | — | A site you own or manage. www and non-www count as one site |
maxPages | 500 | URLs on your site to request (up to 20,000) |
maxDepth | 10 | Clicks from the start page |
checkExternalLinks | true | HEAD, then GET fallback |
maxExternalLinks | 500 | Distinct external URLs |
checkAssets | false | img/script/css/iframe/canonical |
includeSubdomains | false | Crawl *.yoursite.com too |
excludeUrlPatterns | — | Substrings or globs to skip |
maxConcurrency | 5 | Crawl-delay in robots.txt wins |
Output
One dataset row per checked URL (your pages, assets and external links):
{"url": "https://example.com/old-pricing", "type": "page", "depth": 2,"foundOn": "https://example.com/blog/launch", "anchorText": "see our pricing","statusCode": 404, "finalUrl": "https://example.com/pricing-2024","redirectChain": [{"url": "https://example.com/old-pricing", "statusCode": 301}],"redirectCount": 1, "responseTimeMs": 182, "linksFound": 0,"issues": ["BROKEN_4XX", "REDIRECT"], "error": null}
Issue codes: BROKEN_4XX, SERVER_ERROR_5XX, TIMEOUT, DNS_FAILED, CONNECT_FAILED, REDIRECT, REDIRECT_CHAIN, REDIRECT_LOOP, TOO_MANY_REDIRECTS, HTTPS_TO_HTTP_REDIRECT, ACCESS_RESTRICTED, BLOCKED_BY_ROBOTS, ROBOTS_TXT_UNAVAILABLE, URL_NOT_ALLOWED, PAGE_TRUNCATED.
Key-value store: SUMMARY (totals), BROKEN_LINKS (JSON) and BROKEN_LINKS_CSV: one line per source page → broken URL pair.
Pricing (pay per event)
- $0.50 per 1,000 pages (
page-crawled, $0.0005 per URL on your site that responded), plus the standard $0.00005 actor start. - Free: external link checks, URLs skipped by robots.txt or your exclude patterns, and requests that got no response at all.
- Respects your run's maximum cost, so a 10,000-page site never costs more than you set.
Fair use
- Crawl only websites you own or are authorized to audit. The crawl never leaves the start site (except single checks of external links).
- robots.txt is always honored. A robots.txt that returns a 5xx error is treated as "disallow all", per RFC 9309. To let this checker into areas you block for other bots, add
User-agent: ApifyBrokenLinkCheckerrules. mailto:andtel:links are ignored, and no contact data is collected. Private-network addresses are blocked.
Actively maintained. Issues answered within 24 hours on the Issues tab.