Resources · Content for AI Search

How to Use ItemList Schema With Position for AI-Friendly Ranked Lists

To use ItemList schema for a ranked list, mark up the list with schema.org's ItemList type. Give it one ListItem per entry, each with its position, plus either a url to a detail page or the item itself, and make the markup match the visible order exactly. Google uses ItemList for carousel rich results only in combination with specific content types, such as courses, movies, recipes and restaurants. A beta covers local businesses, products, hotels and events in the European Economic Area, Türkiye and South Africa. For AI answers, the markup is a supplement at best, since assistants that fetch pages read the visible list. What makes a ranked list citable is a visible ordered list, a stated method and a reason for each position.

What does the markup look like?

Google's carousel documentation describes two patterns.

A summary page linking to detail pages. Each ListItem has only three properties: @type, position and url.

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": "Best project management tools for small agencies (2026)",
  "itemListOrder": "https://schema.org/ItemListOrderAscending",
  "numberOfItems": 3,
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "url": "https://www.example.com/reviews/tool-a" },
    { "@type": "ListItem", "position": 2, "url": "https://www.example.com/reviews/tool-b" },
    { "@type": "ListItem", "position": 3, "url": "https://www.example.com/reviews/tool-c" }
  ]
}

An all-in-one page, where each ListItem contains the full item, such as a Recipe or Course, with its own properties, and a url pointing to an anchor on the same page.

Rules to follow:

  • Positions start at 1 and match the order readers see.
  • Every item in the markup appears on the page, and every item on the page appears in the markup.
  • URLs are canonical and lead to the item's details.
  • Use itemListOrder to state whether the order is ascending, descending or unordered.

Does ItemList markup help AI answers?

There is no evidence that it does directly. Google says its AI features need no special markup, and ItemList's documented Google uses are carousels for specific content types. Tests of ChatGPT, Claude, Perplexity and Gemini fetching pages found they extracted visible text and ignored JSON-LD. A May 2026 Ahrefs study of 1,885 pages that added structured data found no gain in AI citations against matched control pages: ChatGPT and AI Mode citations were unchanged, and AI Overview citations fell slightly. So a ranked list is judged on what readers see:

  • The order, in a visible numbered list or table.
  • The criteria used to rank.
  • The reasons for each entry's position.
  • The date the ranking applies to.

Markup that matches the page does no harm and helps Google where a supported feature applies. Markup that contradicts the page, such as a different order, undermines trust.

How should a ranked list page be structured for AI answers?

  1. A title that names the list and the audience, such as "Best project management tools for small agencies (2026)".
  2. A short answer first: "Our top pick for agencies under 20 people is Tool A because..."
  3. The method: what you tested or compared, and how you weighted the criteria.
  4. A visible ordered list or table, with each entry's position, name, best-for statement and key facts.
  5. A section per entry explaining why it sits where it does, including weaknesses.
  6. Who should choose differently: alternatives for other needs.
  7. The date and your relationship to any entry, such as affiliate links or ownership.

Assistants answering "best [category] for [audience]" questions draw on lists like this, but often summarise several of them. Specific "best for" statements and reasons are the parts they quote. How to target these questions is covered in how to target "best X for Y" queries in AI search.

Should you rank your own product first?

Ahrefs found that recently updated "best X" lists, including ones where the publisher ranks itself first, are the most prominent page type among ChatGPT's sources, so self-ranking does not stop a list being cited. But its follow-up experiment found an assistant can cite such a list and still recommend a competitor from it, and readers distrust a list that always puts the publisher first unless the method is clear and the list is honest about where others are better. If you publish such a list:

  • Say clearly that you make one of the products.
  • Use checkable criteria, such as price, limits, integrations and support hours.
  • Place yourself where you genuinely fit, which may be "best for small teams" rather than first overall.

Presenting a self-serving list as independent is a problem under consumer protection rules, including the FTC's rule on company-controlled review sites. Why assistants often name only a few businesses rather than a full ranking is covered in why AI assistants recommend only one or a few businesses instead of showing a ranked list.

When is ItemList worth adding?

  • Recipe, course, movie or restaurant lists, where Google's host carousels may apply.
  • Product, hotel, local business and event lists in the EEA, Türkiye or South Africa, where Google's carousel beta applies to eligible queries.
  • Any ranked list, as a low-cost way to state the order explicitly for systems that parse markup.

It is not worth adding instead of improving the visible content, and not worth adding if you cannot keep it in sync.

How do you keep markup and page in sync?

Generate both from the same data, such as a CMS list block or a spreadsheet that renders the visible table and the JSON-LD together. After each update, check the page in Google's Rich Results Test and compare the visible order with the markup. Update the date in both.

What mistakes are common with ItemList?

  • Markup that lists items not shown on the page, such as extra products added to the JSON-LD for coverage. Google's guidelines treat markup of content users cannot see as a quality problem.
  • Positions that do not match the visible order, usually after an editor reorders the page but the markup is hard-coded.
  • Mixing patterns, such as a summary page whose ListItems also carry full item details, or detail URLs that point to different sites. Google's host carousel expects all URLs in a summary list to be on the same domain.
  • Marking up category pages or navigation as ranked lists. An archive of posts is not a ranking, and itemListOrder should say so if you mark it up at all.
  • Treating the markup as the ranking. A table of names with no criteria or reasons gives readers and assistants nothing to quote, however clean the JSON-LD is.

How does the visible HTML carry the order?

Use an ordered list (<ol>) or a table with a position column for the ranking itself, and a heading per entry that repeats the position and name, such as "1. Tool A: best for agencies under 20 people". Headings like this survive when a page is converted to plain text, which is roughly what an assistant's fetcher sees. Put the "best for" label and a one-sentence reason directly under each heading, before any longer discussion. Avoid building the list only in a script-rendered widget, since fetchers that do not run JavaScript may see an empty page.

What might an illustrative case look like?

Consider an illustrative software review site with a "best CRM for estate agents" list marked up with ItemList. The summary table at the top still showed the order from two years earlier, while the sections below had been reshuffled, and the ItemList markup matched neither. AI answers citing the page described the old top pick from the table. The site rebuilt the page with a dated method section, a visible table of positions with "best for" labels and reasons, and ItemList markup generated from the same data. Within a month, assistants citing the page named the current top pick and quoted its "best for" label.

What do people ask about ItemList and AI?

Is ItemList required for Google carousels?

Yes, for two features: host carousels, alongside a supported content type such as Recipe or Course, and the carousel beta for local businesses, products and events in the EEA, Türkiye and South Africa. Other Google list features do not need it.

Can I use ItemList for a list of blog posts?

You can, but it has no documented search feature for that use. The visible list matters more.

Should positions change when I update the list?

Yes, and the visible list, the markup and the date should all change together.

Does numbering in the visible list matter?

Yes. A numbered list or a table with positions states the order plainly for readers and for any system reading the text.

Published by The Kovmere Team · updated Sep 29, 2026 · More resources