A carousel is a list-like rich result that people can swipe through on mobile devices. It
displays multiple cards from the same site (also known as a host carousel). To be eligible for a
host carousel rich result for your site, add ItemList structured data in
combination with one of the following supported structured data features:
Here's how carousels can look in Google Search when you add ItemList markup in combination
with a supported content type:
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 add structured data to your site.
Decide which page will contain the carousel structured data. There are two options:
Summary page and multiple detail pages: The summary page has a short
description of each item in the list, and each description points to a separate detail page
that is focused entirely on one item. For example, a summary page that lists the best cookie
recipes, and each description links out to the full recipe for each cookie.
A single, all-in-one-page list: A single page that contains all
list information, including full text of each item. For example, a list of the top movies in
2020, all contained on one page.
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.
The summary page has a short description of each item in the list. Each
description points to a separate details page that is focused entirely on one
item.
Summary page
The summary page defines an ItemList, where each ListItem has
only three properties: @type (set to ListItem),
position (the position in the list), and url (the URL of a page with
full details about that item).
Here's an example of what the summary page looks like:
<html>
<head>
<title>Best cookie recipes</title>
<script type="application/ld+json">
{
"@context":"https://schema.org",
"@type":"ItemList",
"itemListElement":[
{
"@type":"ListItem",
"position":1,
"url":"https://example.com/peanut-butter-cookies.html"
},
{
"@type":"ListItem",
"position":2,
"url":"https://example.com/triple-chocolate-chunk.html"
},
{
"@type":"ListItem",
"position":3,
"url":"https://example.com/snickerdoodles.html"
}
]
}
</script>
</head>
<body>
<p>
Here are the best cookie recipes of all time.
</p>
<h2>
Peanut Butter Cookies
</h2>
<p>
This <a href="https://example.com/peanut-butter-cookies.html">Peanut Butter Cookie recipe</a> is the tastiest one you'll find.
</p>
<h2>
Triple Chocolate Chunk Cookies
</h2>
<p>
This <a href="https://example.com/triple-chocolate-chunk.html">Triple Chocolate Chunk Cookies recipe</a> is the tastiest one you'll find.
</p>
<h2>
Snickerdoodles
</h2>
<p>
This <a href="https://example.com/snickerdoodles.html">Snickerdoodles recipe</a> is the tastiest one you'll find.
</p>
</body>
</html>
Details page
The details page defines the specific structured data type that the carousel is about. For example,
if the summary page is about the best cookie recipes, each detail page would contain
Recipe structured data for a specific recipe.
Here's an example of what the detail pages look like:
A single, all-in-one-page list contains all carousel information, including full text of each
item. For example, a list of the top movies in 2020, all contained on one page. This page doesn't
link out to other detail pages.
For your page to be eligible for a carousel rich result, you must follow the
Search Essentials and general structured data guidelines.
In addition, the following guidelines apply to carousel structured data:
All items in the list must be of the same type. For example, if a list is about recipes,
only include Recipe items. Don't mix different types.
Make sure that the carousel structured data is complete and contains all the items that are
listed on the page.
The text visible to the user must be similar to the information contained in the structured
data on the page.
Items shown in list format will be shown in the order specified by the position
property.
Validate and deploy structured data
Validate your code using the
Rich Results Test.
For a summary page, there are some things you need to verify yourself:
Check that itemListElement contains two or more ListItem elements.
Make sure that all of the ListItem elements are the same type (for example, they are all about recipes).
Validate each URL that's mentioned in the list using the Rich Results Test. Each page in the list
must contain valid structured data, per the documentation for the supported content
type that the list is about:
Recipe,
Course,
Restaurant,
Movie.
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.
You must include the required properties for your content to be eligible for display as a rich
result.
ItemList
ItemList is the container item that holds all elements in the list. If used on a
summary page, all URLs in the list must point to different pages on the same domain. If used on
an all-in-one-page list, all URLs must point to an anchor on the page that's hosting the list
structured data.
List of items. To specify a list, define an ItemList that contains at least
two ListItem elements. All items must be of the same type. See ListItem for details.
ListItem
ListItem contains details about an individual item in the list.
If this is a summary page, include only
the type, position, and url properties in the ListItem.
If this is an all-in-one-page list, include all the additional schema.org
properties for the data type that it describes. The supported data types are:
[null,null,["Last updated 2025-02-18 UTC."],[[["Google Search carousels can be created using `ItemList` structured data with supported types like `Course`, `Movie`, `Recipe`, or `Restaurant`."],["Implement carousels using either a summary page linking to detail pages, or an all-in-one page containing all item details."],["Ensure your structured data adheres to Google's guidelines, is validated using the Rich Results Test, and is accessible to Googlebot."],["Maintain your structured data by submitting and updating a sitemap through Google Search Console."],["Use the provided code examples as a starting point for implementing structured data for your specific carousel needs."]]],["To create a carousel, use `ItemList` structured data for content types like Course, Movie, Recipe, or Restaurant, either on a summary page with links to detail pages or on an all-in-one page. Include `itemListElement` with `ListItem` properties: `position` and `url`. Detail pages should contain structured data relevant to their content type (e.g., `Recipe` details), while summary pages link to them. Validate the data using the Rich Results Test and ensure compliance with guidelines, proper deployment, and submission of a sitemap.\n"]]