Custom Web Audits
Run Audit Demo Audit Audit Types Free Tools Pricing What We Analyze 🔒 Login
← All free tools
⚛️

JavaScript Rendering Checker

Find out whether your content is in the raw HTML or only appears after JavaScript runs. Search engines and AI crawlers that don’t fully execute JS may miss client-side content — this flags pages at risk and explains the fix.

⚡ Interactive demo — sample data
Only 38 words are in the raw HTML — this sample page leans on JavaScript to render its content.
Text crawlers see without JS — 38 words in the raw HTML Issue
JavaScript files — 11 external + 4 inline (heavy client-side bundle) Warning
Client-side app shell — Detected (Next.js): empty mount node, content injected by JS Warning
Framework fingerprint — /_next/ markers found in the HTML
Verdict — most content renders via JavaScript; non-rendering and many AI crawlers may see little. Consider server-side rendering or pre-rendering. Issue

About this tool

Find out whether your content is in the raw HTML or only appears after JavaScript runs. Search engines and AI crawlers that don’t fully execute JS may miss client-side content — this flags pages at risk and explains the fix.

How it works

Enter your page URL
Paste any public URL and run the check. We fetch the page's raw HTML exactly as it arrives from your server — before any JavaScript runs — which is the same starting point every crawler sees on its first pass.
We measure what's in the raw HTML
We strip out scripts, styles and noscript, then count the actual readable words left in the body. We also count your JavaScript files and look for tell-tale single-page-app shells — an empty <div id="root"> / app / __next / __nuxt, or framework fingerprints like /_next/, data-reactroot and ng-version.
Read the verdict and decide on a fix
If there's little text and a heavy app shell, the page leans on JavaScript to render — content crawlers that don't run JS may miss it. We flag the risk and point you to the fixes: server-side rendering, static generation, pre-rendering or dynamic rendering. Note: this is a fast heuristic on the raw HTML — we do not execute JavaScript here. The full JS-rendered comparison is part of the paid audit.

What we check

Common issues we catch

Where this matters

Frequently asked questions

What does this checker actually do?
It fetches your page's raw HTML — the version your server sends before any JavaScript runs — and measures how much readable content is already there. It also flags single-page-app shells and framework fingerprints. It's a fast, free heuristic; it does not execute JavaScript, so it shows what a non-rendering crawler sees on first fetch.
Why does it matter if my content needs JavaScript to show?
Some crawlers don't run JavaScript, and others (like Google) run it in a delayed second wave. If your content only appears after JS executes, raw-HTML crawlers — including many AI bots, Bing and social scrapers — may see a near-empty page. That can cost you indexing, rich previews and AI-answer visibility.
Doesn't Google render JavaScript anyway?
Yes, Googlebot can render JavaScript — but in a separate, deferred pass that can slow indexing, and it isn't guaranteed for every page. Other crawlers and AI bots often don't render at all. Putting content in the raw HTML removes that dependency and gets you reliably seen by everyone.
What is an 'app shell' and why is an empty one a problem?
An app shell is the minimal HTML a single-page app ships — usually an empty <div id="root"> or similar — into which JavaScript later injects all the real content. If a crawler doesn't run that JavaScript, it sees the empty shell and none of your content.
How do I fix a JavaScript-rendering problem?
Get your content into the HTML before it reaches the crawler. The main options are server-side rendering (SSR — the server builds the HTML per request), static generation (SSG — pages pre-built at deploy time), pre-rendering (serving a cached rendered snapshot), or dynamic rendering (serving rendered HTML specifically to bots). SSR and SSG are the most robust.
Why does my page look full in the browser but the tool reports few words?
Your browser ran the page's JavaScript and built the content, so it looks complete. This tool measures the raw HTML before JS runs — the same thing a non-rendering crawler fetches. The gap between the two is exactly the content at risk of being invisible to those crawlers.
Will fixing this guarantee my page gets rendered correctly by crawlers?
It removes the biggest risk. Putting content in the raw HTML means crawlers don't have to render anything to see it. This tool can't confirm a successful JavaScript render — it only reads raw HTML. The full executed-render comparison, which checks what content appears after JS runs, is part of our paid audit.
Is some JavaScript on a page always bad for SEO?
No. JavaScript is fine — the issue is relying on it for your core content and links. Interactive widgets, analytics and enhancements can load via JS without harm, as long as your important text, headings and internal links are present in the raw HTML before any script runs.

This is one of several free SEO tools from Custom Web Audits. For a complete, prioritized analysis of your whole website, run a full audit.