How to v1.0, updated 2026-07-07

Why AI cannot see content behind JavaScript

Non-rendering crawlers get the shell, not the content and how to fix it.

Most AI answer crawlers do not run JavaScript. GPTBot, ClaudeBot, PerplexityBot and Common Crawl fetch the raw HTML your server sends and read that. If your content is injected by JavaScript after the page loads, into tabs, accordions, lazy sections or a client rendered app, those crawlers get an empty shell.

A browser hides this from you because it runs the JavaScript and fills the page in. So the page looks complete to you and to Googlebot, which does render, while an AI bot sees almost nothing.

Check it with See as bot in Kenovar. It fetches the page as a non rendering AI crawler and as a browser, and shows the two side by side with the missing lines marked.

The fix is to server render the content that matters, or to include it in the initial HTML. Tabs and accordions are fine as long as the text is present in the markup and only hidden with CSS, not loaded on click. If an engine cannot read a passage in the raw HTML, it cannot cite it.

Read next

What internal PageRank is

How link equity flows through your own site, and why buried pages lose out.

What crawl budget is

The finite attention a crawler gives your site, and how it gets wasted.

What a redirect chain is

One URL that bounces through several before it resolves, and the cost.

All topics