Broken Link Checker (Your Listed Pages)
Pricing
from $1.00 / 1,000 link checkeds
Broken Link Checker (Your Listed Pages)
For your own or authorised sites. Give it up to 500 pages and it checks every link on them once, follows redirects, and lists the broken ones with the page they're on. $0.001 per unique link, and timeouts are free.
Pricing
from $1.00 / 1,000 link checkeds
Rating
0.0
(0)
Developer
Plainwren Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
38 minutes ago
Last modified
Categories
Security
Limited permissionsShare
What is Broken Link Checker?
Broken Link Checker finds the broken links on pages you list. It is for your own or authorised sites.
Paste in up to 500 pages. The Actor reads the links on those pages and checks each unique link once with a light HEAD request. It follows redirects (up to 5 hops) and tells you which page each broken link is on. It never crawls past your list, never follows on from a link target, never reads sitemaps, obeys robots.txt, never logs in, never sends cookies, and never gets past captchas or bot checks.
Try it: leave the page list empty and click Start for a free demo on a built-in sample page. For a real run you must tick These are my own or authorised sites.
Bot info (user agent and behaviour): tools.plainwrenstudio.com/bots/link-checker/. Support: support@plainwrenstudio.com.
What you get
One dataset row per unique problem link (or every checked link if you turn on Also output working links):
sourcePage,sourcePages(up to 50 pages that use the same link),linkUrllinkType: page / image / script / css / iframehttpStatus,issue(worst one),issuesredirectChain({url, status}per hop),finalUrl,responseMsfoundOnCount,checkedAt
No anchor text, page text, emails or phone numbers.
You also get SUMMARY, REPORT.csv and REPORT.html in the key-value store (grouped by source page, worst first).
Issues it can report: BROKEN_4XX, BROKEN_5XX, DNS_FAILED, CONNECTION_REFUSED, DNS_TEMPORARY, TIMEOUT, TLS_ERROR, FETCH_FAILED, REDIRECT_CHAIN (2+ hops), REDIRECT_LOOP, TOO_MANY_REDIRECTS (over 5), REDIRECT_TO_HTTP, MIXED_CONTENT, AUTH_REQUIRED, ROBOTS_BLOCKED, GUARD_BLOCKED, HEAD_NOT_ALLOWED, RATE_LIMITED, BAD_URL, PAGE_NOT_HTML, PAGE_TOO_BIG, OK.
Who is it for?
- 🧑💻 Site owners and SEO teams checking their own pages for 404s and other broken links.
- 🔗 Agencies that need a CSV or HTML report for a client's listed URLs.
- 🤖 Developers calling it through the Apify API, integrations or MCP.
How to check links
- Open the Input tab.
- Add pages under Pages to check (all on one site), or leave empty for the free demo.
- Tick These are my own or authorised sites.
- Optional: turn outside links or resources on/off, set rate limits, or add include/exclude patterns.
- Click Start.
- Read the dataset, or download the CSV / HTML report from the key-value store.
Input example
{"startUrls": ["https://tools.plainwrenstudio.com/","https://tools.plainwrenstudio.com/bots/","https://tools.plainwrenstudio.com/about/"],"confirmOwnOrAuthorised": true,"maxPages": 500,"maxLinksChecked": 5000,"checkExternalLinks": true,"checkResources": true,"requestsPerSecond": 1,"maxConcurrency": 4,"includeUrlPatterns": [],"excludeUrlPatterns": [],"ignoreQueryStrings": false,"reportOkLinks": false,"timeoutSecs": 15}
| Field | Type | What it does |
|---|---|---|
startUrls | array of strings | Pages whose links you want checked, max 500, one site. Leave empty for the free demo. |
confirmOwnOrAuthorised | boolean | Required for a real run. If false, the run stops at once and nothing is charged. |
maxPages | integer (default 500) | Only the first N listed pages are used. |
maxLinksChecked | integer (default 5000, max 50000) | Hard cap on unique URLs checked in one run. |
checkExternalLinks | boolean (default true) | Check links to other sites (1/s per outside host, never crawled). |
checkResources | boolean (default true) | Also check img / script / stylesheet / iframe URLs. |
requestsPerSecond | number (default 1, 0.2–4) | Polite rate for your own site. |
maxConcurrency | integer (default 4, 1–10) | How many different hosts at once. |
includeUrlPatterns / excludeUrlPatterns | arrays | Optional globs on the full link URL. |
ignoreQueryStrings | boolean (default false) | Treat ?utm=… variants as one URL. |
reportOkLinks | boolean (default false) | Also output working links. Charged once either way. |
timeoutSecs | integer (default 15, 1–60) | Timeouts are reported and not charged. |
How much does it cost?
Pay-per-event pricing:
- $0.001 per unique link checked (
link-checked): $1.00 per 1,000. Charged for each unique URL that returns a real HTTP answer (listed pages and link targets), and for link targets whose host does not exist (DNS_FAILED) or refuses the connection (CONNECTION_REFUSED). A URL found on 50 pages is charged once. - Free: timeouts, temporary DNS errors, TLS and other connection errors, a 429/503 that will not clear, too many redirects, robots blocks, guard blocks, HEAD not allowed, bad URLs, unreadable listed pages (including a listed page that is DNS_FAILED or refused), duplicates, a run refused for a missing confirmation, and the demo run.
- The run stops cleanly before it would go over your maximum charge.
Example: 2,000 unique charged links cost $2.00 (arithmetic, not a measured run).
Apify's free plan includes monthly platform credit you can use to try it.
How polite it is
- One request at a time per host. Your site:
requestsPerSecond(default 1). Outside hosts: always 1 per second. - Up to 4 hosts at once by default (max 10).
- robots.txt read once per host and obeyed. A 4xx answer (404 included) means no rules. A 429 or 5xx on robots.txt blocks that host for the run (
ROBOTS_BLOCKED, free).Crawl-delayhonoured up to 10 s. - On 429/503: waits
Retry-After(max 60 s, 2 retries), thenRATE_LIMITED(free). - Private, internal and reserved addresses are refused on the first request, on every redirect hop, and again at DNS lookup. Max 5 redirect hops.
- Honest User-Agent:
PlainwrenLinkChecker/1.0 (+https://tools.plainwrenstudio.com/bots/link-checker/).
Limits
- Max 500 listed pages and 50,000 unique URLs checked per run (default cap 5,000).
- Listed pages must be on one site.
- Link targets get one HEAD each and are never crawled further.
- No login, cookies, captchas or proxies.
FAQ
Does it crawl my whole site?
No. Only the pages you list are fetched and read. Each link on them gets one HEAD and is not followed on.
Why do I have to confirm ownership?
So the Actor is only used on sites you own or are allowed to check. Unticked runs stop immediately and are free.
Am I charged for timeouts?
No. Timeouts are free. Dead domains and refused connections are charged, because they are real findings.
Can I use it from Make, Zapier, n8n or an AI agent?
Yes, through Apify's integrations, API and MCP.
Something looks wrong. What should I do?
Open an issue on the Actor's Issues tab (remove anything private) or email support@plainwrenstudio.com.
WordPress users
For an in-dashboard scan of a WordPress site's own content, see Local Link Checker (WordPress plugin; separate product).