In short. Use numberOfItems for the full list total and position for each entry's place in the sequence.
Definition: Schema.org defines
ItemListas a list of items. ItsnumberOfItemsproperty is the total count when a description covers only part of a list split across pages.
Key facts
- Schema.org defines
numberOfItemsas the number of items in anItemList, with the entire-list meaning explicitly covering multi-page pagination (Schema.org's ItemList definition). - Schema.org defines
positionas the position of an item in a series or sequence (ListItem). - Google describes pagination as pages connected by links such as
next,previous, and page numbers (Pagination and incremental page loading). - Google says its crawler generally follows URLs in the
hrefattribute of<a>elements, while its crawlers generally do not activate buttons to update the current page (the same pagination documentation). - For Google's supported carousel feature, a summary page uses
ListItemvalues with@type,position, andurl(Carousel structured data).
What does numberOfItems count?
The value describes the ItemList as a whole. It is therefore allowed to be larger than the number of itemListElement objects described on one page when the page is one part of a multi-page list. The Schema.org definition names this case directly: a description may not fully describe all items, and numberOfItems then applies to the entire list.
The property table gives numberOfItems the expected type Integer. Schema.org's ItemList examples include an ItemList with numberOfItems set to 315, followed by a partial itemListElement array. A minimal JSON-LD shape based on that example is:
{
"@context": "https://schema.org",
"@type": "ItemList",
"numberOfItems": 315,
"itemListElement": [
{
"@type": "Product",
"name": "..."
}
]
}
The source example includes a product object and an abbreviated item name. For new JSON-LD, keep the value accurate for the complete list and keep the listed entries consistent with the page's visible content.
How should positions work across pages?
itemListElement can contain ListItem objects. Schema.org says that markup order alone is insufficient to indicate order and recommends ListItem with a position property when order matters. The ListItem definition describes that property as the position in a series or sequence.
For a paginated list, use the position in the full sequence for each entry represented on the current page. A later page therefore carries later positions instead of restarting the sequence at the first position. The total in numberOfItems and the positions in ListItem answer different questions: one reports the list's size, while the other locates an entry in its sequence.
What must the page structure provide?
Google's pagination documentation says to link each page to the following page with <a href> tags so Googlebot can find subsequent pages. It also says that every page in a paginated sequence should have a unique URL. A query such as ?page=n is one documented URL pattern, while a fragment identifier after # is not suitable for page numbers because Google ignores fragments.
<a href="https://example.com/items?page=2">Next</a>
This crawl path is separate from the numberOfItems value. The Schema.org property describes the list total; the links expose the pages that contain the list's parts. Google's pagination documentation also says that Google no longer uses rel="next" and rel="prev" to identify those relationships.
What does Google's ItemList documentation cover?
Google's carousel documentation describes a specific supported feature. For a summary page, it says each ListItem has @type, position, and url, and that position is a one-based number. The same page requires an itemListElement list with at least two ListItem elements for that feature. Those requirements describe Google's carousel implementation; Schema.org's definition of numberOfItems supplies the multi-page total semantics.
Related terms
FAQ
Is numberOfItems the number visible on the current page?
No. For a description that covers only part of a multi-page list, Schema.org defines it for the entire list. The current page can therefore contain fewer itemListElement entries.
Should positions restart on every page?
Schema.org defines position within a series or sequence. Keep positions tied to the list sequence so an entry retains its place when the list is split across pages.
Does numberOfItems make Google join every page automatically?
Google's current carousel documentation describes itemListElement, position, and url for its summary-page feature. Its pagination documentation separately describes crawlable page links, so the two jobs should be implemented separately.
How should the pages be connected?
Give each page a unique URL and link to the following page with an HTML <a href> element. Google says it generally follows those URLs when crawling.
Sources
- Schema.org, "ItemList", 2026-09-16
- Schema.org, "ListItem", 2026-09-16
- Google Search Central, "Carousel (ItemList) Structured Data", 2026-09-08
- Google Search Central, "Pagination, incremental page loading, and their impact on Google Search", 2025-12-10
Check how a page reads to answer engines. Open the GEO score analyzer