Your website looks great. Inventory loads, photos slide, the filters work. So it is jarring to learn that the AI assistants more and more of your buyers now use may see almost none of it. Not because your cars are bad or your prices are wrong, but because of how the page is built. Here is what is actually happening, and how to check it yourself in a few minutes.
What an AI crawler actually does
When an AI assistant answers a question about cars, something has to read the web for it. That job falls to crawlers, automated programs with names like GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot, and Googlebot. They fetch a web page and try to extract its meaning.
The catch: many of these crawlers fetch only the raw HTML that your server sends, and read that. They do not behave like a person’s browser. They do not wait several seconds for scripts to finish, they do not scroll, they do not click “load more,” and they frequently do not run JavaScript at all. A widely-cited estimate is that roughly two thirds of AI crawlers cannot execute JavaScript. They read what is in the document on arrival, and nothing else.
Why that breaks most dealer inventory
Most dealer websites are built as what developers call single-page applications. The page arrives nearly empty, then JavaScript runs in the browser, calls a database, and injects the inventory into the page. To you, this is invisible and instant. To a crawler that does not run that JavaScript, the page never fills in.
So the crawler sees something like this:
<body>
<div id="app"></div>
<script src="/inventory-bundle.js"></script>
</body>
vehicles found: 0
structured data: noneZero vehicles. No price, no mileage, no VIN, nothing to cite. The assistant cannot recommend a car it cannot see, so it recommends a dealer whose page it could read. You were never in the consideration set, and nothing in your analytics will tell you why.
Test your own site in three ways
You do not need a developer to get a strong signal. Try these from easiest to most precise.
1. The “view source” check
Open one of your vehicle detail pages in a desktop browser, right-click, and choose View Page Source (this shows the raw HTML, not the rendered page). Use your browser’s find function to search the source for the vehicle’s price or VIN. If the price is there in the raw source, good. If find returns nothing, the price is being drawn by JavaScript and a non-rendering crawler will miss it too.
2. The JavaScript-off check
Disable JavaScript in your browser settings and reload a vehicle page. What remains is close to what a non-rendering crawler sees. If the page is blank or the inventory vanishes, that is the problem in front of you.
3. Ask an assistant directly
Open ChatGPT, Copilot, or Perplexity and ask it to find a specific vehicle you currently have in stock, by year, make, model, and your city. See whether it finds your listing, a marketplace’s copy of your listing, or nothing. This tells you how you actually appear at the moment of a real query.
The good news: this is fixable, and it is the floor
Readability is not a ranking war you have to outspend. It is a build choice. The fix is to serve each vehicle as static HTML, the full car present in the document the server sends, so any crawler can read it on the first try, with no JavaScript required. Pair that with structured data (see Vehicle schema markup for dealers) and your cars go from invisible to citable.
This is exactly the gap VIN Index closes: you send one inventory feed, and every vehicle is published as a fast, static, structured page built to be read and cited, with the inquiry routed back to you. The fastest way to see where you stand is to run the free Analyzer, which fetches your site the way an AI crawler does and shows you what it can and cannot read.