Method and result come from our test on October 30, 2025. We have not repeated it since. What has changed at Google and the AI systems is covered in the section What has changed since?
- Google now writes that its AI search does not need structured data and that there is no special markup for it (as of July 10, 2026). Google still recommends structured data for rich results.
- Our test ran on a page with eight fictitious products. Each price was in exactly one source, for example in the visible HTML, in the JSON-LD or in hidden microdata. We asked ChatGPT, Claude, Gemini, Perplexity and Google AI Mode.
- No system named the price that was only in the JSON-LD. The prices found were mostly visible ones. Gemini also found a price inserted via JavaScript.
How AI systems get to web content
Whether schema markup makes it into an AI answer depends on the route by which the system knows the page. We distinguish four routes.
| Route | What happens | Role of schema | In our test |
|---|---|---|---|
| Training | Crawlers collect pages to train language models | Can be part of the training data | not tested |
| Indexing | Search engines store content and metadata | Very likely read here | indirectly, via answers after indexing |
| Search | The system searches the index for matching pages | Stored data is available | indirectly |
| Direct fetch | The chatbot fetches the page live | Depends on the parser | tested |
Our test mainly shows the direct fetch. For Perplexity and Google AI Mode, we also queried after the page was in their index. The test does not answer whether Google AI Overviews or Bing Copilot use schema from the index.
The three formats in brief
| Format | Where it sits | What Google says |
|---|---|---|
| JSON-LD | Its own <script> block, separate from the visible HTML | Recommended. Google also reads JSON-LD when JavaScript inserts it later. |
| Microdata | Attributes such as itemscope, itemtype and itemprop directly in the HTML | Equivalent, as long as the markup is valid |
| RDFa | Attributes such as vocab, typeof and property in the HTML | Equivalent, as long as the markup is valid |
One rule from Google's guidelines matters for the test. Structured data should only describe what users can also see on the page.
How the test was set up
The test page showed a fictitious product, “searchVIU Premium GEO Bears”, in eight variants. Each variant had its own price, and each price appeared in exactly one place. That way the answer shows which source a system has read. Some prices were deliberately only in invisible markup. This goes against Google's guidelines and is not a recommendation. In the test, it only separates the sources from each other. We removed the test page once the test was finished.
| Test | Product | Price | Source of the price |
|---|---|---|---|
| 1 | Blue | 5,99 € | Visible HTML, without schema |
| 2 | Unicorn | 12,99 € | Inserted via JavaScript after loading |
| 3 | Rainbow | 8,99 € | Only in the JSON-LD |
| 4 | Glitter | 15,99 € | JSON-LD, inserted via JavaScript |
| 5 | Orange | 7,49 € | Microdata, hidden in <meta> tags |
| 6 | Cherry | 6,49 € | Microdata in the visible HTML |
| 7 | Mint | 11,99 € / 9,99 € | Hidden RDFa and JSON-LD with conflicting prices |
| 8 | Lemon | 5,49 € | RDFa in the visible HTML |
This is what the markup for test 3 looked like.
Each system got the same question about the products on the page and their current prices. The question named 26 October 2025 as the reference date for the prices, and the queries ran on 30 October 2025. Perplexity and Google AI Mode did not answer at first because the page was not yet in their index. We asked both again after indexing.
The results
| Test | Source | ChatGPT | Claude | Gemini | Perplexity* | AI Mode* |
|---|---|---|---|---|---|---|
| 1 | Visible HTML | ✓ | – | ✓ | – | ✓ |
| 2 | JavaScript | – | – | ✓ | ✓ | ✓ |
| 3 | JSON-LD only | – | – | – | – | – |
| 4 | JSON-LD via JavaScript | – | – | – | – | – |
| 5 | Hidden microdata | – | – | – | – | – |
| 6 | Visible microdata | ✓ | – | ✓ | – | – |
| 7 | Hidden RDFa + JSON-LD | – | – | – | – | – |
| 8 | Visible RDFa | ✓ | – | ✓ | – | – |
| Prices found | 3 of 8 | 0 of 8 | 4 of 8 | 1 of 8 | 2 of 8 |
* after indexing. Before that, both found 0 of 8. ✓ = price named, – = not named.
What did the systems show in detail?
- ChatGPT named all visible prices and none from JavaScript or hidden markup.
- Gemini was the only system to also find the price inserted via JavaScript during the direct fetch. Gemini recognized products without a visible price as present but gave no price.
- Claude named the product names but not a single price, not even the visible ones. Its answer was, in essence, that there were no prices on the page.
- Perplexity found only the product from test 2 after indexing, whose price came via JavaScript. The product with the visible price from test 1 did not appear.
- Google AI Mode named the prices from tests 1 and 2 after indexing. It mentioned the product from test 3 as available, without a price.
No system named the conflicting price from test 7, neither the one from the RDFa nor the one from the JSON-LD. That Perplexity and AI Mode knew the JavaScript price after indexing suggests that JavaScript content makes it into their index. At the end of 2024, Vercel found no JavaScript execution by PerplexityBot. More on this in the AI crawlers guide. A test with one page and one price does not prove it, however.
What does this mean for your website?
For ChatGPT and Gemini, what counts in a live fetch is what is visible in the HTML. In the test, Claude named no price, not even a visible one. Perplexity and AI Mode answer from their index and only reproduce part of the page. Four steps follow from this.
- Show prices, availability and other facts that should appear in AI answers visibly in the HTML.
- Deliver this content in the source code without JavaScript having to load it first. In the test, only Gemini ran JavaScript during the direct fetch.
- Keep schema markup and align it with the visible content. It remains useful for rich results in Google.
- Avoid conflicts between markup and page. With two prices, no system named either of them in the test.
More on how SEO and GEO differ is in the GEO vs. SEO guide, more on JavaScript and AI bots in the AI crawlers guide.
What has changed since?
In its guide to optimizing for AI search (as of 10 July 2026), Google writes that structured data is not required for generative AI search and that there is no special markup for it. Google still recommends it for rich results. This matches our result for the direct fetch.
The systems tested have received new models and features since October 2025. We have not repeated the test since. The results above show the state as of 30 October 2025.
Common mistakes
- Maintaining important facts only in the JSON-LD and leaving them off the page.
- Loading prices or availability only via JavaScript.
- Markup and visible content contradict each other, for example after a price change.
- Planning schema as a lever for ChatGPT visibility without checking the visible content.
- Drawing conclusions about all systems and all points in time from a single test.
Frequently asked questions
Does ChatGPT read schema markup?
Not in our test of October 30, 2025. During the direct fetch, ChatGPT only named prices that were visible in the HTML.
Do I need structured data for AI search?
Google says it is not required for generative AI search. For rich results in Google Search, it is still worth it.
Which format is best for AI?
In the test, the format made no difference. What mattered was whether the content was visible. For structured data, Google recommends JSON-LD.
Do AI systems run JavaScript?
During the direct fetch in the test, only Gemini found the price inserted via JavaScript. Perplexity and AI Mode knew it after indexing.
Do AI Overviews use structured data from the Google index?
Our test did not check this. Google does not name structured data as a requirement for its AI features.
Sources
Retrieved on October 15, 2026. If something is out of date or missing, let us know.
- Google, Introduction to structured data markup: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data · As of Dec 10, 2025
- Google, Guide to optimizing for AI search: https://developers.google.com/search/docs/fundamentals/ai-optimization-guide · As of Jul 10, 2026
- Google, AI features and your website: https://developers.google.com/search/docs/appearance/ai-features · As of Dec 10, 2025
- schema.org, Product: https://schema.org/Product
- Vercel, The rise of the AI crawler: https://vercel.com/blog/the-rise-of-the-ai-crawler · Dec 17, 2024