My Tool Studio
Schema Markup·4 min read

ItemList Schema and Carousels: A Practical Guide

You've published a top ten roundup of note-taking apps and it's climbing page two. ItemList schema and carousels are the reason to finish the job: the markup gives each entry an explicit position, name, and URL, which is the exact shape Google's list treatments expect to find. It won't force a carousel, nothing does, but pages without the structure aren't in the running at all. Here's how ordering works, what a real block looks like, and the numbering slips that quietly invalidate lists.

{"@type": "Article","name": "…","url": "…"}RICH RESULTArticle

ItemList schema and carousels: the honest version

Carousel eligibility comes with fine print. Google's host carousels primarily reward summary pages whose ItemList entries link out to separate detail pages of a supported type, recipes, courses, movies, that kind of catalog shape. An editorial top ten where all the commentary lives on one URL rarely gets the horizontal scroll treatment, whatever its markup says.

So why bother for a blog roundup? Because the structure still gets read. An explicit ranked list tells engines your page is a list, how long it is, and what sits at number one, which feeds list-style features and helps the page match list-intent queries. Eligibility is cheap; the tool writes the structure in minutes, and the downside of shipping it is essentially zero.

Ordered vs unordered ItemList: decide before you publish

The vocabulary distinguishes ordered vs unordered itemlist semantics through the optional itemListOrder property, ascending, descending, or unordered. For a ranked roundup the order is the entire editorial point, so present positions that mirror your headline order exactly. For a plain catalog, ten stores in a shopping district, order carries no meaning and nobody should read rank into position 7.

Positions themselves are mandatory either way; every ListItem needs one, unordered or not. Building an itemlist for top ten posts by hand means maintaining ten sequential integers through every edit, which is precisely the bookkeeping the generator's reorder arrows take over: move an entry and every position renumbers instantly.

A worked ItemList example from a top ten post

Suppose the roundup is titled "Top 10 Note-Taking Apps for 2026" and Notion leads. The generator's output starts: {"@context":"https://schema.org","@type":"ItemList","name":"Top 10 Note-Taking Apps for 2026","itemListElement":[{"@type":"ListItem","position":1,"name":"Notion","url":"https://example.blog/reviews/notion"},{"@type":"ListItem","position":2,"name":"Obsidian","url":"https://example.blog/reviews/obsidian"}]} and continues through position 10.

Note what the URLs do: each points at the blog's own review of that app, making this a summary style list, the carousel-friendly shape. If everything lived on the roundup page itself, you'd drop those URLs or swap them for section anchors.

ItemList position mistakes that invalidate lists

Nearly every broken list in the wild fails one of these:

  • Gaps or duplicates in the sequence, positions 1, 2, 2, 4, usually left behind by a hand edit that deleted an entry.
  • Schema order contradicting visible order, so the page says Obsidian is second while the markup ranks it fifth.
  • Every item pointing at the same URL with no anchors, which collapses the list into ten copies of one link.
  • Mixing patterns: some items with full external detail URLs, others with none, leaving the list neither summary nor all-in-one.
  • Starting at position 0 because arrays start at zero; ListItem positions are one-based.

Getting cleaner ItemList markup out of the tool

Lean on the preview before copying: it renders the numbered badges and thumbnails in final order, and an off-by-one entry is far easier to spot rendered than buried in JSON. Keep each item's name identical to the H2 or H3 it corresponds to on the page, since name matching is how consistency between markup and content gets verified.

One more: when the roundup is actually a sequence of steps rather than recommendations, switch the List type dropdown to HowToSection so the semantics match the content.

Keeping ItemList markup current after re-ranks

Roundups age in a specific way: the content gets refreshed every year, the title becomes Top 10 Note-Taking Apps for 2027, two entries swap places, and one app gets replaced entirely. The markup rarely gets the same treatment, which leaves a 2026 ranking in the JSON contradicting the 2027 ranking on the page.

The cheap fix is to treat the generator as the source of truth for the list. Keep the entries saved in a note or rebuild them in two minutes, apply the new order with the arrows, and re-copy the block as part of the same edit that changes the article. The renumbering happens automatically, which removes the exact step people skip when editing raw JSON under deadline.

ItemList next to the neighboring schema tools

Two tools on this site sit closest. The CollectionPage Schema generator describes grouping pages themselves, and its output is the natural wrapper when your list enumerates a category's contents; the two types nest cleanly. The Article Schema Generator covers the roundup post as a piece of content, headline, author, and dates, and shipping Article plus ItemList together on a top ten post is a common, valid pairing.

After publishing, it's worth confirming both blocks actually render on the live URL rather than trusting the template.

Try it now

Open ItemList Schema Generator

The tool is one click away. No sign up, no upload, no payment.

Open ItemList Schema Generator