I tested a page made entirely of JavaScript: here's how LLMs react

On October 2, 2025, I created an experimental page on my website , https://guychefaitdestests.com/nova-lumina/. This page features a completely fictional shoe, whose specifications were invented with the help of ChatGPT.

The goal of this test was to build a page entirely in JavaScript in order to observe how various large language models would interpret it.

For those who don’t know, JavaScript plays an essential role in building modern web pages. Unlike HTML, which structures content, and CSS, which handles styling, JavaScript makes a page interactive and dynamic. It’s what allows elements to be displayed on click, creates animations, and generates data directly in the browser. Plus, Google loves and requires JavaScript. That’s why many websites use JavaScript frameworks (such as React, Vue, or Angular): they offer a smoother user experience.

The point of this test was precisely to see whether LLMs are capable of understanding a page that relies solely on JavaScript, without any static HTML.

To prevent Google from indexing the site, I've implemented several measures: I added a tag noindex on the page. I also deindexed all the images. To make sure the page hadn't been indexed by Google, I then checked in the Search Console  then using the command site: I noticed in Google that the URL and its images weren't showing up. Finally, I configured the file robots.txt with the following instructions:

User-agent: Googlebot
Disallow: /nova-lumina/

The idea behind this approach was to completely rule out Google and see if LLMs can hold their own on their own. In fact, it’s said that some language models rely on enterprise services like SerpAPI to query Google’s SERP and retrieve web pages. So I wanted to ensure that the page could not be found on Google under any circumstances, in order to test solely the LLMs’ ability to execute JavaScript.

Less than 5 minutes after publishing the page, I ran tests on several models: Perplexity, Mistral, Gemini, ChatGPT, DeepSeek, and Bing Copilot. For each one, I submitted the same query (also known as a prompt):

Que contient cette page : https://guychefaitdestests.com/nova-lumina/ ?  
Donne les informations de la partie : À propos de cet article

Here's the screenshot I took for Search Console:

 

I took some more screenshots to show you the results displayed by the LLMs.

Perplexity, in deep-search mode, was able to execute the JavaScript and display the page's full content.

Mistral was also able to convey the information.

Bing Copilot, of course, was also able to execute the JavaScript and display the content correctly. However, neither Gemini nor ChatGPT was able to execute the script and render the JavaScript. DeepSeek’s failure was also predictable.

Mistral screenshot
screenshot of Mistral

One thing struck me as odd: on Saturday, October 11, 2025—more than a week after my tests conducted on October 2, 2025—Bing still hasn’t indexed the page. I’ve noticed that a page blocked in the robots.txt file for Google is also blocked for Bing; it doesn’t appear in Bing’s SERP.

This test highlights a major difference in how LLMs process the content of web pages.

Based on what I've observed and understood, two (2) models simulate the behavior of a web browser: they don't just read the source code; they follow the page's instructions (JavaScript) to reconstruct the final display.

Others, on the other hand, perform static analysis: they only read the initial code (HTML) without executing the scripts. As a result, they have access only to the initial structure, not to elements that appear dynamically.

In a previous test, I showed that when dynamically generated content is indexed by Google, ChatGPT Search has access to that content. This is how I proved that ChatGPT didn’t just scrape Google’s SERP—it also had access to content indexed by Google: see the test and the summary of the findings on LinkedIn: see the post (I’ll write a more detailed article to explain the approach I took).

This test allowed me to observe several facts, which I can summarize as follows:

Block Googlebot in the file robots.txt often serves as a signal not to crawl. This directive is also followed by many other indexing or training crawlers, such as Bingbot and GPTBot, which may cause them to ignore the resource.

On the other hand, certain content search or retrieval systems that feed LLMs—such as those used by Perplexity, Mistral, or Bing Copilot—may, in some cases, retrieve the page using a rendering engine, execute the JavaScript, and reconstruct the final DOM, even when the URL is not crawled by traditional crawlers.

For publishers and website owners, it’s important to understand that some LLMs can retrieve a page’s content when it’s already accessible or indexed by Google.
However, given the crawl, rendering, and content access restrictions that Google is implementing and gradually tightening, it would be risky to rely solely on this indirect gateway to obtain content.
If the goal is to make content readable and usable by AI models, the best approach remains to provide a static HTML version or, at a minimum, a hybrid rendering that allows bots to retrieve essential information without relying on JavaScript execution.

Back to top