Google announced new carousel rich results for local businesses, products, and events. This displays a horizontally scrolling carousel that displays all the items in the list. It’s very flexible and can also be used to create top-of-the-city activities that combine hotels, restaurants, and events. This new feature is in beta, meaning it is being tested.
The new Carousel Rich Results is for displaying lists in carousel format. According to the announcement, rich results are limited to the following types:
“Example of LocalBusiness and its subtypes:
– restaurant
– Hotel
– Vacation rentalproduct
event”
An example of a subtype is Lodgings, which is a subset of LocalBusiness.
Below is a Schema.org hierarchy showing that the LodgingBusiness type is a subset of the LocalBusiness type.
- Things > Organization > Local Business > Lodging Business
- Things > Places > Local Business > Lodging Business
Item list structured data
A carousel displays “tiles” containing web page information such as prices, ratings, and images. The order within the ItemList structured data is the order in which it appears in the carousel.
Publishers must use ItemList structured data to qualify for new rich results
All information in the ItemList structured data must exist on the web page. As with any structured data, structured data cannot be stuffed with information that is not visible on the web page itself.
There are two important rules when using this structured data:
- The ItemList type must be a top-level container for structured data.
- All URLs in the list must point to different web pages on the same domain.
The part about ItemList being the top-level container means that structured data cannot be merged with another structured data if the top-level container is something other than ItemList.
For example, structured data must start like this:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1,
mix and match
A useful feature of this new Carousel Rich Results is that publishers can combine and match different entities as long as they are within the targeted structured data type.
Target structured data type
- LocalBusiness and its subtypes
- product
- event
Google’s announcement explains how to mix and match different structured data types.
“You can mix and match different types of entities (hotels, restaurants, etc.) as your scenario requires. For example, you might have a page that lists both local events and local businesses.”
Below is an example of ListItem structured data that could be used on a web page about things to do in Paris.
The following structured data is about two events and a local business (Eiffel Tower).
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@type": "Event", "name": "Paris Seine River Dinner Cruise", "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "offers": { "@type": "Offer", "price": 45.00, "priceCurrency": "EUR" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.2, "reviewCount": 690 }, "url": "https://www.example.com/event-location1" } }, { "@type": "ListItem", "position": 2, "item": { "@type": "LocalBusiness", "name": "Notre-Dame Cathedral", "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "priceRange": "$", "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.8, "reviewCount": 4220 }, "url": "https://www.example.com/localbusiness-location" } }, { "@type": "ListItem", "position": 3, "item": { "@type": "Event", "name": "Eiffel Tower With Host Summit Tour", "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "offers": { "@type": "Offer", "price": 59.00, "priceCurrency": "EUR" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "reviewCount": 652 }, "url": "https://www.example.com/event-location2" } } ] } </script>
be as specific as possible
Google’s guidelines recommend being as specific as possible, but if you don’t have a structured data type that exactly matches your business type, use the more general LocalBusiness structured data type. I don’t think there is any problem.
“Depending on your scenario, you can choose the best type to use. For example, if your page has a list of hotels and vacation rentals, use both the Hotel and VacationRental types. The type that most closely matches your scenario. Ideally, you can use a more general type (such as LocalBusiness).
can be used in products
A very interesting use case for this structured data is displaying a list of products in a rich result in a carousel.
That structured data starts as an ItemList structured data type like this:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@type": "Product",
Structured data can list images, ratings, reviewCount, and currency just like any other product listing, but doing so makes your web page eligible for carousel rich results.
Google has a list of recommended properties that you can use in the products version, such as offers, offers.highPrice, and offers.lowPrice.
Good for local businesses and shops
This new structured data presents an opportunity for local businesses and publishers listing events, restaurants, and lodging to take advantage of new types of rich results.
Using this structured data does not guarantee that it will appear as a rich result, it only makes it eligible for rich results.
This new feature is in beta, or testing, form.
To learn more about this new rich result type, please visit our new developer page.
Structured Data Carousel (Beta)
Featured image by Shutterstock/RYO Alexandre