Vehicle listing (Car) structured data

An illustration of a vehicle listing rich result in Google Search

$16,998 • 75.3k miles

Car Shop

$9,987 • 120k miles

Auto Dealer

Vehicle listing structured data allows car dealerships to make their sale vehicle inventory eligible for display on various Google surfaces, including Google Search and dealerships' Business Profiles. People can then search, filter, and easily learn more about vehicles for sale such as availability, pricing, and key information about the vehicles for sale, potentially directing customers to your business.

Feature availability

The vehicle listing rich result is currently only available in English in the US and US territories. The feature is available on both mobile and desktop.

Two ways of providing inventory data to Google

There are two methods for car dealerships to provide their car inventory data to Google. One is through structured data markup on their websites, which is the main focus of this document, and the other is through feed files uploaded to the vehicle listings partner portal. Both methods enable car inventory data to be displayed on Google surfaces.

Here are some characteristics of the two methods:

Method and description

Structured data markup

  • It's relatively easy to implement and maintain structured data markup on websites
  • It could take longer for Google to detect changes on websites
  • No 1:1 support

Feed file uploads

  • It may require system development to create and maintain feed files.
  • All inventory data in feed files is recognized by Google
  • 1:1 support is available to address any issues with feed uploads at the vehicle listings partner portal
  • Feeds support more detailed properties for vehicle inventory

Learn more about how to upload a vehicle listings file feed.

Feed files would be a suitable option if you are comfortable with creating and maintaining them technically. Structured web markup would be a suitable option if you prioritize ease of implementation. If you choose to use both methods, make sure the data is consistent between feeds and markup. If there are any discrepancies, the feed data will override the conflicting markup data.

How to add structured data

Structured data is a standardized format for providing information about a page and classifying the page content. If you're new to structured data, you can learn more about how structured data works.

Here's an overview of how to build, test, and release structured data.

  1. Add the required properties. Based on the format you're using, learn where to insert structured data on the page.
  2. Follow the guidelines.
  3. Validate your code using the Rich Results Test and fix any critical errors. Consider also fixing any non-critical issues that may be flagged in the tool, as they can help improve the quality of your structured data (however, this isn't necessary to be eligible for rich results).
  4. Deploy a few pages that include your structured data and use the URL Inspection tool to test how Google sees the page. Be sure that your page is accessible to Google and not blocked by a robots.txt file, the noindex tag, or login requirements. If the page looks okay, you can ask Google to recrawl your URLs.
  5. To keep Google informed of future changes, we recommend that you submit a sitemap. You can automate this with the Search Console Sitemap API.

Example

Here's an example single vehicle listing page with markup.


<html>
  <head>
    <title>1999 Dodge Ram Pickup 2500 ST</title>
    <script type="application/ld+json">{
      "@context": "https://schema.org",
      "@type": "Car",
      "name": "1999 Dodge Ram Pickup 2500 ST",
      "vehicleIdentificationNumber": "1BXKF23ZXXJ000000",
      "image": [
        "https://example.com/image1.png",
        "https://example.com/image2.png"
      ],
      "url": "https://www.example.com/used-vehicle-1999-dodge-ram-pickup-2500-st-c-67/",
      "offers": {
        "@type": "Offer",
        "availability": "https://schema.org/InStock",
        "price": 10000,
        "priceCurrency": "USD"
      },
      "itemCondition": "https://schema.org/NewCondition",
      "brand": {
        "@type": "Brand",
        "name": "Dodge"
      },
      "model": "Ram",
      "vehicleConfiguration": "ST",
      "vehicleModelDate": "1999",
      "mileageFromOdometer": {
        "@type": "QuantitativeValue",
        "value": "20170",
        "unitCode": "SMI"
      },
      "color": "White",
      "vehicleInteriorColor": "Gray",
      "vehicleInteriorType": "Standard",
      "bodyType": "Pickup",
      "driveWheelConfiguration": "https://schema.org/FourWheelDriveConfiguration",
      "vehicleEngine": {
        "@type": "EngineSpecification",
        "fuelType": "Gasoline"
      },
      "vehicleTransmission": "Manual",
      "numberOfDoors": 2,
      "vehicleSeatingCapacity": 2
    }
  </script>
  </head>
  <body>
  </body>
</html>

Guidelines and eligibility requirements

There are several eligibility requirements for dealerships to display their car inventory data on Google surfaces:

For your page to be eligible for vehicle listings rich results, you must also follow the Search Essentials and General structured data guidelines.

Structured data type definitions

You must include the required properties for your content to be eligible for display in vehicle listing rich results. You can also include the recommended properties to add more information about your content, which could provide a better user experience.

Car

The full definition of Car is provided on schema.org.

Required properties
brand

Brand

Information about the make of the vehicle.

brand.name

Text

The name of the make of the vehicle, such as "Toyota".

itemCondition

OfferItemCondition

The condition of the vehicle, either new or used. Use one of the following values:

  • https://schema.org/NewCondition: The vehicle is new.
  • https://schema.org/UsedCondition: The vehicle is used (it's not new).
mileageFromOdometer

QuantitativeValue

Information about the total distance traveled by the vehicle since its initial production, as read from its odometer.

mileageFromOdometer.unitCode

Text

The unit of distance given using the UN/CEFACT Common Code (three characters). Use one of the following values:

  • For miles: SMI
  • For kilometers: KMT
mileageFromOdometer.value

Number

The numerical value of distance, as read by the odometer.

model

Text

The model of the vehicle, such as "Civic". Don't include trim specifics like LX or EX.

offers

Offer

The offer details about the vehicle that's for sale.

offers.availability

ItemAvailability

The availability of the vehicle. Use one of the following values:

  • https://schema.org/InStock: The vehicle is in stock
  • https://schema.org/OutOfStock: The vehicle is currently out of stock.
offers.price

Number

The final sale price for the vehicle. Vehicle listings must meet our price policies:

  • We want to show the lowest possible price that is publicly available to all consumers. Any discount shown needs to apply to all consumers. For instance, don't factor in veteran discounts.
  • We exclude vehicles with prices that fall outside of the range of prices that we expect, based on similar vehicles that are available for sale.
offers.priceCurrency

Text

The currency of the sale price in three-letter ISO 4217 format.

vehicleIdentificationNumber

Text

The Vehicle Identification Number (VIN), which is a unique alphanumeric identifier for each vehicle.

The vehicle must have a valid Vehicle Identification Number:

  • Vehicle parts, accessories, tires, and services aren't supported.
  • Vehicle auctions and auction pricing aren't supported.
  • Vehicles available for rent, lease or subscription aren't supported.
  • Examples of supported vehicle types: passenger cars and trucks, RV, ATV, motorcycles, trailers.
vehicleModelDate

Date

The model year in the format YYYY.

Recommended properties
bodyType

Text

The body style of the vehicle, such as sedan, suv, or crossover.

Currently, Google only supports bodyType values in English. Here are some example values:

  • convertible
  • coupe
  • crossover
  • full size van
  • hatchback
  • minivan
  • sedan
  • suv
  • truck
color

Text

The OEM-specified exterior color, such as White, Platinum, or Metallic Tri-Coat.

driveWheelConfiguration

DriveWheelConfigurationValue

The drive wheel configuration (for example, which roadwheels will receive torque from the vehicle's engine via the drivetrain). Use one of the following values:

  • https://schema.org/AllWheelDriveConfiguration: The vehicle has an all-wheel drive configuration.
  • https://schema.org/FourWheelDriveConfiguration: The vehicle has four-wheel drive configuration.
  • https://schema.org/FrontWheelDriveConfiguration: The vehicle has front-wheel drive configuration.
  • https://schema.org/RearWheelDriveConfiguration: The vehicle has rear-wheel drive configuration.
image

URL or ImageObject

The image(s) for the vehicle. The image(s) must meet our image policies and specifications. If you're having issues, see how to fix an invalid image.

name

Text

The name of the vehicle as it's displayed on the website. For example, Used 2020 BMW 530i w/ Convenience Package.

numberOfDoors

Number

The number of doors.

url

URL

The link to the dealer's Vehicle Details Page (VDP).

vehicleConfiguration

Text

The trim of the model, such as S, SV, or SL.

vehicleEngine

EngineSpecification

Information about the vehicle's engine specification.

vehicleEngine.fuelType

Text

The type of fuel that's suitable for the engine of the vehicle.

vehicleInteriorColor

Text

The OEM-specified interior color, such as Brown or Ivory.

vehicleInteriorType

Text

The type or material of the interior of the vehicle (for example, synthetic fabric, leather, wood). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.

vehicleSeatingCapacity

Number

The number of seats.

vehicleTransmission

Text

The transmission specification. For example, 9-speed automatic or manual.

使用 Search Console 监控富媒体搜索结果

Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:

  1. 首次部署结构化数据后
  2. 发布新模板或更新代码后
  3. 定期分析流量时

首次部署结构化数据后

等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,有效项目数量会增加,而无效项目数量不会增加。如果您发现结构化数据存在问题,请执行以下操作:

  1. 修正无效项目
  2. 检查实际网址,核实问题是否仍然存在。
  3. 使用状态报告请求验证

发布新模板或更新代码后

如果对网站进行重大更改,请监控结构化数据无效项目的增幅。
  • 如果您发现无效项目增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
  • 如果您发现有效项目减少了(但无效项目的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。

定期分析流量时

请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。

Troubleshooting

If you're having trouble implementing or debugging structured data, here are some resources that may help you.

  • If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
  • Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the General Structured Data Guidelines.
  • You might have an error in your structured data. Check the list of structured data errors and the Unparsable structured data report.
  • If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix structured data issues, use the Manual Actions report.
  • Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues.
  • Troubleshoot missing rich results / drop in total rich results.
  • Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the Google Search crawling and indexing FAQ.
  • Post a question in the Google Search Central forum.