In short. Use mileageFromOdometer with a QuantitativeValue and distance unit, and vehicleIdentificationNumber with the vehicle’s VIN as text.
Definition: Schema.org defines a Vehicle as a device designed or used to transport people or cargo. A vehicle listing represents its odometer distance with
mileageFromOdometer, a measured value with a unit, and its vehicle identification number (VIN) withvehicleIdentificationNumber, a text value identifying the individual vehicle.
Key facts
- Schema.org's Vehicle definition covers transport over land, water, air and through space.
- The mileageFromOdometer property describes total distance since initial production as read from the odometer and expects a
QuantitativeValueobject. - The vehicleIdentificationNumber property accepts text and identifies an individual motor vehicle by its unique serial number.
- Schema.org's QuantitativeValue documentation recommends a numeric
valuefor a measurement.
Where do the mileage and VIN belong?
The mileage and VIN belong on the object describing the vehicle offered for sale. Schema.org's Markup for Autos guide places Vehicle beneath Product and Car beneath Vehicle. It explains that Car inherits the vehicle properties, including the mileage and VIN fields.
The same guide separates the car from the sale offer. Its Offer example describes a price, currency and seller, while the car is the item offered. In this structure, the mileage and VIN describe the car itself; the offer carries the commercial terms.
How are the values written in JSON-LD?
JSON-LD is a structured data format that can be embedded in a page's HTML. A QuantitativeValue is Schema.org's object for a point value or an interval. Its documentation recommends the Number type for value, so an odometer reading can be supplied as an unquoted JSON number.
The following reduced example adapts the hybrid-car example in Schema.org's automotive guide, using a numeric reading. The sample VIN and one-kilometre reading are documentation values. An actual used-car listing substitutes its own VIN and displayed odometer reading.
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Car",
"vehicleIdentificationNumber": "1HTLCZWN0JH503089",
"mileageFromOdometer": {
"@type": "QuantitativeValue",
"value": 1,
"unitCode": "KMT"
}
}
</script>
Schema.org's mileage definition specifies KMT for kilometres and SMI for statute miles. The unitCode therefore accompanies the distance value inside mileageFromOdometer; the VIN remains a quoted text string on the car object.
How is the listing checked?
As of 17 October 2026, Google's structured data guidelines recommend JSON-LD, require current information and prohibit marking up content hidden from readers. Applied to this listing, the visible mileage, distance unit and VIN must agree with the structured data.
Google's testing tools page directs generic Schema.org validation to the Schema Markup Validator. It tests Schema.org types without Google-specific validation. Google separately directs checks for supported Google rich results to the Rich Results Test.
Related terms
- Structured data
- JSON-LD
- How do unitCode and unitText describe a measured value?
- How can a vehicle listing describe previous owners and first registration?
FAQ
Can I describe mileage in miles?
Yes. Schema.org's mileage property specifies SMI for statute miles. Use that code with the corresponding odometer value inside the QuantitativeValue object.
Should I put the VIN inside the mileage object?
Place it on the vehicle object. Schema.org's VIN property applies to Vehicle and expects Text; mileageFromOdometer has its own measurement object.
Sources
- Schema.org, "Vehicle", undated
- Schema.org, "mileageFromOdometer", undated
- Schema.org, "vehicleIdentificationNumber", undated
- Schema.org, "QuantitativeValue", undated
- Schema.org, "Markup for Autos", undated
- Google Search Central, "General structured data guidelines", 10 July 2026
- Google Search Central, "Test your structured data", undated
Check how a page reads to answer engines. Open the GEO score analyzer