Collection Schema: Making Your Category Pages Legible as Lists

Collection Schema: Making Your Category Pages Legible as Lists

ItemList schema is structured data that tells a machine which products a collection page shows and in what order. On a Shopify collection it turns a page of links into a declared set, and it should list exactly the products the shopper sees on that page.

By Margareta Petrovic, founder of Visibility Mesh. I checked Google's carousel guide and the schema.org definition again on November 9, 2026, when I rewrote this guide.

A shopper looking at a collection knows the products belong together. A machine reading the same page sees links, and it has to guess which of them are the collection and which are the menu, the footer and the "you may also like" row. ItemList removes the guess. Collection copy says what the category is, and our guide to collection page copy covers that half.

Collection schema: making category pages legible. Without ItemList, a category is a wall of links. With it, a structured set. WITHOUT ItemList link link link link link link link link link AI: “a wall of links” WITH ItemList "@type": "ItemList", "itemListElement": [ { "position": 1, "url": "/products/boot-a" }, { "position": 2, "url": "/products/boot-b" }, { "position": 3, "url": "/products/boot-c" } … ] AI reads an ordered, declared set of products in the order the page shows them. a structured set, not a pile ItemList tells AI: these items belong together, in this order. VISIBILITY MESH LINKS → ITEMLIST VM-S-P2-05 · r1.0 CAN AI READ YOU?

What does ItemList declare?

Schema.org defines ItemList as a list of items, each one a ListItem with a position. On a collection page, each ListItem carries the position and the URL of a product, and the list can carry the collection's name and URL. A machine then knows which products the page is about and in what order the store presents them.

Will ItemList give my collection a rich result in Google?

ItemList does not earn a rich result on a collection by itself. Google's carousel guide, read on November 9, 2026, lists four content types for ItemList carousels: courses, movies, recipes and restaurants. Products are not on that list. The reason to add ItemList to a collection is clarity for any machine that reads the page, including assistants that read structured data, and not a special display in Google.

How do I add ItemList to a Shopify collection?

Check first, since a page must carry one copy of each schema type. Open a collection page, choose View page source and search for "ItemList". If your theme or an app already prints one, correct that one instead of adding a second. Our guide to validating structured data shows how to read what is there.

  1. In your Shopify admin, go to Online Store > Themes. Open the actions menu (the three dots) on your live theme and choose Duplicate, then work on the copy.
  2. On the copy, open the actions menu and choose Edit code.
  3. Open the section that prints the product grid, usually sections/main-collection-product-grid.liquid.
  4. Find the paginate block (it starts with "paginate collection.products") and paste the snippet below inside it, after the loop that prints the products.
  5. Save, preview the copy and open a collection page.
  6. Paste the collection URL into Google's Rich Results Test or the Schema Markup Validator and confirm one ItemList with the same products, in the same order, that the page shows.
  7. Publish the copy when it passes.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": {{ collection.title | json }},
  "url": {{ canonical_url | json }},
  "itemListElement": [
    {%- for product in collection.products -%}
    {
      "@type": "ListItem",
      "position": {{ forloop.index | plus: paginate.current_offset }},
      "url": {{ shop.url | append: product.url | json }},
      "name": {{ product.title | json }}
    }{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
  ]
}
</script>

The snippet sits inside the paginate block so that it lists the products on the page being viewed. Page two of a collection then lists its own products, starting at the right position. The snippet takes every value from the collection itself, so there is nothing to edit by hand.

What should ItemList leave out?

Leave out what the shopper cannot see on that page. Do not list products from page two on page one, and do not list products that a filter has hidden. Do not add a count of every product in the collection when the page shows 24 of them. Full Product markup belongs on each product page, so the collection list needs only the position, the URL and the name. When schema and page disagree explains why markup that claims more than the page shows does harm.

What does ItemList look like on a bike parts store?

Take a bike parts store on Shopify with a Road tires collection of 30 tires, shown 24 to a page. Page one gets an ItemList with 24 entries in the order the grid shows them, and page two gets the remaining 6, numbered 25 to 30. The collection copy above the grid says which tires suit wet roads and which suit racing, and each tire's product page links back to "Road tires" by name.

In our study of 216 Shopify storefronts (June 2026), 72 percent failed Entity Integrity, the machine readable product and brand layer. Collection markup is a small part of that layer, and it is one of the few parts that a single template change fixes on every collection at once.

Common questions

What is ItemList schema for a collection page?

ItemList is structured data that declares a page as a list of items, each with a position. On a Shopify collection it lists the products the page shows, in order, with each product's URL and name.

Does Shopify add ItemList to collections automatically?

It depends on the theme and the apps you use. Open a collection page, view the source and search for "ItemList". If one is there, check it and correct it rather than adding a second copy.

Does ItemList on a collection give me a Google rich result?

Google's carousel guide names four content types for ItemList carousels, and products are not one of them. Add ItemList to a collection so machines can read the set, not for a display in Google.

Should the collection ItemList include full product details?

The collection list needs only the position, URL and name of each product. Full Product markup with price and availability belongs on each product page.

Sources

For the full picture of structured data on a store, read schema for ecommerce explained.

AI Visibility Setup: Schema Mesh reads your store first, removes duplicate markup, and writes product structured data from what each page shows, on Shopify or WordPress. Nothing goes live until you approve it.

See whether this applies to your site

This article is about what AI can read; the scan checks your structured data page by page.

The free Visibility Mesh scan checks whether AI crawlers can reach your website and reads the structured data and text of 5 key pages. The scorecard has 3 complete findings, and each one names the page and the fix. No install, no call, no card.

Run the free scan