Gerris home
Gerris

Chris Abraham: technical consulting, AI tools, and technical SEO

Home › Guides › JavaScript SEO

How to tell if JavaScript is hiding your content from Google and AI

A page can look complete in a browser and nearly empty to a crawler. When the important content depends on JavaScript, search engines may see less of it, later, and AI crawlers may not see it at all.

How crawlers handle JavaScript

Googlebot renders pages with an up-to-date version of Chromium, so it can run JavaScript. Rendering happens in a queue after the initial crawl, though, and the renderer behaves like a very patient visitor who never clicks, never types, and never scrolls the way a person does. It loads the page with a tall viewport and takes a snapshot. Content that waits for a click, a real scroll event, or a user action can be missing from that snapshot.

Most AI crawlers are simpler. GPTBot, ClaudeBot, PerplexityBot, and similar crawlers generally fetch the HTML the server sends and read it without running JavaScript. If your product details, prices, reviews, or answers exist only after scripts run, those crawlers see a shell.

Five tests that settle it

1. Compare view-source with the rendered page

Open the page, then open view-source. View-source shows the HTML your server sent; the Elements panel in developer tools shows the DOM after JavaScript ran. Search view-source for a sentence from the content you care about. If it's missing, crawlers that don't render can't see it.

2. Fetch it from the command line

curl -sL https://example.com/products/widget-200 | grep -c "Specifications"

A count of zero means the text isn't in the server's HTML.

3. Disable JavaScript

Turn off JavaScript in your browser's developer tools and reload. What remains is roughly what a non-rendering crawler gets.

4. Ask Google directly

In Search Console, run URL Inspection on the page, click "Test live URL," then "View tested page" and the HTML tab. That's the HTML Google rendered. If your content is missing there, Google doesn't have it.

5. Crawl both ways

Crawl a sample of pages in Screaming Frog with JavaScript rendering off, then on, and compare word counts by template. In one diagnosis I ran, category pages yielded thousands of words while flagship product pages yielded 250 to 400 words despite weighing more than a megabyte, which pointed straight at the product template.

Common causes

Fixes

Writing the ticket

Developers fix these problems fastest with evidence: the affected template, example URLs, the word count with and without rendering, the Search Console live test result, and a testable definition of done, such as "a curl of the product URL returns the specification table." There's a sample ticket on the developers page.

References