Broken Link Checker - 404s, Redirects & Images, $1/1K Pages avatar

Broken Link Checker - 404s, Redirects & Images, $1/1K Pages

Pricing

from $0.62 / 1,000 page checkeds

Go to Apify Store
Broken Link Checker - 404s, Redirects & Images, $1/1K Pages

Broken Link Checker - 404s, Redirects & Images, $1/1K Pages

Crawl your website and test every link, image, script and stylesheet for 404s, server errors, timeouts, dead domains and redirect chains. One row per problem with the page it is on. $1 per 1,000 pages crawled, any number of links.

Pricing

from $0.62 / 1,000 page checkeds

Rating

0.0

(0)

Developer

Plot Point Technologies

Plot Point Technologies

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Broken Link Checker: 404s, Redirects and Dead Images

Find every broken link on your website in one run. This broken link checker crawls your site, tests every link, image, script and stylesheet it finds, and gives you one row per problem: the page it is on, the link, its anchor text, the status code or error, the full redirect chain and a severity so you know what to fix first.

You pay per page crawled ($1 per 1,000 pages), not per link or per broken link. A page with 300 links costs the same as a page with 3.

  • Crawls your website from a start URL, following internal links up to a depth you choose, and also reads your XML sitemap so pages nothing links to are checked too.
  • Checks every link and file on each page: internal links, external links, images (<img>), scripts (<script src>) and stylesheets.
  • Uses HEAD, then GET. Each URL is tested with a light HEAD request. If that fails, it is re-tested with a normal GET before being reported, so servers that mishandle HEAD do not create false alarms.
  • Follows and records redirects: every hop with its status code, the final URL, redirect loops, too many redirects and HTTPS-to-HTTP downgrades.
  • Detects 404 and 410 pages, 5xx server errors, timeouts, DNS failures (domain no longer exists), SSL errors, refused connections and links blocked by bot protection.
  • Is polite: respects robots.txt, limits parallel requests per host, retries once with back-off and identifies itself as PlotPointBot.
  • Checks each URL once per run, even when it appears on hundreds of pages, but reports every page where a broken link appears so you know exactly where to edit.

Who uses it?

  • SEO agencies and consultants running technical audits and monthly link-health reports for clients.
  • Website owners and marketing teams cleaning up after a redesign, CMS migration or domain change.
  • Developers and QA checking a staging or production site before launch, or on a schedule.
  • Content and documentation teams finding outbound links to pages that moved or disappeared.

How to use it

  1. Click Try for free (or Start).
  2. Enter your website's home page (or a section, such as https://www.example.com/blog/) under Websites to check.
  3. Set Maximum pages to crawl per website. This is also your cost limit.
  4. Optional: turn on Also report redirects, turn off Check links to other websites, or limit the crawl with Only crawl pages matching / Do not crawl pages matching.
  5. Run it and open the Broken links table, or export to CSV, Excel or JSON. Sort by severity to fix the worst problems first.

Input

FieldDefaultDescription
startUrlscrawler-test.comHome page or section of each site to crawl
maxPages20Maximum pages crawled per website (the billed unit)
maxDepth3Clicks away from the start URL to follow; 0 = start page only
onlyBrokentrueOnly problem links; turn off to get a row for every link
includeRedirectsfalseAlso report links that redirect, with the full chain
checkExternaltrueAlso check links and files on other domains (never crawled)
checkAssetstrueCheck images, scripts and stylesheets as well as links
useSitemaptrueAlso crawl pages listed in the XML sitemap
includePatterns / excludePatternsemptyRegular expressions or * wildcards that limit which pages are crawled
maxConcurrencyPerHost4Parallel requests to any one server
timeoutSecs15Seconds before a link is reported as a timeout

Input example

{
"startUrls": [{ "url": "https://www.example.com/" }],
"maxPages": 500,
"maxDepth": 5,
"onlyBroken": true,
"includeRedirects": true,
"checkExternal": true,
"excludePatterns": ["/tag/", "\\?page="]
}

Output example

One record from the default run on crawler-test.com (a public test site built for crawlers):

{
"sourcePage": "https://crawler-test.com/",
"linkUrl": "https://crawler-test.com/redirects/redirect_to_404",
"anchorText": "Redirect To 404 Http Status",
"linkType": "internal",
"statusCode": 404,
"error": null,
"redirectChain": [
{ "url": "https://crawler-test.com/redirects/redirect_to_404", "statusCode": 302 }
],
"finalUrl": "https://crawler-test.com/redirects/redirect_to_404_target",
"isRedirectLoop": false,
"severity": "critical",
"result": "broken",
"problem": "HTTP 404 Not Found",
"isInternal": true,
"nofollow": false,
"occurrencesOnPage": 1,
"checkedWith": "GET",
"depth": 0
}

Output fields

FieldDescription
sourcePagePage where the link was found
linkUrl, anchorTextThe link and its text (alt text for images)
linkTypeinternal, external, image, script or css
statusCode, errorFinal HTTP status, or the network error (timeout, DNS, SSL, refused)
redirectChain, finalUrl, isRedirectLoopEvery redirect hop, where it ended, and loop detection
resultbroken, restricted (401/403/429 or bot protection), redirect, ok or skipped
severitycritical (broken on your own site), high (broken external link), medium (blocked, timeout on another site, redirect chain or HTTPS-to-HTTP), low (single redirect), ok
problemPlain-English description
isInternal, nofollow, occurrencesOnPage, checkedWith, depthExtra detail

How much does it cost?

EventPricePer 1,000
Page checked (crawled, with every link on it tested)$0.001$1.00

Plus a $0.00005 start fee per run. Result rows are free: you pay for the crawl, not for how many problems are found, so a badly broken site costs no more than a clean one.

Examples: a 50-page small-business site costs about $0.05; a 1,000-page blog costs about $1; a monthly check of a 10,000-page shop costs about $10. Links to other sites are checked but never crawled, so they add nothing to the bill. Set Maximum pages to cap your cost.

Volume discounts on higher Apify plans. The prices above are for the Apify Free plan. On paid plans the per-page price drops automatically: about 15% lower on Bronze, 25% lower on Silver and 38% lower on Gold and above.

Use it via API, Make, Zapier, n8n or an AI agent

Apify API. Start a run and get the results back in one HTTP request (replace YOUR_API_TOKEN with the token from Apify Console > Settings > Integrations):

curl -X POST "https://api.apify.com/v2/acts/plotpointtech~broken-link-checker/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.example.com/"}],"maxPages":100}'

For larger sites, start the run asynchronously and read the dataset when it finishes. Official apify-client libraries exist for Python and JavaScript; the API tab on this page has ready-made code.

No-code automation. Connect the tool to Make, Zapier, n8n, Google Sheets, Slack, Airtable or any webhook with Apify integrations, and use Schedules in Apify Console to check your site weekly and get the broken links in Slack or email.

AI agents (MCP). Give Claude, ChatGPT, Cursor, VS Code or any MCP-compatible agent direct access to this tool through the hosted Apify MCP server. Add this server URL to your client:

https://mcp.apify.com?tools=plotpointtech/broken-link-checker

FAQ

Is it legal to check links on a website? Yes, for public pages. The tool reads only publicly available pages, never logs in, respects robots.txt and spaces out its requests. Check sites you own or are authorised to audit, and follow their terms.

Why is a link marked "restricted" when it works in my browser? Some sites (LinkedIn, sites behind Cloudflare challenges, some shops) refuse automated requests with 401, 403, 429 or a bot challenge. These are reported with medium severity and an explanation so you can verify them by hand instead of being told they are broken.

Why are some links "skipped"? If a site's robots.txt disallows a URL, the tool does not request it. Skipped links appear only when Only report problems is off.

Does it render JavaScript? No. Pages are read as HTML, which is how search engines first see links. Links added only by JavaScript after the page loads are not found.

Does it crawl other websites? No. Only pages on the start URL's domain (with or without www.) are crawled. Links to other sites are checked with a single request each. Subdomains such as blog.example.com are treated as other sites.

How is this priced compared with per-link checkers? Per-link pricing charges for every link tested, so a typical page with 50 to 150 links costs 50 to 150 times the per-link rate. Here a page costs $0.001 no matter how many links it has.

Plot Point Technologies is not affiliated with crawler-test.com, any website you check, or Apify.


If this tool saved you time, we would be grateful for a short review on this page; it helps other people find it. If something did not work as expected, please open an issue on the Issues tab and we will look into it quickly.