- Schema.org markup was built for search rich results, but it doubles as a clean fact source for AI extraction.2
- For products, the high-value types are Product, Offer, AggregateRating and FAQPage.
- JSON-LD (a script block) is the preferred format — it keeps structured facts separate from your visual markup.
- Schema doesn’t guarantee a citation; it removes ambiguity so your facts survive extraction with attribution intact.
When an assistant answers “how much is Product X and what’s its rating?”, it has two options: infer those facts from your page’s visual layout, or read them from structured data you provided. The first is lossy and error-prone; the second is exact. Structured data is you doing the extraction work so the model doesn’t have to guess.
Why JSON-LD, specifically
Schema.org supports several syntaxes, but JSON-LD — a <script type="application/ld+json"> block — is the one to use. It lives in one place, doesn’t entangle with your HTML, and is trivially parsed. Google recommends it, and it’s equally convenient for any AI pipeline reading your page.2
The Product + Offer block
This is the workhorse. It states what the thing is, what it costs, whether it’s available, and how it’s rated — the four facts a shopping answer most wants:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "RM60 Radar Precipitation Sensor",
"brand": { "@type": "Brand", "name": "Vaisala" },
"description": "Non-contact radar sensor measuring rainfall rate and accumulation, ±5% accuracy.",
"sku": "RM60",
"offers": {
"@type": "Offer",
"price": "1490.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "128"
}
}
Every value in that block is a fact an assistant can lift verbatim and attribute to you. Leave one out — say, availability — and the model either guesses or omits it. Completeness is the point.
FAQPage: answers models love to quote
Buyer questions marked up as FAQPage give assistants pre-packaged question–answer pairs — exactly the shape of a synthesized answer. Mark up the real questions your buyers ask:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "What file formats does it export?",
"acceptedAnswer": {
"@type": "Answer",
"text": "CSV, JSON and Modbus over TCP. Firmware 2.1+ adds MQTT."
}
}]
}
Getting it right
- Mark up what’s visible on the page — structured data must match the human content, not contradict it.
- Keep price and availability current; a stale Offer is worse than none.
- Validate with a schema testing tool before shipping.
- Don’t mark up content that isn’t there — fabricated ratings are a policy violation and an accuracy risk.
Structured data is the difference between the model reading your facts and the model guessing them.
A shipping checklist
- Add Product + Offer JSON-LD to every product page, with accurate price, availability and SKU.
- Add AggregateRating only where you have genuine review data.
- Add FAQPage for the real questions buyers ask, matching on-page copy.
- Validate, deploy, and confirm the facts render in a plain-HTML view (not only via JavaScript).
- Re-check quarterly — prices and specs drift, and stale schema misleads.
Frequently asked questions
No — it removes ambiguity so your facts are extracted accurately, but citation still depends on relevance, authority and corroboration. Think of schema as necessary hygiene, not a ranking cheat code.
JSON-LD, in almost every case. It keeps structured facts in a single script block, separate from your visual markup, which is easier to maintain and to parse — and it’s Google’s recommended format.
No, and they can hurt — fabricated AggregateRating data violates guidelines and creates accuracy risk when an assistant repeats a rating that contradicts independent sources. Only mark up genuine data.
Sources & further reading
- Schema.org vocabulary — Product, Offer, FAQPage, Organization types.
- Google — "Product structured data" reference.
- Google Search Central — "AI features and your website".
- "GEO: Generative Engine Optimization", Aggarwal et al., KDD 2024 / arXiv:2311.09735.