In short. Google documents Course list, Movie, Recipe, and Restaurant with ItemList for host carousel markup.
Definition: Google's host carousel is a list-like rich result that shows multiple cards from the same site. Google documents
ItemListin combination with four supported content types: Course list, Movie, Recipe, and Restaurant.
Key facts
- Google's Carousel documentation lists Course list, Movie, Recipe, and Restaurant as the supported combinations with
ItemList. - Google says an
ItemListcontains at least twoListItemelements, and all items in the list must have the same type. The same Carousel documentation defines these rules. - A summary page uses
ListItemproperties for the type, position, and URL. An all-in-one page includes the properties of the content type inside each list item, according to Google's carousel structured data guide. - Course list markup covers at least three courses, with valid
nameandproviderproperties for each course, as stated in Google's Course list documentation. - Google's Restaurant documentation describes the Restaurant carousel as limited to a small set of restaurant providers.
Which content types are supported?
The supported set is explicit: Course list, Movie, Recipe, and Restaurant. The ItemList is the list container, while the content type describes each entry. Google requires all entries in one list to use the same type, so a list cannot combine a Recipe entry with a Movie entry.
Course list has the clearest count rule. Google's documentation requires markup for at least three courses. The courses can be on separate detail pages or on one all-in-one page, and each course needs valid name and provider properties. The course list rich result is available in English in all regions where Google Search is available.
Recipe markup uses ItemList to summarize a recipe collection. Google's Recipe documentation says the ItemList can be separate from the recipe markup or combined with it, and the site must have a summary page listing all recipes in the collection.
For movies, Google's Movie documentation describes a movie list with details such as the title, director, and image. It states that the movie carousel is available only on mobile devices. The page can be a summary page linked to detail pages or a single all-in-one list.
Restaurant is also in the shared supported list. Google's Local Business documentation says that the Restaurant carousel is currently limited to a small set of restaurant providers. Its restaurant-specific section describes a Carousel object for a site with multiple listed restaurants and requires restaurant image and name properties for that list.
How does ItemList change between page patterns?
Google documents two patterns. A summary page gives each item a short description and links to a separate detail page. An all-in-one page keeps the full information for every item on the page. For a summary page, the ListItem contains only the list item type, its position, and the URL of the detail page. For an all-in-one page, the ListItem also contains the properties of the supported type, such as Course or Movie.
The shared ItemList structure can be represented like this:
{
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"url": "https://example.com/item-one"
},
{
"@type": "ListItem",
"position": 2,
"url": "https://example.com/item-two"
}
]
}
For a summary page, Google requires the URLs to point to different pages on the same domain. For an all-in-one page, the URLs point to anchors on the page that contains the list markup. The position is a 1-based number, and the item detail URLs must be unique. Schema.org's ItemList definition adds that ListItem is used with ordered lists when position provides order or additional context.
What should you check before testing?
Check that the list has at least two ListItem elements and that every entry belongs to the same content type. The visible text should be similar to the information in the structured data, and the markup should contain all items shown on the page. For a summary page, test every linked detail URL using the documentation for its type. For a course list, check the three-course minimum and each course's name and provider. For a recipe list, check the summary page requirement. For a restaurant list, account for the provider limitation in Google's documentation.
Google's carousel validation guidance directs site owners to use the Rich Results Test and to validate each URL in a summary list. Schema.org's ItemList page also states that the order of elements in markup alone is insufficient when order matters, so ordered lists use ListItem with a position property.
Related terms
- Structured data
- JSON-LD
- LocalBusiness structured data
- How many courses does Google's course list feature require?
- Which image requirements apply to a movie carousel poster?
FAQ
Can a host carousel mix recipes and movies?
No. Google requires every item in one ItemList to have the same type. Use separate lists for different supported content types.
How many items does an ItemList need?
Google's carousel documentation requires at least two ListItem elements. Course list documentation separately requires markup for at least three courses.
Is every restaurant eligible for the Restaurant carousel?
Google's Local Business documentation describes the Restaurant carousel as limited to a small set of restaurant providers. It also documents restaurant-specific properties for a Carousel object.
Must a carousel use a separate summary page?
No. Google documents both a summary page with detail URLs and an all-in-one page with the full information for each item. The ItemList properties differ between those patterns.
Sources
- Google Search Central, "Carousel (ItemList) structured data", 2026-09-08
- Google Search Central, "Use Schema for Course List", 2026-09-08
- Google Search Central, "Recipe Schema Markup", 2026-09-08
- Google Search Central, "Mark Up Movies with Structured Data", 2026-09-08
- Google Search Central, "Local Business (LocalBusiness) Structured Data", 2026-09-08
- Schema.org, "ItemList", 2026-09-16
Check how a page reads to answer engines. Open the GEO score analyzer