Scan entire websites and XML sitemaps to detect broken links, 404 dead links, server errors, and redirect chains with 100% local node execution and zero cloud markups.
Scan entire websites and XML sitemaps to detect broken links, 404 dead links, server errors, and redirect chains with 100% local node execution and zero cloud markups.
Scans across all modern publication vectors including <a> hyperlinks, <img> and <source> responsive srcset descriptors, stylesheets, scripts, videos, audios, and iframes.
Ultra-fast native HTTP checks (~0.3s/link) with automatic escalation to stealth Playwright Chromium when encountering Cloudflare Turnstile, DataDome, or client-rendered SPA shells.
Strictly triages status codes into 'ok', 'broken' (404/410/ENOTFOUND), 'blocked' (401/403/429/LinkedIn 999), and 'inconclusive' (500/timeout), eliminating 80%+ false positive reports.
Recursively parses nested XML sitemap indexes and decompresses gzipped (.xml.gz) sitemaps, auditing thousands of catalog URLs in parallel.
Validates in-page section hashes (#section-id) against target DOM elements, supporting HTML5 #top spec, GitHub user-content- markdown prefixes, and W3C Scroll-to-Text directives.
Detects modern Single Page Applications (Next.js, Vite, Remix) returning HTTP 200 OK while displaying client-rendered 404 templates via document title, heading, and meta robots inspection.
Templates & workflows
Audits all internal and external hyperlinks, images, scripts, and anchor fragments found on a single target page.
{
"urls": "https://example.com/blog/getting-started",
"limit": 50,
"timeout": 30,
"maxDepth": 0,
"onlyBroken": false,
"scrapeMode": "auto",
"concurrency": 10,
"checkExternal": true,
"checkFragments": true,
"checkImagesAndAssets": true
}Recursively unpacks XML sitemaps and sitemap indexes, auditing pages at high speed and yielding only confirmed broken or blocked links.
{
"urls": "https://example.com/sitemap.xml",
"limit": -1,
"timeout": 30,
"maxDepth": 0,
"onlyBroken": true,
"scrapeMode": "http",
"concurrency": 15,
"checkExternal": true,
"checkFragments": true,
"checkImagesAndAssets": false
}Deep crawler following internal links up to depth 2 to perform comprehensive internal link, asset, and anchor verification across documentation.
{
"urls": "https://docs.example.com",
"limit": 100,
"timeout": 30,
"maxDepth": 2,
"onlyBroken": false,
"scrapeMode": "auto",
"concurrency": 10,
"checkExternal": false,
"checkFragments": true,
"checkImagesAndAssets": true
}Broken Link Checker & Dead URL Auditor
An enterprise-grade, ultra-fast broken link checker, dead URL auditor, redirect chain tracker, and HTML5 anchor fragment verification engine for BrowserMesh.
Discovers, audits, classifies, and verifies hyperlinks, responsive picture sources (srcset), CDN stylesheets, scripts, videos, audio tracks, and embedded frames across entire websites or XML sitemaps using high-throughput HTTP checks and automatic Playwright stealth browser escalation.
The premier high-speed, free alternative to Screaming Frog (£209/yr), Ahrefs Broken Link Checker ($99+/mo), Sitebulb, and legacy single-threaded link checkers.
#section-id).<picture> descriptors, CDN stylesheets, and checkout iframe sources return HTTP 200 OK without broken media placeholders.Audits hyperlinks and embedded media across all modern HTML5 publication vectors:
<a href="..."> and <area href="..."> with rel="nofollow" detection and anchor text capture.<img src="...">, <img srcset="...">, <source srcset="...">, <video src="..." poster="...">, <audio src="...">, and <track src="...">.<link rel="stylesheet" href="...">, <script src="...">, inline <style> url(...), and @import stylesheets.<iframe src="...">, <frame src="...">, and <object data="...">.<blockquote cite="...">, <q cite="...">, <del cite="...">, and <ins cite="...">.<meta http-equiv="refresh">, OpenGraph tags (og:url, og:image), Twitter cards (twitter:image), and JSON-LD structured data URLs (sameAs, image, logo).auto / http / browser)fetch() pipeline (~150–400ms per link check) with Chrome Desktop User-Agent, Brotli/Gzip decompression, and HEAD-with-GET fallback. Zero browser memory overhead.CloakBrowser) for client-hydrated Single Page Applications (Next.js, React, Vue, SvelteKit) and JavaScript-rendered DOMs.Traditional link checkers flood reports with false positives by marking Cloudflare 403 blocks or 429 rate limits as "broken". BrowserMesh strictly categorizes every check into 4 non-overlapping triage buckets:
ok: Verified live URL returning HTTP 200–299 or healthy redirect chain.broken: Confirmed dead page (404 Not Found, 410 Gone, DNS ENOTFOUND, SPA Soft-404, or dead anchor fragment).blocked: Live destination protected by anti-bot walls or authentication (401 Unauthorized, 403 Forbidden, 406 ModSecurity, 429 Rate Limit, 451 Legal, LinkedIn 999).inconclusive: Transient network failure or upstream server outage (500 Internal Error, 502 Bad Gateway, 503 Unavailable, 504 Gateway Timeout, connection reset)..xml & .xml.gz)https://example.com/sitemap.xml) to audit all catalog URLs directly without manual page extraction.<sitemapindex> hierarchies down to all child partition files..xml.gz) commonly utilized by Shopify, Amazon S3, and large-scale publishers.Validates that targeted section hashes (https://example.com/docs#installation) actually exist on destination pages:
id="installation" or <a name="installation">.#top and #TOP exemptions.id="user-content-installation").#:~:text=...).Catches Single Page Applications (Next.js App Router, Vite, Remix, Angular) returning HTTP 200 OK while rendering "Page Not Found" templates by evaluating page <title>, primary headings (<h1>, <h2>), and meta robots noindex directives.
Retry-After and RateLimit-Reset headers on HTTP 429 responses.https://www.youtube.com/oembed) rather than the heavy watch page, verifying video availability without bot blocks.HEAD requests to root in circles and automatically falls back to standard GET requests..png, .css, .js) from crawl queues so only genuine HTML documents expand multi-depth traversals.Every audit yields detailed diagnostic records adhering to the BrowserMesh unified output specification:
https://example.com/sitemap.xml directly into urls. The engine automatically expands nested <sitemapindex> hierarchies down to all child partitions and decompresses .xml.gz archives.onlyBroken for CI/CD: In automated deployment checks, enable onlyBroken: true to receive clean, compact reports containing only 404 dead links, broken images, and redirect anomalies.concurrency: 10 for public internet audits to prevent tripping target DDoS rate limits; raise to concurrency: 20 for internal staging servers on high-bandwidth local networks.blocked from broken: Third-party sites (LinkedIn, Cloudflare-protected domains) will be classified under category: "blocked", ensuring your team focuses exclusively on genuine dead links rather than anti-bot false alarms.Q: How does the plugin detect SPA soft-404 pages?
When an internal page returns HTTP 200 OK, the engine evaluates the <title> tag, primary headings (<h1>, <h2>), and meta robots noindex directives against a curated taxonomy of 404 patterns. If the content matches standard "Page Not Found" templates, the verdict is flagged as isBroken: true with category: "broken".
Q: Why are LinkedIn and Cloudflare links marked as "blocked" instead of "broken"?
LinkedIn returns HTTP 999 to automated scrapers, and Cloudflare frequently returns HTTP 403 or challenge pages. Because these links work perfectly for human visitors using standard web browsers, marking them as broken creates false positive noise. Triaging them as blocked keeps reports accurate.
Q: How are YouTube links verified without hitting bot blocks?
Rather than loading the heavy YouTube watch page which enforces strict bot throttling, the plugin queries the official YouTube oEmbed API (https://www.youtube.com/oembed?url=...). This returns HTTP 200 for live videos, 404 for deleted/private videos, and 401 for restricted content.
Q: Can I audit gzipped sitemaps (.xml.gz)?
Yes. The plugin includes a built-in decompression pipeline using native zlib.gunzipSync. It automatically detects gzip magic headers and file extensions, allowing seamless auditing of Shopify, Amazon S3, and enterprise sitemaps.
Q: How does the plugin handle Nginx redirect loops?
If a web server misconfigures HEAD requests to redirect in an infinite loop (e.g., returning HTTP 307 redirecting back to /), the engine automatically detects the cycle and recovers by executing a standard GET request.
This workflow executes natively within your local or peer BrowserMesh node using real Chromium browser automation. It navigates dynamically rendered single-page applications, executes interaction logic, avoids cloud proxy fees, and extracts clean structured datasets directly to your local machine with complete security and privacy.
Unlike legacy cloud scraping APIs that impose expensive per-request markups and risk IP bans, BrowserMesh routes execution through authentic residential environments. You pay zero cloud data transfer fees, experience full anti-bot stealth emulation, and retain 100% ownership of your extracted datasets without vendor lock-in.
3 records · 10 nested fields · real execution preview
Combine complementary browser automation and auditing workflows to verify site health, infrastructure, and search engine crawlability with 100% local execution.
Discover who hosts any website. Detect cloud infrastructure, CDN edge networks, IP geo, and DNS routing instantly.
Audit on-page SEO factors, meta tags, heading structures, Core Web Vitals, and SERP snippet previews with local privacy.
Verify robots.txt compliance, sitemap directives, and autonomous AI search bot permissions (GPTBot, ClaudeBot, Perplexity).
Explore our comprehensive guides or reach out directly to our engineering support team.