Guide : ItemList Schema

ItemList is schema.org's generic ordered-list container — the mechanism Google's Carousel rich result is construit on, and the parent type BreadcrumbList inherits from. Ce que it fait, ce que it doesn't, and how the pieces fit.

Première publication : 2 juil. 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues
1 indice probant sur cette page

ItemList is schema.org's generic 'ce is an ordered liste of choses' container — two properties (itemListElement and a 1-fondé position) do almost tout the fonctionner. The unique biggest misconception: ItemList by itself n’est pas a rich result and doesn't obtenir vous a carousel. Google's Carousel rich result is construit on top of ItemList, and seulement fires quand vous pair it with a pris en charge companion type (Course liste, Movie, Recipe, Restaurant pour the classic carousel; LocalBusiness/Product/Event pour a newer geo-gated beta limited to the EEA, Turkey, and South Africa). BreadcrumbList is formally a subtype of ItemList — même itemListElement/position mechanics — qui is the detail que trips up même experienced implementers. Items doit tout be the même type on the classic carousel (the beta permet mixing), vous besoin 2+ items (3+ pour the beta), and the markup doit match visible content. And comme tout données structurées, ItemList n’est pas a ranking factor; its valeur is rich-result eligibility, pas position — and Google is explicit que meeting the requirements jamais guarantees the fonctionnalité en réalité displays.

TL;DR — ItemList is schema.org’s generic ordered-list container; itemListElement

  • a 1-fondé position do the fonctionner, with itemListOrder and numberOfItems as lesser-used extras (numberOfItems matters pour paginated listes). It is pas itself a rich result — Google’s Carousel is construit on top of it and seulement fires with a pris en charge companion type: Course liste, Movie, Recipe, Restaurant pour the classic carousel, and LocalBusiness/Product/Event pour a newer beta that’s geo-gated to the EEA, Turkey, and South Africa. Two patterns: summary-page (url-only ListItems) and all-in-one (nested items). Rules: 2+ items (3+ pour the beta), tout the même type on the classic carousel (the beta permet mixing), markup doit match visible content. BreadcrumbList is formally a subtype of ItemList (with HowToSection, HowToStep, OfferCatalog) — the detail la plupart guides miss. And données structurées n’est pas a ranking factor — its payoff is eligibility and understanding, pas position.
Evidence for this claim Schema.org ItemList models an ordered or unordered collection and ListItem can supply item positions and URLs. Scope: Schema.org ItemList vocabulary. Confidence: high · Verified: Schema.org: ItemList Evidence for this claim Google uses ItemList within specific features such as host carousels; a generic valid ItemList has no standalone guaranteed rich result. Scope: Current Google carousel implementation and eligibility. Confidence: high · Verified: Google Search Central: Carousel structured data

Ce que ItemList en réalité is

Schema.org’s definition is deliberately broad: “A liste of items of quelconque sort—Par exemple, Top 10 Movies À propos de Weathermen, or Top 100 Party Songs.” The line que explique pourquoi the type nécessite to exist is the suivant un: “Pas to be confused with HTML listes, qui are souvent utilisé seulement pour formatting.” An <ol>/<ul> conveys “ces are a liste, in ce order” purely by visual convention. ItemList declares the container (ItemList), chaque entry (ListItem), and chaque entry’s rank (position) as données a machine peut lire sans inferring anything from layout.

Two properties do the heavy lifting:

  • itemListElement — the array of entries. Schema.org: “Pour itemListElement valeurs, vous pouvez utiliser simple strings (e.g. ‘Peter’, ‘Paul’, ‘Mary’), existing entities, or utiliser ListItem.” Pour anything que veut une URL or a position (i.e. anything aiming at a rich result), vous utiliser ListItem.
  • position — a 1-fondé integer giving chaque ListItem its rank.

Two plus are documented but skipped by la plupart guides:

  • itemListOrder“Type of ordering (e.g. Ascending, Descending, Unordered).” A declaration, pas something Google enforces.
  • numberOfItems“The number of items in an ItemList. Remarque que some descriptions pourrait pas entièrement décrire tout items in a liste.” Ce un earns its garder on paginated listes: a “Top 100” split à travers five pages peut utiliser numberOfItems to state the complet count même though quelconque un page marks up seulement twenty entries.

(There’s aussi aggregateElement pour holding aggregate ratings/offers à travers the liste — genuinely niche; you’ll rarely touch it.)

The two implementation patterns

Google’s carousel documentation describes two shapes, and qui un vous utiliser changements ce que chaque ListItem semble comme:

Summary page and multiple detail pages

A summary page listes chaque item briefly, and chaque entry liens out to a dedicated detail page. Ici the ListItem is minimal — Google: the summary page defines an ItemList où chaque ListItem has seulement three properties: @type (définir to ListItem), position (the position in the liste), and url (l’URL canonique of the item’s detail page). The complet per-item données structurées (the Recipe, the Movie, etc.) lives on chaque detail page.

All-in-one summary page

Everything lives on un page, so chaque ListItem carries a nested item containing the complet companion-type markup (the whole Recipe object, pour instance) plutôt que simplement a url. Utiliser ce quand là are aucun separate detail pages.

Here’s the accuracy spine of the whole topic. ItemList is a container; Carousel is a rich result construit on top of it. ItemList alone, with aucun pris en charge companion type, fait pas produce a distinct “list” rich result in classic Recherche Google. Google’s docs are explicit que carousel eligibility exige les deux pieces.

To be eligible pour a host carousel rich result, vous ajouter ItemList données structurées in combination with un of a petit, Google-controlled définir of pris en charge fonctionnalités. As of Google’s current (2026) documentation, que liste is:

  • Course liste
  • Movie
  • Recipe
  • Restaurant

That’s it pour the classic carousel. Autre types — Product, BlogPosting, Event — peut carry ItemList markup pour organization and machine understanding, but que alone fait pas faire les classic-carousel-eligible.

Carousels (Beta) — the newer, geo-gated program

There’s a second, newer program — Carousels (Beta) — que Google describes as “a list-like rich result que personnes peut scroll horizontally to voir plus entities from a donné site.” It’s the plus actively-evolving partie of ce fonctionnalité area, and it differs from the classic carousel in three important façons:

  • Différent pris en charge types: ItemList combined with LocalBusiness and its subtypes (Restaurant, Hotel, VacationRental), Product, or Event — a broader and différent définir que the classic four.
  • Geographically limited: it’s disponible seulement in EEA countries, Turkey, and South Africa, on desktop and mobile, with the eligible requête types varying by region. Ce is pas a global fonctionnalité — a caveat worth stating plainly, since several third-party write-ups discuss it as si it’s généralement disponible.
  • A plus élevé minimum: the beta exige a summary page plus detail pages with au moins three itemListElement.item entries, versus the classic carousel’s two.
  • Mixing is allowed: unlike the classic carousel’s strict same-type rule, Google’s beta documentation dit vous “peut mix and match différent types of entities (pour exemple, hotels, restaurants), si nécessaire pour votre scenario” — don’t carry the classic same-type assumption over quand you’re working with the beta.

Treat the beta as “watch this space” plutôt que a stable, universal fonctionnalité.

How BreadcrumbList (and a few others) relate to ItemList

Ce is the unique la plupart under-covered, differentiating fact à propos de ItemList, and it clears up a courant point of confusion: BreadcrumbList n’est pas a separate, unrelated schema type — it is formally a subtype of ItemList. Schema.org states it directement: “A BreadcrumbList is an ItemList consisting of a chain of lié Web pages, typically décrit en utilisant au moins leur URL and leur nom, and typically ending with the current page.” And schema.org’s propre “More specific Types” liste pour ItemList is exactly four entries: BreadcrumbList, HowToSection, HowToStep, and OfferCatalog.

Practically, que signifie the itemListElement + position mechanics vous utiliser pour a carousel are literally the même ones vous utiliser pour breadcrumbs — seulement the outer @type (BreadcrumbList vs. plain ItemList) and the semantic objectif modifier. Google frames breadcrumbs the même façon: to specify breadcrumbs, vous define a BreadcrumbList containing at least two ListItems. Si you’ve implemented un, vous déjà comprendre the autre. (The breadcrumb side of ce family lives in its propre deep dive, and the visible carousel result is the subject of a sibling carousel piece — les deux sit in ce même structured-data sub-cluster.)

Implementation requirements and courant validation échecs

La plupart carousel/ItemList échecs come bas to a handful of documented rules:

  • Minimum item count. Google exige the itemListElement array to contain two or plus ListItem elements pour the classic carousel (three or plus pour the beta). Un item n’est pas a liste.
  • Same-type rule (classic carousel) — the frequent réel causer of échecs. Google: “Tout items in the liste doit be of the même type. Par exemple, si a liste is à propos de recipes, seulement inclure Recipe items. Don’t mix différent types.” A liste que mixes Recipes and Products won’t validate as a classic carousel. Ce rule is spécifique to the classic program — the beta ci-dessus explicitly permits mixing entity types, so don’t carry the same-type assumption over quand that’s the program you’re targeting.
  • Visible-content parity. A general structured-data policy that’s appelé out specifically ici: the text visible to the utilisateur doit be similaire to the information in the structured données. Vous pouvez’t mark up items que aren’t genuinely represented in the visible page.
  • Same-domain URLs. A host carousel montre cards from the même site; the item URLs devrait be on votre propre domain.
  • Standard structured-data hygiene s’applique. JSON-LD is Google’s recommended format, tout requis properties pour votre companion type doit be présent (“Items que are manquant requis properties ne sont pas eligible pour résultats enrichis”), and vous doit pas block the marked-up pages from Googlebot via robots.txt or noindex. Ces are the même general guidelines que govern every rich-result type — the broader structured-data hub covers les in complet.

Fait ItemList schema affecter rankings? (Aucun.)

Short réponse: aucun. Données structurées n’est pas a ranking factor, and que inclut ItemList. Ce is Google’s consistent, repeated position. At Search Central Live APAC 2025, Gary Illyes made the point que “excessive or redundant schema seulement adds page bloat and has aucun additional ranking benefits,” framing schema as an aid to entity understanding and machine fonctionnalités — explicitly pas partie of the ranking traiter. Google’s standing position à travers recent années is the même: données structurées n’est pas a ranking signal, and même in cas of structured-data misuse the consequence is loss of rich-result eligibility (via a manual action), pas a ranking penalty.

Où fait the valeur come from, alors? Two places: rich-result eligibility (a carousel peut lift click-through, pas position) and machine understanding. On the second point, John Mueller — speaking personally, and explicitly “not official guidance” — noted in early 2026 que some fonctionnalités genuinely benefit from données structurées, giving the exemple que “pricing, shipping, availability pour shopping is basically impossible to lire in élevé fidelity & accurately from a text page.” That’s the honest frame: ItemList helps machines comprendre a structured liste; it ne fait pas rank it plus élevé.

ItemList vs. CollectionPage — a rapide disambiguation

Ces obtenir confused parce que les deux appliquer to “listing” pages, but ils réponse différent questions. ItemList describes an ordered liste of discrete items — the entries and leur positions. CollectionPage is a page type que represents a themed collection; it’s à propos de page-level semantics (“this page is a collection of things”) plutôt que the ordering of spécifique liste items. They’re pas mutually exclusive — a category page peut be a CollectionPage que aussi contient an ItemList of its products — but reach pour ItemList quand ce que vous vouloir to express is “here are the ranked items,” and CollectionPage quand vous vouloir to express “ce page is a curated collection.”

Où ce fits

ItemList is a deep dive sous the broader données structurées hub, alongside the sibling pieces on the visible carousel rich result (ItemList’s principal Google application) and on BreadcrumbList (formally a subtype of the very même mechanism). Pour the fundamentals que govern every type ici — the schema.org vocabulary, JSON-LD, the “not a ranking factor” spine, and the shrinking liste of pris en charge résultats enrichis — voir the Données structurées hub. Que sub-cluster lives à l’intérieur the broader on-page SEO cluster.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.