In short
- Googlebot renders JavaScript, while Applebot may render content in a browser. In December 2024, Vercel and MERJ found that none of the major AI crawlers they named rendered JavaScript.
- Check whether your initial HTML contains the body text you want crawlers to receive.
- Check what AI crawlers receive via raw page source,
curlwithOAI-SearchBot/1.4, or our free GEO audit. - Fix JavaScript for SEO in 2026 with server-side rendering (SSR), static site generation (SSG) or prerendering so titles, facts and
noindextags sit in the initial HTML.
Which search and AI crawlers render JavaScript
Googlebot renders JavaScript, and Applebot may render content in a browser. Vercel and MERJ found that major AI crawlers did not render JavaScript and downloaded JavaScript files without running them. Because OpenAI, Anthropic and Perplexity publish no JavaScript execution documentation, a December 17, 2024 study by Vercel and MERJ is the main public evidence.
Vercel and MERJ found that "none of the major AI crawlers currently render JavaScript". They fetch scripts without executing them: 11.50% of ChatGPT's requests and 23.84% of Claude's requests were for .js files the bots never ran.
Google's Gemini uses Googlebot's infrastructure, which renders JavaScript, and Google's October 2026 documentation confirms robots.txt rules for Googlebot control Search, including AI Overviews and AI Mode. Apple's September 4, 2026 guide states Applebot powers Spotlight, Siri and Safari search and "may render the content of your website within a browser". Microsoft's October 2026 guidelines state Bing and Copilot "rely on the same core crawling, indexing, and ranking foundation" through Bingbot. See our AI crawlers list.
| Crawler or product | Operator | Role | JavaScript behavior (source) |
|---|---|---|---|
| OAI-SearchBot, GPTBot, ChatGPT-User | OpenAI | ChatGPT search, training, user fetches | Does not render JS (Vercel/MERJ, Dec 2024) |
| ClaudeBot, Claude-SearchBot, Claude-User | Anthropic | Training, search quality, user fetches | Vercel/MERJ named ClaudeBot among major AI crawlers that did not render JS (Dec 2024) |
| PerplexityBot, Perplexity-User | Perplexity | Search index and user-requested fetches | Vercel/MERJ named Perplexity when discussing major AI crawlers that did not render JS (Dec 2024) |
| Meta-ExternalAgent, Bytespider | Meta, ByteDance | Meta-ExternalAgent crawls for uses including AI training; Cloudflare lists Bytespider as an AI crawler | Vercel/MERJ named Meta and ByteDance when discussing major AI crawlers that did not render JS (Dec 2024) |
| Googlebot | Search, including AI Overviews; Gemini uses Googlebot's infrastructure | Renders JavaScript (Vercel/MERJ, Dec 2024) | |
| Applebot | Apple | Spotlight, Siri and Safari search | May render within a browser (Apple, Sep 2026) |
What happens to React, Vue and Angular single-page apps
Check whether your application's initial HTML contains the content you want crawlers to receive. Vercel and MERJ found in December 2024 that OAI-SearchBot and ChatGPT-User did not render JavaScript.
OpenAI documents in October 2026 that OAI-SearchBot is used "to surface websites in search results in ChatGPT's search features". ChatGPT-User handles "certain user actions in ChatGPT and Custom GPTs". Claude-User fetches pages when a person asks Claude, while PerplexityBot indexes pages for Perplexity search.
Check metadata and directives in the initial HTML:
- Titles and snippets: Check the title and meta description in the initial HTML.
- Crawler directives: OpenAI's October 2026 publisher FAQ notes that a URL blocked in
robots.txtbut learned from a third-party search provider may still show as a bare link and page title in ChatGPT search, while a readablenoindextag prevents that. Keepnoindexreadable by OAI-SearchBot. - Structured data: Check whether JSON-LD is present in the initial HTML.
How to check what AI crawlers receive on your site
- Use View Page Source, not Inspect Element. Right-click the page and choose "View Page Source". Search for your main H1 and a key sentence or price. Also check the response using the OAI-SearchBot user agent.
- Fetch with curl using OAI-SearchBot. OpenAI's October 2026 documentation states its search crawler user agent contains
OAI-SearchBot/1.4. Runcurl -A "OAI-SearchBot/1.4"against your URL to check for your H1, body text and JSON-LD. See our guide to OpenAI crawlers. - Run the FoundByChat GEO audit. Our free GEO audit requires no account, allows 5 audits daily, and fetches your page as OAI-SearchBot. It checks text present without JavaScript, page response, bot protection, OAI-SearchBot access, title and H1, menu or cookie text leaking into the snippet, the opening sentence, facts up front, meta description, JSON-LD, llms.txt,
robots.txtrules for OAI-SearchBot, GPTBot and ChatGPT-User,noindexand the sitemap. It rebuilds the title and ~200-character snippet ChatGPT's search keeps and returns a score out of 100.
Four ways to fix JavaScript rendering for AI crawlers
1. Server-side rendering (SSR)
Consider server-side rendering and check the resulting HTML.
2. Static site generation (SSG)
Consider static site generation for marketing, docs, pricing and blog pages, and check the resulting HTML.
3. Prerendering middleware at the CDN or proxy
If rewriting a legacy SPA is too costly, serve prerendered HTML to bot user agents, including OAI-SearchBot, ChatGPT-User, GPTBot, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot and Perplexity-User.
4. Put key facts and directives in the initial HTML shell
Fetch primary facts on the server, and keep <title>, <meta name="description">, <meta name="robots"> and JSON-LD in the server-rendered <head>.
After shipping server-rendered HTML, track your pages with FoundByChat. Free to start, it asks ChatGPT your customers' questions with web search on every 2 hours, recording whether ChatGPT's search found or cited your pages and listing the title and short snippet kept in its index.
Common JavaScript SEO mistakes that hide content from AI search
- Client-only data fetching in SSR apps: Check whether the initial HTML includes the main article or product table.
- Cookie banners and menus first in the DOM: Check whether menu or cookie text leaks into the ~200-character snippet ChatGPT's search keeps.
- Confusing GPTBot with OAI-SearchBot in
robots.txt: OpenAI documents in October 2026 that GPTBot crawls for model training while OAI-SearchBot surfaces sites in ChatGPT search, with independent settings. Blocking GPTBot does not remove a site from ChatGPT search. - Assuming
robots.txtblocks user fetches: OpenAI states in October 2026 that ChatGPT-User actions are user-initiated sorobots.txtmay not apply, and Perplexity documents on October 29, 2026 that Perplexity-User "generally ignores robots.txt rules".
FOUNDBYCHAT
Know the moment ChatGPT picks up your pages
We ask ChatGPT your questions every 2 hours and mail you what its index picked up or rewrote. Free to start: sign in with Google or an email link.
Questions
Does ChatGPT render JavaScript when crawling websites?
A December 2024 analysis by Vercel and MERJ found that none of the major AI crawlers rendered JavaScript, naming OpenAI's OAI-SearchBot, ChatGPT-User and GPTBot. While 11.50% of ChatGPT's crawler requests downloaded .js files, the bots do not execute them.
Do Google AI Overviews and Gemini read JavaScript websites?
Vercel and MERJ noted in December 2024 that Google's Gemini uses Googlebot's infrastructure, which renders JavaScript. Google's October 2026 documentation confirms that robots.txt rules for Googlebot control crawling for Search, including AI Overviews and AI Mode, while the Google-Extended token controls training Gemini models and grounding in Gemini Apps without affecting Google Search inclusion.
Why do I see OAI-SearchBot and ClaudeBot requesting .js files in my logs?
Vercel and MERJ found that the crawlers download JavaScript files without running them. Vercel and MERJ found in December 2024 that 11.50% of ChatGPT's requests and 23.84% of Claude's requests were for JavaScript files that the crawlers downloaded without running.
How can I test if OAI-SearchBot receives my page content?
Inspect your raw HTML with "View Page Source" in your browser, run a curl command with the OAI-SearchBot/1.4 user agent documented by OpenAI in October 2026, or run our free GEO audit (up to 5 audits a day, no account needed) to fetch your URL as OAI-SearchBot and check the text present in the HTML without JavaScript.
Sources
- Vercel and MERJ: The rise of the AI crawler (Dec 17, 2024)
- OpenAI: Overview of OpenAI crawlers (Oct 2026)
- OpenAI Help Center: Publishers and Developers FAQ (Oct 2026)
- Anthropic Support: Does Anthropic crawl data from the web and how can site owners block the crawler (Apr 7, 2026)
- Perplexity Docs: Perplexity Crawlers (Oct 29, 2026)
- Google Search Central: Overview of Google crawlers and fetchers (Oct 2026)
- Apple Support: About Applebot (Sep 4, 2026)
- Bing Webmaster Guidelines (Oct 2026)