ItemList is a Schema.org structured data type that defines a sequential or unordered list of ListItem elements, each containing a position and a reference to a specific entity. It is the primary vocabulary for marking up carousels, top-10 rankings, recipe steps, and directory pages to signal explicit list semantics to AI-driven search parsers.
Glossary
ItemList

What is ItemList?
A Schema.org type used to represent an ordered collection of items, enabling search engines to understand and display lists such as carousels, rankings, and directories as enhanced rich results.
By implementing ItemList with JSON-LD, developers enable rich result eligibility for hosted carousels and summary cards in Google Search. The numberOfItems property specifies the total count, while each ListItem requires a position integer and an item reference, ensuring precise entity disambiguation and citation integrity within generative engine overviews.
Key Properties of ItemList
The ItemList type structures ordered collections of items, enabling search engines to understand carousels, rankings, and directory-style content for enhanced display in search results.
itemListElement
The core property that defines the items in the list. Each element can be specified using one of two approaches:
- Simple text values: For basic lists of strings like step-by-step instructions
- Full entity objects: For complex items like Product, Article, or Event types with their own properties
Each element should include a position property to explicitly define its order in the sequence. This property is critical for maintaining the intended ranking or step order when search engines parse the list.
numberOfItems
An integer value indicating the total count of items contained in the list. This property serves as a verification signal for search engines:
- Helps crawlers validate that all declared items were successfully parsed
- Provides a quick summary without requiring full list traversal
- Useful for lists where the total count carries semantic meaning, such as 'Top 10' rankings
While optional, including this property improves data integrity checks during automated processing.
itemListOrder
Defines the ordering methodology of the list using an enumeration value:
- ItemListOrderAscending: Items arranged from lowest to highest according to the sorting criteria
- ItemListOrderDescending: Items arranged from highest to lowest
- ItemListUnordered: No intentional ordering exists
This property is essential for lists where the sequence carries meaning, such as ranked results, chronological timelines, or priority-ordered tasks. It prevents search engines from misinterpreting the list's intent.
Carousel Rich Result Eligibility
When combined with Summary page markup, ItemList enables the carousel rich result in Google Search. This visual format displays a horizontally scrollable collection of items directly in search results.
Key requirements for eligibility:
- Each list item must be a fully defined entity (Recipe, Course, Movie, etc.)
- Images must be specified for each item
- The host page must provide a summary of each item with a link to a dedicated detail page
This is one of the most visually impactful Schema.org implementations for content-driven sites.
Position Property
Within each ListItem element, the position property assigns an explicit integer rank starting from 1. This is not the same as array index ordering in JSON-LD.
Critical implementation details:
- Position values must be sequential integers without gaps
- Search engines use position to verify and reconstruct the intended order
- Essential for 'Top 10' lists, step-by-step guides, and ranked directories
Omitting position values can cause search engines to fall back on document order, which may not match the intended display sequence.
Nested ItemList Structures
ItemList supports hierarchical nesting, allowing sub-lists within parent list items. This is particularly useful for:
- Multi-level directories: Categories containing subcategories
- Course curricula: Modules containing individual lessons
- Recipe collections: Meal plans containing individual recipes
Each nested ItemList maintains its own independent ordering and item count properties, enabling precise representation of complex content hierarchies while preserving semantic clarity for AI parsers.
Frequently Asked Questions
Clear, technical answers to the most common questions about implementing and optimizing the ItemList structured data type for AI-driven search visibility.
ItemList is a Schema.org structured data type used to represent an ordered collection of items, typically rendered as a carousel, ranking, or directory. It works by wrapping multiple ListItem elements within a parent ItemList entity, where each ListItem contains a position property (an integer defining its ordinal rank) and an item property referencing the actual entity being listed—such as an Article, Product, or Recipe. When parsed by search engines, this explicit ordering signals that the sequence is intentional and meaningful, not arbitrary. Google's carousel rich result is the most common visual manifestation, displaying a horizontally scrollable set of cards directly in the SERP. The numberOfItems property on the parent ItemList provides a total count, while itemListOrder can specify whether the list follows an ItemListOrderAscending or ItemListOrderDescending pattern. For AI-driven answer engines, this structured ordering provides a clear signal of priority and relationship, helping models understand which items are most significant within a curated set.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Mastering ItemList requires understanding its relationship with adjacent Schema.org types and serialization formats. These interconnected concepts form the foundation of effective structured data strategies for AI-driven search.
BreadcrumbList
A specialized subtype of ItemList designed exclusively for marking up navigational breadcrumb trails. It indicates a page's hierarchical position within a site's architecture.
- Key difference: Uses
ListItemwithpositionanditemproperties - Rich result: Eligible for breadcrumb display in search snippets
- SEO impact: Helps search engines understand site structure and URL hierarchy
MainEntity
A Schema.org property that explicitly identifies the primary entity a page describes. When applied to an ItemList, it signals to parsers that the list itself—not surrounding content—is the page's central subject.
- Disambiguation: Prevents search engines from misidentifying the page topic
- Use case: A rankings page where the ordered list is the core value
- Syntax:
"mainEntity": { "@type": "ItemList", ... }
Entity Linking
The process of connecting textual mentions to their canonical knowledge base entries. Each ListItem within an ItemList can reference entities disambiguated via @id or sameAs properties.
- Wikidata IDs: Link list items to Q-identifiers for unambiguous identity
- AI benefit: Helps generative engines resolve entity references precisely
- Example: A list of 'Top CEOs' where each person links to their Wikidata URI
Carousel Rich Results
A visual search result format where an ItemList powers a horizontally scrollable gallery of items. Eligible for recipes, courses, movies, and articles.
- Requirements: Must use
ItemListwith sequentialListItementries - Properties needed: Each item requires
url,image, and descriptive text - Visibility: Significantly increases SERP real estate and click-through rates
Graph
A top-level JSON-LD construct that encapsulates multiple interconnected nodes within a single structured data block. An ItemList can be declared as one node within a broader @graph array.
- Purpose: Defines relationships between entities on the same page
- Efficiency: Single script tag contains all structured data
- Pattern:
"@graph": [ { "@type": "ItemList" }, { "@type": "Organization" } ]

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us