JavaScript & single-page-app crawling
LinkSweep crawls JavaScript-rendered sites the way a browser sees them. When a page's raw HTML is an empty framework shell — common with React, Vue, Angular, Next.js and Nuxt — LinkSweep detects it and re-renders the page through headless Chromium, then scans the fully rendered DOM for broken links, images and SEO issues. It reads your robots.txt and sitemap through the same browser, so it crawls the whole site, not just the homepage.
Most link checkers read only the raw HTML your server returns. On a modern client-rendered app that HTML is often an empty shell — no content, no navigation — so a basic crawler sees one blank page and stops. LinkSweep handles these sites without any setup on your side.
How it works
- Fast first pass. LinkSweep reads the raw HTML your server returns, just like any crawler — quick and light for the many sites that are server-rendered.
- Shell detection. If a page is a client-rendered shell with no real content or links, LinkSweep recognises the framework signature — Next.js, Nuxt, Gatsby, Remix, Angular, React, or a generic JavaScript bundle.
- Real-browser render. It re-fetches each page through a headless Chromium renderer (Playwright), self-hosted on LinkSweep's own EU servers, and scans the fully rendered DOM.
- Full-site discovery. It reads your robots.txt and XML sitemap through that same browser, so it finds and crawls every page — not just the entry point — even when the raw HTML ships no links.
What it catches on JavaScript sites
- Broken links added by client-side routing, not present in the raw HTML
- Broken and lazy-loaded images that only appear after render
- Missing or duplicate titles, meta descriptions and Open Graph tags in the rendered
<head> - Pages that never render — blank shells and hydration failures a status-code monitor would report as healthy
Frameworks it recognises
React, Vue, Angular, Next.js, Nuxt, Gatsby, Remix and SvelteKit — plus generic JavaScript bundles. There's nothing to configure: detection and the switch to browser rendering are automatic, per page.
The same real browser handles bot protection
Security services like Akamai and DataDome serve a JavaScript challenge that a plain HTTP crawler can't clear. Because LinkSweep can render in a real browser, it retries the challenge through headless Chromium and, once cleared, crawls the rest of the site from your sitemap in render mode. If a firewall still blocks it, LinkSweep tells you which service and gives you a one-time allowlist guide. See how this compares to other tools on the comparison page.
Honest limitations
We'd rather tell you what LinkSweep can't do than over-promise:
- If a site ships a pure client-rendered shell and even a real browser can't surface its navigation, LinkSweep won't guess — it reports the page as a JavaScript-rendered site and recommends enabling server-side rendering (SSR) or pre-rendering, usually a one-line config change.
- Content behind a login, or that only loads after user interaction (infinite scroll, click-to-load), isn't crawled.
Frequently asked questions
Does LinkSweep work with React, Vue, and Next.js sites?
Yes. When a page's raw HTML is an empty framework shell, LinkSweep detects the framework and re-renders the page through headless Chromium, then scans the fully rendered DOM for broken links, images and SEO issues. No configuration is needed.
Do I need to configure anything for JavaScript rendering?
No. LinkSweep reads the raw HTML your server returns first, and only switches to browser rendering when it detects a client-rendered shell. Detection and switchover are automatic.
How does LinkSweep find all my pages if links are added by JavaScript?
It reads your robots.txt and XML sitemap through the same headless browser and crawls from there, so it discovers your whole site even when the raw HTML ships no navigation links.
Can it crawl a JavaScript site behind Cloudflare or Akamai?
Often yes. The same headless-Chromium path clears JavaScript bot-protection challenges from services like Akamai and DataDome. If a firewall still blocks the crawler, LinkSweep identifies which one and gives you a one-time allowlist guide.
Where does the JavaScript rendering happen?
On LinkSweep's own servers in the EU (Estonia), using a self-hosted headless Chromium (Playwright). Your URLs are not sent to any third-party rendering service.
Scan your JavaScript site free
Run a whole-site scan and see the issues a status-code monitor misses. No credit card required.