Can AI assistants read a website built with JavaScript?
Short answer
Sometimes, but not reliably. Some AI crawlers fetch only the raw HTML a server sends and don't run scripts, so facts that appear only after JavaScript runs may never be seen. Check by viewing the page source: if your services, cities and phone number are in it, they can be read.
A website built with JavaScript is readable to AI assistants only some of the time, because some AI crawlers fetch only the raw HTML of a page and don’t run its scripts, so anything that appears only after JavaScript runs may never be seen. A site can use plenty of JavaScript and still be readable. The test is whether your business facts are in the HTML the server sends, or are added afterward inside the visitor’s browser.
Why this happens
Running scripts is extra work, and a crawler can skip it. When a person opens a page, the browser downloads the HTML and then runs the scripts, which may fetch more content and insert it. The person sees the finished page. A crawler that doesn’t run scripts sees only what arrived first.
Google documents that its search crawler renders JavaScript, although the rendering can happen later than the first fetch. I wouldn’t assume the same of every AI crawler, and their operators don’t all say. The safe working assumption is that if a fact is missing from the raw HTML, some readers will miss it.
What is usually at risk
| Content | Risk of being missed |
|---|---|
| Text typed into an ordinary WordPress page | Low. The server sends it as HTML |
| A site built as a single-page application that draws itself in the browser | High. The raw HTML can be close to empty |
| Reviews shown through a third-party widget | High. They are usually loaded by a script |
| Structured data added through a tag manager | High. It exists only after scripts run |
| Text inside tabs or accordions | Usually low. The text is often in the HTML and only hidden, but check |
| A phone number swapped in by a call tracking script | The raw HTML holds the original number, so make sure that one is correct |
How to check your own site
You can do this yourself in a few minutes.
- Open one of your service pages, right-click and choose View Page Source. Don’t use Inspect, which shows the page after scripts have run.
- Search the source for your phone number, for a sentence from the main text, and for a city you serve, such as Oceanside.
- As a second test, turn off JavaScript in your browser settings and reload the page.
If the facts are there in both tests, a crawler that skips scripts can read them. If the source is mostly code with none of your wording in it, it can’t.
How it gets fixed
The server has to send finished HTML. Developers call this server-side rendering, or building static pages ahead of time, and on an application-style site it’s a real project. I’d get a developer’s estimate before committing to it.
On most small business sites the fix is smaller. Write the phone number, service area and hours as plain text on the page. As part of entity and schema work, put the structured data in the page template so it doesn’t depend on a tag manager. Quote a few real reviews as ordinary text next to the widget. Rendering problems of this kind are part of technical SEO, and they affect search engines as well as assistants.
Reading a page and using it are different things
A crawler that can read your text may still be unable to use your booking tool. Forms and schedulers nearly always depend on JavaScript, and so do chat boxes. Whether AI assistants can book appointments or request quotes on your site for a customer is a separate question. Blocking is separate again: a page can be written in perfect HTML and still be refused at the firewall, whether or not anyone meant to block AI crawlers.