Broken Link Checker – Website 404 & Dead Link Finder avatar

Broken Link Checker – Website 404 & Dead Link Finder

Pricing

from $2.00 / 1,000 page scanneds

Go to Apify Store
Broken Link Checker – Website 404 & Dead Link Finder

Broken Link Checker – Website 404 & Dead Link Finder

Crawl your website and find broken links (404s, dead domains, timeouts, invalid URLs), redirects and links that block bots, with every page and anchor text where each broken link appears.

Pricing

from $2.00 / 1,000 page scanneds

Rating

0.0

(0)

Developer

Phuc Tiet

Phuc Tiet

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Find every broken link on your website: 404 pages, dead domains, timeouts, server errors and malformed URLs. For each one you get the pages where it appears and the anchor text, so you can fix it in minutes.

Give it your homepage. It crawls your internal pages, collects every link, checks each unique link once, and gives you a clean report.

Why use it

  • Fix-ready report – every broken link comes with foundOn (up to 20 pages, with anchor text) and foundOnCount.
  • Fewer false alarms – sites like LinkedIn or Cloudflare-protected pages often answer bots with 401/403/429/999 even though the link works. These are reported separately as blocked, not mixed into your broken links.
  • Simple, predictable pricing – you pay per page scanned, and all link checks are included. One link used on 500 pages is checked once.
  • Polite by default – respects your robots.txt, uses modest concurrency and retries with backoff, and checks links with lightweight HEAD requests (GET fallback).

What it checks

  • <a href> links, internal and external (external checks can be turned off).
  • Optionally images, scripts, stylesheets, icons, iframes and media (checkResources).
  • Status codes, DNS failures (ENOTFOUND), refused connections, timeouts, invalid URLs and redirect chains.

Verdicts:

VerdictMeaning
broken4xx/5xx (except below), DNS error, timeout, connection error or invalid URL
blocked401, 403, 429 or 999 – the server refused an automated check; verify manually
redirectWorks, but through one or more redirects (good to update)
skippedInternal URL disallowed by robots.txt (not requested)
ok2xx response

Input

FieldDefaultDescription
startUrls–Your homepage or any page (required).
maxPages100Max internal pages to scan (also caps cost).
checkExternalLinkstrueCheck links to other sites.
checkResourcesfalseAlso check images/scripts/CSS/media.
onlyBrokenLinkstrueSave only broken links, or every link with its verdict.
reportBlockedAsBrokenfalseCount 401/403/429/999 as broken.
maxDepth0Clicks from the start page (0 = unlimited).
includeSubdomainsfalseCrawl subdomains as internal.
excludePatterns[]Substrings or /regex/ to skip.
respectRobotsTxttrueDon't crawl disallowed pages.
maxConcurrency5Parallel page downloads.
{ "startUrls": ["https://example.com"], "maxPages": 500, "checkResources": true }

Output

{
"url": "https://example.com/old-pricing",
"verdict": "broken",
"status": 404,
"error": null,
"finalUrl": "https://example.com/old-pricing",
"redirectCount": 0,
"isInternal": true,
"linkTypes": ["a"],
"foundOnCount": 3,
"foundOn": [{ "pageUrl": "https://example.com/blog/post-1", "text": "see our pricing" }],
"firstFoundOn": "https://example.com/blog/post-1",
"anchorText": "see our pricing",
"responseTimeMs": 211
}

The key-value store record OUTPUT contains the run summary: pages scanned, unique links, counts per verdict, and the list of scanned pages with their status and number of links.

Pay per event:

  • Page scanned: $0.002 per page ($2.00 per 1,000 pages). Checking every link on those pages, internal and external, is included.
  • A tiny Actor start fee: $0.00005 per GB of memory.

Platform usage is included in the price. To control spending, set maxPages or a maximum cost per run. If the limit is reached, crawling stops, and the links already found are still checked and reported.

Good to know

  • Use it on websites you own or manage. It is a site-maintenance tool, not a scraper.
  • JavaScript-rendered links (content injected by client-side JS only) are not seen. Server-rendered and static sites, WordPress, Shopify, Webflow, docs sites and most blogs work well.
  • Some servers rate-limit or block automated checks. Those links show up as blocked or TIMEOUT. Lower maxConcurrency for small servers.
  • A link is checked once per run, even if it appears on many pages.

FAQ

How do I find broken links on my whole website? Enter your homepage in startUrls, set maxPages high enough to cover the site, and run. Every internal page is crawled and every link on it (internal and external) is checked once.

Does it check external links too? Yes, by default. Turn off checkExternalLinks to check only links within your own domain.

Which links count as broken? HTTP 4xx and 5xx responses, DNS failures, timeouts and connection errors. Redirects are reported separately so you can update them.

Can I schedule it? Yes. Create a schedule in Apify Console (for example weekly) and add an email or Slack integration to get the report automatically.

How much does a full-site check cost? $0.002 per page crawled, so a 500-page site costs about $1.00, with all link checks included.

Use it from AI agents (MCP), the API, Make, Zapier and n8n

  • AI agents and MCP clients (Claude, ChatGPT, Cursor, VS Code): add https://mcp.apify.com?tools=pinkish_armada/broken-link-checker as an MCP server, and your agent can find broken links and 404s on a website as a tool call.
  • API: run it and get the results in one request:
curl -X POST "https://api.apify.com/v2/acts/pinkish_armada~broken-link-checker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":["https://crawlee.dev"],"maxPages":100}'
  • No-code: use the official Apify apps for Make, Zapier and n8n ("Run an Actor"), then send results to Google Sheets, Slack, Airtable or your database. You can also schedule runs in Apify Console and add a webhook or email integration.