A listicle without ItemList is a wall of prose that happens to contain product names. With it, a machine knows the page ranks twelve named things in a specific order, which is exactly the question an answer engine is trying to settle when somebody asks for the best of something.
Each entry is a ListItem carrying a position and a name. You can nest a richer type inside, such as a Product or SoftwareApplication, but only if the claims that type implies are ones you have actually checked. Position and name alone are honest and complete.
The failure mode to avoid is drift. If the markup lists twelve items and the visible page shows ten, or lists them in a different order, you are telling a machine something the reader cannot verify. Generating the markup from the same source as the page is the reliable fix.
Read next
Frequently asked
When should I use ItemList?
Any page whose purpose is a list: best-of roundups, ranked comparisons, step sequences, directories, event calendars. If a reader would describe the page as a list, a machine should be told the same thing.
Should I add ratings to ItemList entries?
Only if they are real and sourced. Inventing an aggregateRating to make entries look richer is fabricated review data, which is both against structured data guidelines and the fastest way to lose trust in everything else on the page.
More from Structured data
All termsFAQ Schema
JSON-LD structured data (schema.org/FAQPage) that marks question-answer pairs on a page so search and AI engines can extract them.
ReadJSON-LD
JSON for Linked Data: the structured data format Google, AI engines, and other crawlers prefer for embedding schema.org markup in pages.
ReadSchema.org
A shared vocabulary of types and properties, backed by Google, Microsoft, Yahoo and Yandex, that lets a page describe what it is in a form machines can read.
Read