Free ai search readiness check
JavaScript SEO Checker: is your content in the HTML?
Many crawlers, including most AI crawlers, read the HTML the server sends and never run your JavaScript. Check how much of the page they actually see.
Check the initial HTML
Enter a page. The checker counts the content in the HTML before any script runs.
Why use the JavaScript SEO Checker
Words before scripts
The visible text of the server HTML is counted, so an empty application shell stands out immediately.
Rendered comparison
When a browser is available the rendered page is compared with the HTML, showing how much JavaScript adds.
Headings and title
The H1 and the title are read from the HTML, the parts crawlers rely on most.
Framework agnostic
React, Vue, Angular, Svelte or plain scripts, the check only looks at what reaches the crawler.
When to use the JavaScript SEO Checker
Single page apps
Find out whether a client rendered site is readable without a browser.
SSR migrations
Confirm that server rendering really ships the content after moving to Next.js, Nuxt or Astro.
AI visibility
Content that needs JavaScript is invisible to most AI crawlers.
Hydration bugs
Catch pages where the server sends a placeholder and the client fills it in.
Lazy loaded sections
See whether reviews, FAQs and descriptions loaded on scroll are in the HTML.
Social previews
Link preview bots read only the HTML, just like AI crawlers.
Understanding JavaScript SEO
Why the initial HTML matters
Google renders JavaScript, but later and with limits. Bing renders less. Most AI crawlers, link preview bots and many SEO tools do not render at all. For them, the page is whatever the server sends.
Server side rendering, static generation or prerendering put the content in the HTML. Client side rendering leaves the HTML nearly empty until scripts run.
How to fix an empty shell
- 1Render on the server. Use the server rendering or static generation of your framework for content pages.
- 2Prerender. If you cannot change the framework, prerender the public pages at build time.
- 3Keep metadata static. Titles, descriptions, canonicals and structured data should be in the server HTML.
- 4Avoid content behind interaction. Text that only appears after a click or a scroll is easy for crawlers to miss.
Reading the result
A very low word count in the HTML is the clearest signal. When the rendered comparison is not available, the check reports the HTML count alone and says so, rather than guessing.
Privacy, safety and limits
The check runs on Aback servers. It identifies itself as AbackAuditBot, and when it tests what an AI crawler receives it sends that crawler's user agent from the same servers. It never sends a cookie or a password and never changes the site.
It cannot tell you whether an assistant will cite you. It tells you whether the assistant can reach and read your pages, which is the part you control.
Related tools and guides
Frequently asked questions
Does Google run JavaScript?
Yes, Googlebot renders pages with a recent Chromium, usually after an initial crawl of the HTML. Rendering can be delayed and resources can fail, so content in the HTML is still more reliable.
Do AI crawlers run JavaScript?
Most do not. GPTBot, ClaudeBot, PerplexityBot and similar crawlers generally read the server HTML only.
My site is built with React. Is that a problem?
Only if it renders on the client. React with server rendering, as in Next.js, ships the content in the HTML and passes this check.
What is a good word count?
It depends on the page. The point is the difference: if the rendered page has hundreds of words and the HTML has almost none, crawlers that do not render see an empty page.
Why does it say the rendered comparison is not available?
Rendering needs a headless browser. When none is available for the check, only the HTML is measured and the report says so.
Does this affect link previews?
Yes. Slack, LinkedIn, X and messaging apps read the HTML only. Open Graph tags added by JavaScript are not seen.
Is dynamic rendering still recommended?
Google now calls it a workaround. Prefer server rendering or static generation for pages that need to be found.