Broken Link Audit avatar

Broken Link Audit

Pricing

$4.99/month + usage

Go to Apify Store
Broken Link Audit

Broken Link Audit

Broken Link Audit is an Apify actor that crawls websites to find broken links, dead URLs, and failed HTTP requests. It scans internal pages, extracts all links, and performs live HTTP checks to detect 404 errors, timeouts, and server issues, helping you fix problems before they harm SEO.

Pricing

$4.99/month + usage

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Broken Link Audit — Find & Fix Dead Links on Any Website

Broken Link Audit is an Apify actor that automatically crawls any website and detects broken links, dead URLs, and failed HTTP requests. Point it at any starting URL and it will spider through your internal pages, extract every anchor link, and validate each one with a live HTTP check — so you can find and fix 404 errors, timeouts, and server failures before they damage your SEO or frustrate your users.

This actor performs a full dead link audit by:

  1. Crawling the starting URL and following internal links up to your configured depth
  2. Extracting all anchor href links from each page (internal and external)
  3. Sending HTTP requests to every unique link and recording the response
  4. Classifying each link as ok, broken, redirect, timeout, or error
  5. Reporting the exact source page, anchor text, status code, and response time for every result

Use Cases

  • SEO auditing — Automatically find broken links dragging down your search rankings and fix 404 errors that harm crawlability
  • Site maintenance — Monitor hundreds of pages for dead URLs without any manual checking
  • QA testing — Validate all internal and external links before publishing or deploying a new site
  • Content migration — After a site redesign or URL restructure, identify every broken redirect or dead link
  • Competitor research — Audit competitor sites to discover broken outbound links for link-building opportunities
  • Ongoing monitoring — Schedule regular broken link checks to catch dead URLs as soon as they appear

Input Parameters

ParameterTypeDefaultDescription
urlstring(required)The website URL to start crawling from
maxDepthinteger2How many levels deep to crawl internal pages (0 = start page only)
maxLinksinteger500Maximum number of unique links to collect and check
checkExternalbooleantrueWhether to validate links pointing to external domains
concurrencyinteger10Number of links to check simultaneously
timeoutinteger30Request timeout in seconds before a link is marked as timed out

Example Input

{
"url": "https://example.com",
"maxDepth": 2,
"maxLinks": 500,
"checkExternal": true,
"concurrency": 10,
"timeout": 30
}

What Data Does This Actor Extract?

The actor stores one result per checked link in the Apify dataset. Each entry contains:

{
"url": "https://example.com/old-page",
"finalUrl": null,
"statusCode": 404,
"status": "broken",
"foundOn": "https://example.com/blog",
"linkText": "Read our guide",
"responseTimeMs": 312,
"checkedAt": "2025-06-01T10:23:45.123Z",
"error": null
}
FieldTypeDescription
urlstringThe link URL that was checked
finalUrlstring | nullFinal URL after redirects (null if no redirect)
statusCodeinteger | nullHTTP status code returned (null for timeouts or network errors)
statusstringResult: ok, broken, redirect, timeout, or error
foundOnstringURL of the page where this link was discovered
linkTextstringVisible anchor text of the link
responseTimeMsintegerTime in milliseconds to receive a response
checkedAtstringISO 8601 timestamp of when the check was performed
errorstring | nullError message for timeout/error results, null otherwise

How It Works

  1. Crawl — The actor fetches the start URL and parses all anchor links using BeautifulSoup
  2. BFS expansion — Internal pages are crawled breadth-first up to maxDepth to discover more links
  3. Deduplication — Each unique URL is only checked once, regardless of how many pages link to it
  4. HEAD-first checking — Links are validated with a fast HTTP HEAD request; if the server blocks HEAD (405/403), it falls back to GET
  5. Concurrent checking — All collected links are checked in parallel using concurrency to minimise run time
  6. Classification — Each result is tagged as ok (2xx/3xx), broken (4xx/5xx), redirect (final URL differs), timeout, or error

FAQ

How many links can this actor check per run? By default up to 500 links. You can increase maxLinks up to 10,000. For very large sites, run multiple actors with different start URLs.

Does it check JavaScript-rendered links? No — this actor parses static HTML. Links injected by JavaScript after page load will not be detected. For JS-heavy sites, consider a Playwright-based actor.

What counts as a broken link? Any link returning a 4xx or 5xx HTTP status code. Timeouts and network errors are also flagged separately as timeout or error.

Can I check only internal links? Yes — set checkExternal to false to skip links pointing to other domains.

Will it follow redirects? Yes. The actor follows redirects automatically and records the final URL. If the final URL differs from the original, the result is tagged as redirect.

Integrations

Connect Broken Link Audit with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.

Run Broken Link Audit on a schedule to continuously monitor your website for dead links — and automatically notify your team the moment a broken URL is detected.