Structured data is the difference between an AI engine guessing what your page is about and knowing it. It is a small block of standardized code that states the facts of a vehicle in a format every major engine understands. For a dealer trying to be cited in AI answers, it is the highest-leverage technical step after making the page readable at all.
This is a practical reference, not a tutorial in writing code. Read it so you know what “good” looks like and can tell whether your current platform produces it.
What schema.org and JSON-LD are
Schema.org is a shared vocabulary, agreed on by Google, Microsoft, and others, for describing things on the web: a person, an event, a product, a vehicle. JSON-LD is the recommended way to write it: a tidy block of data placed in the page’s HTML. Because it is explicit, an engine does not have to parse your sentence “great deal at only $17,900!” to find the price. It reads "price": 17900 directly.
The fields that matter for a vehicle
Use the Vehicle type with a nested Offer. The fields engines lean on most:
- name, year, make, model, and trim, so the car is unambiguously identified.
- vehicleIdentificationNumber (the VIN), the unique key for the exact vehicle.
- mileageFromOdometer as a quantity with a unit (
KMTfor kilometres,SMIfor miles). - itemCondition (used or new), and core specs: drivetrain, transmission, fuel type, body type, color.
- image, one or more real photo URLs.
- url, the canonical link to this vehicle’s own page.
- A nested Offer with
price,priceCurrency,availability, and a seller identifying your dealership. The seller is how the engine knows whose car it is, which is what makes a citation route back to you.
A complete, working example
Here is valid Vehicle + Offer JSON-LD for a single used car. This is the shape of data an AI engine can read cleanly:
{
"@context": "https://schema.org",
"@type": "Vehicle",
"name": "2019 Subaru Forester 2.5i",
"vehicleIdentificationNumber": "JF2SKAEC0KH512345",
"brand": { "@type": "Brand", "name": "Subaru" },
"model": "Forester",
"modelDate": 2019,
"vehicleConfiguration": "2.5i",
"bodyType": "SUV",
"mileageFromOdometer": {
"@type": "QuantitativeValue",
"value": 74200,
"unitCode": "KMT"
},
"driveWheelConfiguration": "AWD",
"vehicleTransmission": "Automatic",
"fuelType": "Gasoline",
"color": "Crystal White",
"itemCondition": "https://schema.org/UsedCondition",
"image": ["https://example.com/forester-1.jpg"],
"url": "https://yourdealer.example/inventory/forester-512345",
"offers": {
"@type": "Offer",
"price": 17900,
"priceCurrency": "CAD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/UsedCondition",
"seller": {
"@type": "AutoDealer",
"name": "Maple Ridge Auto",
"address": {
"@type": "PostalAddress",
"addressLocality": "Hamilton",
"addressRegion": "ON",
"addressCountry": "CA"
}
}
}
}Common mistakes that quietly cost citations
- Markup that does not match the page. The structured price must equal the price a shopper sees. Mismatches get the data ignored and can be flagged as deceptive.
- Marking up inventory you do not have. Schema for sold or fake stock erodes trust fast. Keep it in sync with real availability.
- Missing the seller. Without a clear
AutoDealerseller, a cited car may not be attributed to you, which defeats the purpose. - Putting the data behind JavaScript. If the JSON-LD is injected by a script a non-rendering crawler will miss it, just like the visible inventory. It must be in the served HTML. See can AI see your inventory?
- Stale prices. Engines favor fresh, accurate data. A feed that updates within the hour beats one that updates weekly.
How to verify it
Paste a vehicle URL into Google’s Rich Results Test or the Schema.org validator. They report whether the structured data is valid and what was detected. If your platform produces no Vehicle markup, or buries it behind JavaScript, that is a concrete, fixable gap.
How VIN Index handles this
Every vehicle VIN Index publishes carries validated Vehicle and Offer structured data in static HTML, with your dealership as the seller and a canonical link back to you, refreshed within about an hour of any change in your feed. You do not write or maintain any of it. To see whether your current site emits valid vehicle structured data today, run the free Analyzer.