Do AI crawlers run JavaScript?
Some do and some don't, and it can change. The safe assumption is that an AI tool might read only the HTML your server sends.
Google says Googlebot renders JavaScript, though rendering can happen later than the first crawl. Since Google's AI Overviews and AI Mode sit on Google's index, they get the rendered version. Other AI fetchers, including some that grab a page live when someone asks a question, are lighter and may not run scripts at all. If the copy isn't in the first HTML, they can miss it.
Which sites are at risk?
Sites where the content is built in the browser. That's common with some page builders, single-page apps and plugins that load content after the page appears.
- Single-page apps built with React, Vue or Angular that render only in the browser.
- Prices, menus or stock pulled in from another system after the page loads.
- FAQs, reviews or tabs that only exist in the page once clicked.
- Pages that show a loading spinner before any text.
- Booking or quote widgets that hold the key facts inside an embedded frame.
How do you test whether your site works without JavaScript?
Five minutes, no tools to buy. Do it on your homepage and your top service or product page.
- Open the page, right-click and choose View Page Source. Search for a sentence from the page, a price and an FAQ answer.
- Turn JavaScript off in your browser's developer settings, reload, and read what's left.
- In Google Search Console, use URL Inspection and View crawled page to see the HTML Google stored.
- Fetch the page from the command line with curl and check the copy is in the response.
- Ask an assistant to read the page URL and summarise it. Note anything it misses or gets wrong.
- List every key fact that only appears with JavaScript on. That's your fix list.
How do you fix a site that needs JavaScript?
Send the copy in the HTML. Most modern frameworks can do this already, it just has to be switched on.
Google recommends server-side rendering, static rendering or hydration, and calls dynamic rendering, where bots get a different version, a workaround rather than a long-term fix. On Next.js, Nuxt or Astro, render pages on the server or build them as static HTML. On WordPress, check that page builders and plugins output text rather than inject it. For widgets, put the key facts in plain text next to them.
Can you still use animations and interactive bits?
Yes. The rule is: words first, effects second. Scripts can animate text that's already in the page, not create it.
This site works that way. Every heading, price and FAQ answer is in the static HTML. Animations only hide content when JavaScript is running, and collapsed FAQ answers stay in the page. Turn scripts off and you lose the motion, not the words.
Is this the same as blocking AI crawlers?
No. Blocking is a robots.txt choice. This is about whether a crawler you've allowed can read anything once it arrives.
You need both right. Allow the crawlers you want, such as OAI-SearchBot for ChatGPT search, and make sure the page they reach has the copy in it. Our guide to AI crawlers and robots.txt covers the first half.
