Broken Link Checker - Find 404s, Dead Links & Redirects avatar

Broken Link Checker - Find 404s, Dead Links & Redirects

Pricing

from $0.40 / 1,000 link checkeds

Go to Apify Store
Broken Link Checker - Find 404s, Dead Links & Redirects

Broken Link Checker - Find 404s, Dead Links & Redirects

Crawl a website and find every broken link: 404s, 5xx, dead external links, broken images and redirect chains, with the pages each one appears on. ~$0.50/1k links checked; robots.txt-skipped links free, no login.

Pricing

from $0.40 / 1,000 link checkeds

Rating

0.0

(0)

Developer

TinyRex

TinyRex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Broken Link Checker: find 404s, dead links and redirects on any website

Crawl a website and get a list of every broken link — 404 and 410 pages, 5xx server errors, dead external links, broken images, scripts and stylesheets, plus redirect chains — each with the pages it appears on and its anchor text, so you know exactly what to fix. Paste a homepage, press Start, download the list as CSV or Excel. ~$0.50 per 1,000 unique links checked; each URL is checked once however many pages link to it; robots.txt-blocked paths and links over your cap are free; no login, no browser, no monthly fee.

  • Every problem link, ranked — broken (4xx/5xx), error (unreachable: DNS, timeout, TLS) and blocked (401/403/429/999, usually bot protection on sites like LinkedIn) come first, sorted by how many pages contain them.
  • Where to fix it — foundOn lists up to 10 pages that contain the link, foundOnCount how many crawled pages do, plus the anchorText (or image alt) of the link.
  • Redirect audit — by default every redirect is reported too, with its full redirectChain, redirectCount and finalUrl (handy after a migration or an http→https / www switch).
  • Links and assets — <a href> links plus <img>, <script>, stylesheets, favicons and <iframe> sources, internal and external, with nofollow flagged.
  • Run summary — the SUMMARY record has per-site totals: pages crawled, links found, checked, broken, unreachable, blocked, redirects, OK.

Sample output (JSON, real run on crawlee.dev, 13 Oct 2026)

{
"site": "https://crawlee.dev/",
"url": "https://github.com/apify/crawlee-python/tree/master/templates",
"status": "broken",
"statusCode": 404,
"finalUrl": "https://github.com/apify/crawlee-python/tree/master/templates",
"redirectChain": [],
"redirectCount": 0,
"linkType": "link",
"isInternal": false,
"nofollow": false,
"anchorText": "ready-made templates",
"foundOn": [
"https://crawlee.dev/blog/launching-crawlee-python",
"https://www.crawlee.dev/blog/launching-crawlee-python"
],
"foundOnCount": 2,
"error": null,
"checkedAt": "2026-10-13T07:26:19.132Z"
}

Download the dataset as CSV, Excel or JSON, or send it to Google Sheets, Slack, Make, Zapier, n8n, a webhook or the Apify API. Schedule it weekly to catch new broken links before your visitors (and Google) do.

  1. Paste one or more website URLs (usually the homepage). The Actor crawls pages on the same domain — www. and the bare domain count as one site, other subdomains don't — and collects every link.
  2. Set Max pages to crawl per site (default 50) and Max link checks per run (default 500, up to 50,000). The link-check cap is your cost cap.
  3. Choose What to report: problems plus redirects (default), problems only, or every link.
  4. Run. Your own pages and files are checked first, then external links, most-linked first, so a capped run still covers what matters most.

Example input

{
"startUrls": ["https://example.com"],
"maxPagesPerSite": 200,
"maxLinksToCheck": 3000,
"checkExternalLinks": true,
"checkAssets": true,
"reportMode": "problemsAndRedirects"
}

Example input: internal 404s only (fast weekly check)

{
"startUrls": ["https://example.com"],
"maxPagesPerSite": 500,
"maxLinksToCheck": 2000,
"checkExternalLinks": false,
"checkAssets": true,
"reportMode": "problems"
}
SettingDefaultNotes
startUrls(required)Websites to crawl, one per line
maxPagesPerSite50Internal HTML pages crawled per site (max 5,000)
maxLinksToCheck500Unique links checked per run, all sites together (max 50,000)
checkExternalLinkstrueAlso check links to other domains
checkAssetstrueAlso check images, scripts, stylesheets, favicons, iframes
reportModeproblemsAndRedirectsproblemsAndRedirects, problems or all
respectRobotsTxttrueSkip internal paths disallowed for user-agent *
maxConcurrency10Requests in parallel (keep it polite)
requestTimeoutSecs15After this a link counts as unreachable

You pay $0.0005 per unique link checked (about $0.50 per 1,000), with Bronze/Silver/Gold discounts on higher Apify plans, plus a tiny Actor-start fee. A typical 50-page small-business site has 300–800 unique links, so a full check costs roughly $0.15–$0.40. Each URL is checked once per run however many pages link to it, robots.txt-blocked paths are skipped for free, and the run stops cleanly at your max-charge limit.

How do I find broken links on my website? Paste your homepage into Website URLs and run. The dataset lists every broken or unreachable link with the pages that contain it, so you can open each page and fix or remove the link.

What counts as a broken link? Any link whose final response is HTTP 400 or higher (404 Not Found, 410 Gone, 500, 502, 503…), plus links that can't be reached at all (DNS failure, timeout, TLS error). Links answering 401/403/429/999 are reported separately as blocked, because sites like LinkedIn or Stack Overflow refuse automated checks even when the page exists — check those by hand.

Does it follow redirects? Yes, up to 10 hops. The final status decides whether a link is OK or broken, and redirectChain shows every hop. Redirects are reported by default (switch to problems only to hide them), which gives you a ready redirect report after a site migration.

Do broken links hurt SEO? Broken internal links waste crawl budget and leak link equity, and broken pages frustrate visitors. Fixing them is one of the quickest technical SEO wins. Pair this Actor with the SEO On-Page Audit for titles, meta tags and canonicals, or the Sitemap Scraper to check every URL in your XML sitemap.

How often should I check my site for broken links? Monthly is enough for most small sites; weekly for blogs, shops and sites that link out a lot, and always right after a migration or redesign. Save your input as an Apify task and add a schedule, so a fresh list lands in your dataset (or Slack / email via an integration) automatically.

How do I fix a broken link? Open one of the foundOn pages, find the link by its anchorText, then update it to the right URL, point it at the finalUrl of a redirect, or remove it. For a deleted page of your own, add a 301 redirect to the closest live page so old links and bookmarks keep working.

Does it crawl other websites? No. It only crawls pages on the domain you enter. External links are checked with a single HEAD request (GET fallback) and never crawled.

Can I check several sites at once? Yes, add one URL per line. The link-check cap applies to the whole run.

Is it a JavaScript crawler? No, it reads the HTML your server sends (fast and cheap). Links injected only by client-side JavaScript aren't seen.

The Actor fetches only public pages on the website you supply, respects robots.txt by default, runs at modest concurrency and never logs in or bypasses paywalls. It collects link URLs and HTTP status codes, not personal data. Use it on sites you own or are allowed to audit.

More tools from TinyRex

Questions or a site that fails? Open an issue on the Actor's Issues tab and I'll look at it.