ItemList is a Schema.org type used to markup an ordered list of items, such as a ranking, a carousel, or a step-by-step guide, allowing search engines to understand the sequence and relationship of the contained entities for rich result generation. It explicitly defines the position of each ListItem within the collection.
Glossary
ItemList

What is ItemList?
A structured data vocabulary for defining ordered collections of entities on a webpage, enabling search engines to understand sequence and generate rich results.
This type is critical for communicating entity relationships to search engines. By wrapping items in an ItemList, publishers signal that the order is intentional and meaningful—whether it's a top-10 ranking, a recipe's ingredient sequence, or a curated product carousel. This structured data enables features like host carousels and enhances a page's eligibility for enhanced search result displays.
Key Properties of ItemList
The ItemList schema type enables search engines to parse ordered collections of entities, powering carousel rich results and establishing clear content hierarchies.
Core Definition & Purpose
ItemList is a Schema.org type that represents an ordered list of items. Unlike an unordered collection, the sequence defined by an ItemList carries semantic meaning—search engines interpret the position of each item as a deliberate ranking or step. This is critical for generating carousel rich results, where Google displays a horizontally scrollable list of entities directly in the SERP. Common use cases include:
- Top 10 rankings and curated lists
- Step-by-step recipe instructions
- Course catalogs and syllabus outlines
- Product feature comparison tables
The `itemListElement` Property
The itemListElement property is the backbone of ItemList markup. It accepts an array of ListItem objects, each representing one entry in the sequence. Every ListItem must define a position property (an integer starting at 1) to establish explicit ordering. The actual entity being listed is referenced via the item property, which can point to any Schema.org type—Article, Product, Event, or even another ItemList for nested structures.
position: Integer defining rank (1, 2, 3...)item: The entity being referenced (full object or URL)name: Optional label for the list item itself
The `numberOfItems` Property
numberOfItems is an integer property that declares the total count of entries in the list. While not strictly required, providing this value helps search engines validate the completeness of the parsed data and can improve rich result eligibility. It serves as a data integrity signal—if the parsed itemListElement array length doesn't match numberOfItems, it indicates a markup error. This property is particularly useful for:
- Paginated lists where items span multiple pages
- Dynamic lists where the total count is known upfront
- Summary cards displaying "X items" in search previews
The `itemListOrder` Property
itemListOrder specifies the ordering methodology of the list using an ItemListOrderType enumeration. This property explicitly tells search engines whether the sequence is arbitrary or follows a defined logic. Accepted values include:
- ItemListOrderAscending: Items ordered from lowest to highest by some criteria
- ItemListOrderDescending: Items ordered from highest to lowest
- ItemListUnordered: No intentional ordering exists Omitting this property when a clear ranking exists (e.g., "Top 10 Movies") misses an opportunity to provide semantic clarity about the list's intent.
Carousel Rich Result Eligibility
ItemList markup is the primary mechanism for qualifying content for carousel rich results on Google. When implemented correctly, a carousel displays a horizontally scrollable set of cards extracted from the list items. Key eligibility requirements include:
- The list must contain at least 2 items
- Each item must reference a distinct entity with its own structured data (e.g., Recipe, Course, Movie)
- The host page must be the canonical source for the list content
- Summary carousels display items from a single host; all-carousels aggregate across domains Common carousel types: Recipe, Course, Movie, and Article.
Nested ItemList Structures
ItemList supports recursive nesting, allowing complex hierarchical data to be represented. A ListItem's item property can itself be another ItemList, enabling multi-level outlines, course modules with lessons, or categorized rankings. This nesting must be expressed using full entity embedding in JSON-LD rather than URL references to ensure search engines can parse the complete structure without additional HTTP requests.
- Top-level ItemList: "Computer Science Curriculum"
- Nested ItemList: "Module 1: Data Structures" containing individual lecture items
- Each nested list maintains its own
numberOfItemsand ordering properties
Frequently Asked Questions
Precise answers to the most common technical questions about implementing the ItemList schema type for rich result generation and entity relationship mapping.
An ItemList is a Schema.org structured data type used to markup an ordered collection of items, such as a ranking, a step-by-step guide, or a curated carousel. It explicitly defines the sequence and cardinality of contained entities using the itemListElement property, where each element is assigned a numerical position attribute. This allows search engine parsers to understand not just what the items are, but their deliberate order and relationship to one another. Unlike an unordered collection, an ItemList communicates intentional sequencing—critical for signaling priority in ranked lists, procedural steps in a HowTo, or the linear progression of a slideshow. When implemented correctly via JSON-LD, it enables rich results like a top-stories carousel or a recipe instruction list directly in the search engine results page (SERP).
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
Master the core vocabulary of structured data implementation. These terms define the building blocks for communicating entity relationships to search engines and grounding AI in authoritative data.
MainEntity
A Schema.org property that explicitly identifies the primary entity a webpage describes. This is a high-confidence signal for search engines performing entity extraction and disambiguation.
- Usage:
"mainEntity": { "@type": "ItemList", ... }declares the list as the page's core subject - Impact: Strengthens the association between the URL and the structured data, reducing ambiguity
- Contrast: Without
mainEntity, a page with multiple schema blocks forces the parser to guess which is primary - Best Practice: Always wrap your dominant schema type with
mainEntitywhen it represents the page's purpose

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