WritingGuide
Is your page blank without JavaScript? A 2-minute curl test
By Rues · Published · Updated
Sources checked on
If the main text of your page is in the first HTML the server sends, a tool that does not run JavaScript can read it. If it is not, the page may look empty to that tool. You can test this yourself with curl, from your own computer, in two minutes.
Do AI crawlers run JavaScript?
The official documents do not answer this question, so no blanket "they do" or "they don't" can be written.
| Source | What it says |
|---|---|
| Googlebot queues pages and, when resources allow, renders them in a headless Chromium that runs JavaScript. The same guide says server-side or pre-rendering is a good idea because "not all bots can run JavaScript" (last updated 4 March 2026). | |
| OpenAI (OAI-SearchBot, GPTBot, ChatGPT-User) | The crawler page explains what each bot is for and how robots.txt applies. We found no sentence about running JavaScript. |
| Anthropic (ClaudeBot, Claude-User, Claude-SearchBot) | The support page explains what each bot is used for. We found no sentence about JavaScript. |
| Perplexity (PerplexityBot, Perplexity-User) | The bot page explains each bot's job and lists IP ranges. We found no sentence about JavaScript. |
We read these pages on 20 October 2026. Not finding a sentence does not mean the bots do not run JavaScript; it only means the companies do not say.
There is one third-party source. Vercel measured traffic on its own network and, in a study published on 17 December 2024, wrote that the crawlers of OpenAI, Anthropic, Meta, ByteDance and Perplexity did not execute JavaScript. The same study says Google's Gemini infrastructure and Apple's crawler do. That is one company's measurement on its own network, and almost two years old; we could not confirm it still holds. So the rule stays simple: do not leave your main text to JavaScript.
How do you run the 2-minute curl test?
curl is a command-line tool that requests an address without a browser and prints the answer exactly as received. That is the same thing a tool that does not run JavaScript would see. The examples below use two made-up test pages called "Example Store": in one the text is in the HTML, in the other JavaScript writes it.
1. Pick a long, distinctive sentence on your page. For example: "Orders of 500 TL and over ship free."
2. Search for part of that sentence in the first HTML:
curl -s https://example.com/ | grep -c 'ship free'
grep -c prints the number of matching lines. 1 or more means the sentence is in the first HTML. 0 means it is not.
On the test page with the text in the HTML (we really ran it on a local server on 20 October 2026), the output was:
1
On the test page where JavaScript writes the text (same run), the output was:
0
3. Check the title and the main heading:
curl -s https://example.com/ | grep -o '<title>[^<]*</title>'
curl -s https://example.com/ | grep -o '<h1[^>]*>[^<]*</h1>'
The page with the text in HTML returned both lines. The JavaScript page returned the title (the title was in the HTML) but not the main heading.
4. Check the status code:
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/
You expect 200. If you see 403 or 429, a security layer is cutting the request. That is a separate problem and has to be solved before the text matters (is a CDN such as Cloudflare blocking AI bots?).
Run these commands on your own site only.
How do you read the result?
| What you see | What it means | What to do |
|---|---|---|
| The sentence is in the first HTML | The main text comes from the server. Tools that do not run JavaScript can read it. | Nothing. Try your other pages too. |
| The sentence is missing, but visible in a browser | The text is written later by JavaScript. | Render the main text on the server or pre-render the page. |
| The title is there, the main text is not | The page shell arrives and the content is filled in later. | Same fix. Start with your most important pages. |
| Nothing comes back, or 403 | The request is being cut. | Fix access first. |
A note: this test imitates a tool that does not run JavaScript. It does not imitate Google. Google runs JavaScript, but its own guide says server-side rendering is good for speed and for other bots.
Does pretending to be a bot help?
You can give curl a bot identity (a user agent). With the string OpenAI's documentation lists for OAI-SearchBot:
curl -s -A 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot' https://example.com/ | grep -c 'ship free'
This only tests rules that look at the identity. The identity is plain text and anyone can write it. Real bots come from documented IP addresses and a firewall can decide on those; a request from your own computer does not imitate that. To see real visits you need your server log: AI bots in your server log.
Can you also turn JavaScript off in the browser?
Yes, but it is a different test. In Chrome, with DevTools open, you can open the command menu and run "Disable JavaScript" (Chrome's page is from 2019, so menu names may have changed). If the page is blank after a reload, the text depends on JavaScript. The difference: the browser test looks at the page as shown; the curl test looks at the first answer the server gives. The second is closer to what a bot-like tool sees.
Which pages should you test?
Not all of them. In this order: the homepage, your best-earning product or service page, your three most important guides, the pricing page. Pick one sentence on each and search for it.
Ruescan is Rueseo's site scanner. In our measurement of 30 Turkish homepages, "missing" meant we did not find the item in the first HTML, so a schema or heading added later by JavaScript may not have shown up (details and limits of the measurement). The same limit applies to your own check.
Frequently asked questions
My site is built with React, Vue or another JavaScript framework. What now?
Turn on your framework's server-side rendering (SSR) or pre-rendering (static generation) option, then run the test again. The right setting depends on the framework; this article does not cover it.
The text is in the first HTML, but could the page still look blank to a bot?
Yes. If a firewall or CDN cuts the request, the bot never sees the page. That is why you should check the status code too.
If the test passes, will I show up in AI answers?
No. The test only shows whether the text is in the bot's hands. It does not decide whether anything gets quoted.
Is it a problem if prices or stock levels arrive through JavaScript?
If the main meaning of the page is in the first HTML, small user-specific or fast-changing parts arriving through JavaScript are not a problem by themselves. If the price is the page's main information, we recommend putting it in the first HTML too. That is our recommendation, not a documented rule.
Does this work on Windows?
The exact form of the commands (especially grep and quotes) differs by operating system. We only tried them in a Linux terminal and did not verify Windows.
Sources
All read on 20 October 2026.
- Google Search Central, JavaScript SEO basics (last updated 4 March 2026): developers.google.com
- OpenAI, Overview of OpenAI crawlers: developers.openai.com
- Anthropic, Does Anthropic crawl data from the web, and how can site owners block the crawler: support.claude.com
- Perplexity, crawlers and user agents: docs.perplexity.ai
- Vercel, The rise of the AI crawler (17 December 2024): vercel.com
- Chrome for Developers, Disable JavaScript (last updated 31 January 2019): developer.chrome.com
- Rueseo, homepage measurement of 30 Turkish sites (19 October 2026): Are Turkish websites ready for AI?