Panduan ItemList Schema
ItemList adalah schema.org's generic ordered-list container — mechanism Google's Carousel rich hasil adalah dibangun pada, dan parent jenis BreadcrumbList inherits dari. What ini melakukan, what ini doesn't, dan how pieces fit.
Bahasa
1 sinyal bukti di halaman ini
- Alat aktif terkaitRich-Result Eligibility Checker
ItemList adalah schema.org's generic 'ini adalah sebuah ordered list dari things' container — two properties (itemListElement dan sebuah 1-based position) melakukan almost semua berfungsi. single biggest misconception: ItemList oleh itself adalah not sebuah rich hasil dan doesn't get Anda sebuah carousel. Google's Carousel rich hasil adalah dibangun pada top dari ItemList, dan hanya fires when Anda pair ini dengan sebuah didukung companion jenis (Course list, Movie, Recipe, Restaurant untuk classic carousel; LocalBusiness/Product/Event untuk sebuah newer geo-gated beta limited untuk EEA, Turkey, dan South Africa). BreadcrumbList adalah formally sebuah subtype dari ItemList — sama itemListElement/position mechanics — which adalah detail itu trips up bahkan experienced implementers. Items harus semua menjadi yang sama jenis pada classic carousel ( beta allows mixing), Anda perlu 2+ items (3+ untuk beta), dan markup harus match terlihat konten. dan like semua data terstruktur, ItemList adalah not sebuah peringkat factor; -nya nilai adalah rich-hasil eligibility, not position — dan Google adalah explicit itu meeting requirements tidak pernah guarantees fitur actually displays.
Evidence for this claim Schema.org ItemList models an ordered or unordered collection and ListItem can supply item positions and URLs. Scope: Schema.org ItemList vocabulary. Confidence: high · Verified: Schema.org: ItemList Evidence for this claim Google uses ItemList within specific features such as host carousels; a generic valid ItemList has no standalone guaranteed rich result. Scope: Current Google carousel implementation and eligibility. Confidence: high · Verified: Google Search Central: Carousel structured dataTL;DR — ItemList adalah sebuah bit dari schema.org code itu says “this page is a list of things, in this order.” (terjemahan) “ini halaman adalah sebuah list dari things, di ini order.” two penting bagian adalah list dari entries (
itemListElement) dan sebuah peringkat angka pada setiap one (position). oleh itself ini melakukan not get Anda sebuah fancy search hasil — Google’s swipeable Carousel adalah dibangun pada top dari ItemList, dan hanya menampilkan up when Anda pair ini dengan one dari sebuah few spesifik konten jenis (recipes, movies, courses, restaurants). ini won’t help Anda peringkat higher, either.
What ItemList schema adalah
When Anda bangun “Top 10” (terjemahan) “Top 10” halaman, atau sebuah recipe roundup, atau sebuah list dari courses, Anda dapat see ini adalah sebuah list. sebuah mesin pencari mostly sees sebuah wall dari text dan beberapa HTML. ItemList adalah sebuah kecil block dari structured-data code itu spells ini out: “this is a list, here are the items, and here’s the order they go in.” (terjemahan) “ini adalah sebuah list, here adalah items, dan here’s order mereka go di.”
Schema.org describes ini sebagai “A list of items of any sort—for example, Top 10 Movies
About Weathermen, or Top 100 Party Songs.” (terjemahan) “sebuah list dari items dari apa pun sort—misalnya, Top 10 Movies
tentang Weathermen, atau Top 100 Party Songs.” ini juga menambahkan sebuah clarifying line worth
remembering: “Not to be confused with HTML lists, which are often used only for
formatting.” (terjemahan) “Not untuk menjadi confused dengan HTML lists, which adalah sering digunakan hanya untuk
formatting.” sebuah ordinary <ol> atau <ul> membuat sebuah list look like sebuah list; ItemList
membuat ini berarti sebuah list untuk sebuah machine.
Two properties melakukan almost semua berfungsi:
itemListElement— list dari entries. setiap entry adalah biasanya sebuahListItem.position— sebuah angka starting di 1 itu says where setiap entry peringkat di list.
one thing everyone gets wrong
menambahkan ItemList oleh itself melakukan not get Anda sebuah special search hasil. ini adalah top misconception, so ini adalah worth stating plainly. ItemList adalah mechanism; terlihat payoff — sebuah swipeable set dari cards di Google’s hasil — adalah sebuah separate fitur called sebuah Carousel. dan sebuah carousel hanya appears when Anda combine ItemList dengan one dari sebuah pendek, Google-controlled list dari konten jenis (untuk classic carousel: Course list, Movie, Recipe, Restaurant). sebuah generic “Top 10 blog posts” (terjemahan) “Top 10 blog posts” halaman marked up dengan plain ItemList doesn’t earn itu display.
There’s juga sebuah family connection itu surprises people: breadcrumbs gunakan yang sama
mechanism. BreadcrumbList — schema behind itu “Home › Category › Page” (terjemahan) “Home › Category › halaman” trails —
adalah technically sebuah jenis dari ItemList. sama itemListElement, sama position. setelah Anda
learn one, Anda’ve mostly learned lainnya.
mengapa ini penting (dan what ini doesn’t melakukan)
- ini dapat membuat Anda eligible untuk sebuah carousel — jika Anda memiliki sebuah didukung konten jenis dan everything else adalah right. Eligible isn’t yang sama sebagai guaranteed, either: Google says plainly ini doesn’t guarantee itu fitur consuming data terstruktur akan actually tampilkan up di hasil pencarian.
- ini helps machines memahami Anda halaman adalah sebuah structured list. itu’s container’s job — I’m not going untuk claim sebuah broader “helps AI systems read your page” (terjemahan) “helps AI sistem read Anda halaman” payoff pada top dari itu without Google publishing something spesifik untuk poin untuk.
- ini melakukan not meningkatkan Anda rankings. Like semua data terstruktur, ItemList adalah not sebuah peringkat factor. Google memiliki telah consistent pada ini untuk years.
ingin full picture — two implementation patterns, exact didukung jenis, newer geo-limited beta carousel, how BreadcrumbList fits di, dan umum validation failures? Switch untuk Advanced tab.
Evidence for this claim Schema.org ItemList models an ordered or unordered collection and ListItem can supply item positions and URLs. Scope: Schema.org ItemList vocabulary. Confidence: high · Verified: Schema.org: ItemList Evidence for this claim Google uses ItemList within specific features such as host carousels; a generic valid ItemList has no standalone guaranteed rich result. Scope: Current Google carousel implementation and eligibility. Confidence: high · Verified: Google Search Central: Carousel structured dataTL;DR — ItemList adalah schema.org’s generic ordered-list container;
itemListElement
- sebuah 1-based
positionmelakukan berfungsi, denganitemListOrderdannumberOfItemssebagai lesser-digunakan extras (numberOfItemspenting untuk paginated lists). ini adalah not itself sebuah rich hasil — Google’s Carousel adalah dibangun pada top dari ini dan hanya fires dengan sebuah didukung companion jenis: Course list, Movie, Recipe, Restaurant untuk classic carousel, dan LocalBusiness/Product/Event untuk sebuah newer beta itu’s geo-gated untuk EEA, Turkey, dan South Africa. Two patterns: summary-halaman (url-hanya ListItems) dan semua-di-one (nested items). aturan: 2+ items (3+ untuk beta), semua yang sama jenis pada classic carousel ( beta allows mixing), markup harus match terlihat konten. BreadcrumbList adalah formally sebuah subtype dari ItemList (dengan HowToSection, HowToStep, OfferCatalog) — detail sebagian besar guides miss. dan data terstruktur adalah not sebuah peringkat factor — -nya payoff adalah eligibility dan understanding, not position.
What ItemList actually adalah
Schema.org’s definition adalah deliberately broad: “A list of items of any sort—for example,
Top 10 Movies About Weathermen, or Top 100 Party Songs.” (terjemahan) “sebuah list dari items dari apa pun sort—misalnya,
Top 10 Movies tentang Weathermen, atau Top 100 Party Songs.” line itu menjelaskan why
jenis perlu untuk exist adalah next one: “Not to be confused with HTML lists, which are
often used only for formatting.” (terjemahan) “Not untuk menjadi confused dengan HTML lists, which adalah
sering digunakan hanya untuk formatting.” sebuah <ol>/<ul> conveys “these are a list, in this
order” (terjemahan) “ini adalah sebuah list, di ini
order” purely oleh visual convention. ItemList declares container (ItemList), setiap
entry (ListItem), dan setiap entry’s peringkat (position) sebagai data sebuah machine dapat read without
inferring anything dari layout.
Two properties melakukan heavy lifting:
itemListElement— array dari entries. Schema.org: “For itemListElement values, you can use simple strings (e.g. ‘Peter’, ‘Paul’, ‘Mary’), existing entities, or use ListItem.” (terjemahan) “untuk itemListElement nilai, Anda dapat gunakan sederhana strings (e.g. ‘Peter’, ‘Paul’, ‘Mary’), existing entities, atau gunakan ListItem.” untuk anything itu ingin sebuah URL atau sebuah position (i.e. anything aiming di sebuah rich hasil), Anda gunakanListItem.position— sebuah 1-based integer giving setiapListItem-nya peringkat.
Two more adalah documented tetapi skipped oleh sebagian besar guides:
itemListOrder— “Type of ordering (e.g. Ascending, Descending, Unordered).” (terjemahan) “jenis dari ordering (e.g. Ascending, Descending, Unordered).” sebuah declaration, not something Google enforces.numberOfItems— “The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list.” (terjemahan) “ angka dari items di sebuah ItemList. Note itu beberapa deskripsi mungkin not fully describe semua items di sebuah list.” ini one earns -nya pertahankan pada paginated lists: sebuah “Top 100” (terjemahan) “Top 100” split di seluruh five halaman dapat gunakannumberOfItemsuntuk state full count bahkan though apa pun one halaman marks up hanya twenty entries.
(There’s juga aggregateElement untuk holding aggregate ratings/offers di seluruh list —
genuinely niche; Anda’ll rarely touch ini.)
two implementation patterns
Google’s carousel documentation describes two shapes, dan which one Anda gunakan perubahan what
setiap ListItem looks like:
Summary halaman dan multiple detail halaman
sebuah summary halaman lists setiap item briefly, dan setiap entry tautan out untuk sebuah dedicated detail
halaman. Here ListItem adalah minimal — Google: summary halaman defines sebuah ItemList where
setiap ListItem memiliki hanya three properties: @type (atur ke ListItem), position (
position di list), dan url ( canonical URL dari item’s detail halaman). full
per-item data terstruktur ( Recipe, Movie, etc.) lives pada setiap detail halaman.
semua-di-one summary halaman
Everything lives pada one halaman, so setiap ListItem carries sebuah nested item containing
full companion-jenis markup ( whole Recipe object, misalnya) alih-alih hanya sebuah
url. gunakan ini when tidak ada separate detail halaman.
ItemList adalah not Carousel — ini adalah core distinction
Here’s accuracy spine dari whole topic. ItemList adalah sebuah container; Carousel adalah sebuah rich hasil dibangun pada top dari ini. ItemList alone, dengan no didukung companion jenis, melakukan not produce sebuah distinct “list” (terjemahan) “list” rich hasil di classic Google Search. Google’s docs adalah explicit itu carousel eligibility memerlukan both pieces.
Classic Carousel — didukung jenis
untuk menjadi eligible untuk sebuah host carousel rich hasil, Anda tambahkan ItemList data terstruktur di combination dengan one dari sebuah kecil, Google-controlled set dari didukung fitur. sebagai dari Google’s saat ini (2026) documentation, itu list adalah:
- Course list
- Movie
- Recipe
- Restaurant
itu’s ini untuk classic carousel. lainnya jenis — Product, BlogPosting, Event — dapat carry ItemList markup untuk organization dan machine understanding, tetapi itu alone melakukan not membuat them classic-carousel-eligible.
Carousels (Beta) — newer, geo-gated program
There’s sebuah kedua, newer program — Carousels (Beta) — itu Google describes sebagai “a list-like rich result that people can scroll horizontally to see more entities from a given site.” (terjemahan) “sebuah list-like rich hasil itu people dapat scroll horizontally untuk see more entities dari sebuah given situs.” ini adalah more actively-evolving bagian dari ini fitur area, dan ini differs dari classic carousel di three penting cara:
- berbeda didukung jenis: ItemList combined dengan LocalBusiness dan -nya subtypes (Restaurant, Hotel, VacationRental), Product, atau Event — sebuah broader dan berbeda set daripada classic four.
- Geographically limited: ini adalah available hanya di EEA countries, Turkey, dan South Africa, pada desktop dan mobile, dengan eligible kueri jenis varying oleh region. ini adalah not sebuah global fitur — sebuah caveat worth stating plainly, since several ketiga-party write-ups discuss ini sebagai jika ini adalah umumnya available.
- sebuah higher minimum: beta memerlukan sebuah summary halaman plus detail halaman dengan setidaknya
three
itemListElement.itementries, versus classic carousel’s two. - Mixing adalah allowed: unlike classic carousel’s strict sama-jenis aturan, Google’s beta documentation says Anda “can mix and match different types of entities (for example, hotels, restaurants), if needed for your scenario” (terjemahan) “dapat mix dan match berbeda jenis dari entities (untuk contoh, hotels, restaurants), jika needed untuk Anda scenario” — don’t carry classic sama-jenis assumption di atas when Anda’re berfungsi dengan beta.
Treat beta sebagai “watch this space” (terjemahan) “watch ini space” alih-alih sebuah stable, universal fitur.
How BreadcrumbList (dan sebuah few others) relate untuk ItemList
ini adalah single sebagian besar di bawah-covered, differentiating fact tentang ItemList, dan ini clears up sebuah umum poin dari confusion: BreadcrumbList adalah not sebuah separate, unrelated schema jenis — ini adalah formally sebuah subtype dari ItemList. Schema.org states ini directly: “A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.” (terjemahan) “sebuah BreadcrumbList adalah sebuah ItemList consisting dari sebuah chain dari ditautkan halaman web, typically described menggunakan setidaknya mereka URL dan mereka name, dan typically ending dengan saat ini halaman.” dan schema.org’s own “More specific Types” (terjemahan) “More spesifik jenis” list untuk ItemList adalah exactly four entries: BreadcrumbList, HowToSection, HowToStep, dan OfferCatalog.
Practically, itu berarti itemListElement + position mechanics Anda gunakan untuk sebuah carousel
adalah literally yang sama ones Anda gunakan untuk breadcrumbs — hanya outer @type
(BreadcrumbList vs. plain ItemList) dan semantic purpose perubahan. Google frames
breadcrumbs yang sama cara: untuk specify breadcrumbs, Anda define sebuah BreadcrumbList containing di
least two ListItems. jika Anda’ve implemented one, Anda sudah memahami lainnya. (
breadcrumb side dari ini family lives di -nya own deep dive, dan terlihat carousel hasil
adalah subject dari sebuah sibling carousel piece — both sit di ini sama structured-data
sub-cluster.)
Implementation requirements dan umum validation failures
sebagian besar carousel/ItemList failures come down untuk sebuah handful dari documented aturan:
- Minimum item count. Google memerlukan
itemListElementarray untuk berisi two atau moreListItemelements untuk classic carousel (three atau more untuk beta). One item adalah not sebuah list. - sama-jenis aturan (classic carousel) — frequent nyata cause dari failures. Google: “All items in the list must be of the same type. For example, if a list is about recipes, only include Recipe items. Don’t mix different types.” (terjemahan) “semua items di list harus menjadi dari yang sama jenis. misalnya, jika sebuah list adalah tentang recipes, hanya sertakan Recipe items. Don’t mix berbeda jenis.” sebuah list itu mixes Recipes dan Products won’t validate sebagai sebuah classic carousel. ini aturan adalah spesifik untuk classic program — beta above explicitly permits mixing entity jenis, so don’t carry yang sama-jenis assumption di atas when itu’s program Anda’re targeting.
- terlihat-konten parity. sebuah umum structured-data policy itu’s called out specifically here: text terlihat untuk pengguna harus menjadi similar untuk informasi di structured data. Anda dapat’t mark up items itu aren’t genuinely represented di terlihat halaman.
- sama-domain URLs. sebuah host carousel menampilkan cards dari sama situs; item URLs seharusnya menjadi pada Anda own domain.
- Standard structured-data hygiene applies. JSON-LD adalah Google’s recommended format, semua diperlukan properties untuk Anda companion jenis harus menjadi present (“Items that are missing required properties are not eligible for rich results” (terjemahan) “Items itu adalah missing diperlukan properties adalah not eligible untuk rich hasil”), dan Anda harus not block marked-up halaman dari Googlebot via robots.txt atau noindex. ini adalah yang sama umum guidelines itu govern setiap rich-hasil jenis — broader structured-data hub covers them di full.
melakukan ItemList schema affect rankings? (No.)
pendek jawaban: no. data terstruktur adalah not sebuah peringkat factor, dan itu mencakup ItemList. ini adalah Google’s consistent, repeated position. di Search Central Live APAC 2025, Gary Illyes dibuat poin itu “excessive or redundant schema only adds page bloat and has no additional ranking benefits,” (terjemahan) “excessive atau redundant schema hanya menambahkan halaman bloat dan memiliki no additional peringkat benefits,” framing schema sebagai sebuah aid untuk entity understanding dan machine fitur — explicitly not bagian dari peringkat process. Google’s standing position di seluruh recent years adalah yang sama: data terstruktur adalah not sebuah sinyal peringkat, dan bahkan di cases dari structured-data misuse consequence adalah loss dari rich-hasil eligibility (via sebuah manual tindakan), not sebuah peringkat penalty.
Where melakukan nilai come dari, lalu? Two places: rich-hasil eligibility (sebuah carousel dapat lift click-melalui, not position) dan machine understanding. pada kedua poin, John Mueller — speaking personally, dan explicitly “not official guidance” (terjemahan) “not official guidance” — noted di early 2026 itu beberapa fitur genuinely benefit dari data terstruktur, giving contoh itu “pricing, shipping, availability for shopping is basically impossible to read in high fidelity & accurately from a text page.” (terjemahan) “pricing, shipping, availability untuk shopping adalah basically impossible untuk read di tinggi fidelity & accurately dari sebuah text halaman.” itu’s honest frame: ItemList helps machines memahami sebuah structured list; ini melakukan not peringkat ini higher.
ItemList vs. CollectionPage — sebuah quick disambiguation
ini get confused because both apply untuk “listing” (terjemahan) “listing” halaman, tetapi mereka jawaban berbeda pertanyaan.
ItemList describes sebuah ordered list dari discrete items — entries dan mereka positions.
CollectionPage adalah sebuah halaman jenis itu mewakili sebuah themed collection; ini adalah tentang halaman-tingkat
semantics (“this page is a collection of things” (terjemahan) “ini halaman adalah sebuah collection dari things”) alih-alih ordering dari spesifik list
items. mereka’re not mutually exclusive — sebuah category halaman dapat menjadi sebuah CollectionPage itu juga
berisi sebuah ItemList dari -nya products — tetapi reach untuk ItemList when what Anda ingin express
adalah “here are the ranked items,” (terjemahan) “here adalah diperingkatkan items,” dan CollectionPage when Anda ingin express “this page is a
curated collection.” (terjemahan) “ini halaman adalah sebuah
curated collection.”
Where ini fits
ItemList adalah sebuah deep dive di bawah broader data terstruktur hub, alongside sibling pieces pada terlihat carousel rich hasil (ItemList’s main Google application) dan pada BreadcrumbList (formally sebuah subtype dari very sama mechanism). untuk fundamentals itu govern setiap jenis here — schema.org vocabulary, JSON-LD, “not a ranking factor” (terjemahan) “not sebuah peringkat factor” spine, dan shrinking list dari didukung rich hasil — see data terstruktur hub. itu sub-cluster lives inside broader pada-halaman SEO cluster.
AI summary
sebuah condensed take pada Advanced versi:
- ItemList = sebuah generic schema.org list container. “A list of items of any sort.” (terjemahan) “sebuah list dari items dari apa pun sort.”
itemListElement( entries, biasanyaListItem) + sebuah 1-basedpositionmelakukan berfungsi;itemListOrderdannumberOfItemsadalah lesser-digunakan extras (numberOfItemspenting untuk paginated lists). - ItemList adalah NOT sebuah rich hasil oleh itself. Google’s Carousel adalah dibangun pada top dari ini dan hanya fires dengan sebuah didukung companion jenis. ini container-vs-rich-hasil distinction adalah top misconception.
- Classic Carousel didukung jenis: Course list, Movie, Recipe, Restaurant — pair one dengan ItemList untuk menjadi eligible (tidak pernah guaranteed).
- Carousels (Beta) adalah sebuah separate, newer program: LocalBusiness/Product/Event, geo-gated untuk EEA, Turkey, dan South Africa, minimum three entities. Not globally available.
- Two implementation patterns: summary-halaman (ListItems dengan hanya
@type/position/url, detail markup pada separate halaman) dan semua-di-one (setiap ListItem nests fullitem). - BreadcrumbList adalah sebuah formal SUBTYPE dari ItemList (dengan HowToSection, HowToStep, OfferCatalog).
Breadcrumbs dan carousels share exact sama
itemListElement/positionmechanics. - aturan itu cause sebagian besar failures: 2+ items (3+ beta), semua yang sama jenis pada classic carousel ( beta allows mixing), dan markup harus match terlihat konten.
- Not sebuah peringkat factor. Illyes (2025): redundant schema adalah “page bloat” (terjemahan) “halaman bloat” dengan “no additional ranking benefits.” (terjemahan) “no additional peringkat benefits.” nilai = rich-hasil eligibility + machine understanding; misuse costs eligibility, not rankings. Mueller (personally, “not official guidance” (terjemahan) “not official guidance”) notes schema helps untuk hard-untuk-parse data like pricing/availability.
- ItemList vs. CollectionPage: ItemList = sebuah ordered list dari discrete items; CollectionPage = sebuah halaman jenis untuk sebuah themed collection. Not mutually exclusive.
Official documentation
Primary-source documentation dari Google dan schema.org.
- Carousel (ItemList) data terstruktur — classic host carousel: didukung jenis (Course list, Movie, Recipe, Restaurant), summary-halaman vs. semua-di-one patterns, 2+ items dan sama-jenis aturan.
- Carousels (Beta) data terstruktur — newer, geo-gated program (LocalBusiness/Product/Event; EEA, Turkey, South Africa; 3+ entities).
- Breadcrumb (BreadcrumbList) data terstruktur — breadcrumb application dari yang sama ItemList mechanism.
- data terstruktur umum Guidelines — policies itu apply untuk ItemList sebagai untuk setiap jenis: visibilitas, accuracy, diperlukan properties, no robots.txt/noindex blocking.
schema.org
- ItemList — jenis itself: definition, HTML-list distinction,
itemListElement/itemListOrder/numberOfItems, dan “More specific Types” (terjemahan) “More spesifik jenis” list confirming subtypes. - BreadcrumbList — confirms, dari lainnya direction, itu BreadcrumbList adalah sebuah ItemList.
- ListItem — entry jenis itu carries
position,url, danitem.
Quotes dari source
pada—record statements dari Google dan schema.org. Where sebuah halaman exposes text, tautan adalah sebuah deep tautan itu jumps untuk quoted passage.
schema.org — what ItemList adalah
- “A list of items of any sort—for example, Top 10 Movies About Weathermen, or Top 100 Party Songs.” (terjemahan) “sebuah list dari items dari apa pun sort—misalnya, Top 10 Movies tentang Weathermen, atau Top 100 Party Songs.” — schema.org, ItemList. Jump untuk quote
- “Not to be confused with HTML lists, which are often used only for formatting.” (terjemahan) “Not untuk menjadi confused dengan HTML lists, which adalah sering digunakan hanya untuk formatting.” Jump untuk quote
- pada
itemListElement: “For itemListElement values, you can use simple strings (e.g. ‘Peter’, ‘Paul’, ‘Mary’), existing entities, or use ListItem.” (terjemahan) “untuk itemListElement nilai, Anda dapat gunakan sederhana strings (e.g. ‘Peter’, ‘Paul’, ‘Mary’), existing entities, atau gunakan ListItem.” Jump untuk quote
schema.org — BreadcrumbList adalah sebuah ItemList
- “A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.” (terjemahan) “sebuah BreadcrumbList adalah sebuah ItemList consisting dari sebuah chain dari ditautkan halaman web, typically described menggunakan setidaknya mereka URL dan mereka name, dan typically ending dengan saat ini halaman.” — schema.org, BreadcrumbList. Jump untuk quote
Google — yang sama-jenis aturan
- “All items in the list must be of the same type. For example, if a list is about recipes, only include Recipe items. Don’t mix different types.” (terjemahan) “semua items di list harus menjadi dari yang sama jenis. misalnya, jika sebuah list adalah tentang recipes, hanya sertakan Recipe items. Don’t mix berbeda jenis.” — Google Search Central, Carousel documentation. Jump untuk quote
Gary Illyes, Google (Search Central Live APAC 2025, via mesin pencari Journal’s write-up)
- Excessive atau redundant schema “only adds page bloat and has no additional ranking benefits” (terjemahan) “hanya menambahkan halaman bloat dan memiliki no additional peringkat benefits” — schema helps entity understanding dan machine fitur, tetapi adalah not bagian dari peringkat process. Read coverage
John Mueller, Google (Reddit, reported Jan 2026 oleh mesin pencari Roundtable — explicitly framed sebagai personal opinion, “not official guidance” (terjemahan) “not official guidance”)
- pada where schema genuinely helps: “Pricing, shipping, availability for shopping is basically impossible to read in high fidelity & accurately from a text page, for example.” (terjemahan) “Pricing, shipping, availability untuk shopping adalah basically impossible untuk read di tinggi fidelity & accurately dari sebuah text halaman, misalnya.” Read coverage
ItemList — cheat sheet
** properties**
| Property | What ini melakukan | Notes |
|---|---|---|
itemListElement | array dari entries | biasanya ListItem; dapat menjadi strings atau entities |
position | 1-based peringkat dari setiap entry | pada setiap ListItem |
url | detail-halaman URL untuk sebuah ListItem | Summary-halaman pattern |
item | Nested full markup untuk sebuah entry | semua-di-one pattern |
itemListOrder | Ascending / Descending / Unordered | sebuah hint, not enforced |
numberOfItems | Total count dari list | penting untuk paginated lists |
Classic Carousel vs. Carousels (Beta)
| Classic Carousel | Carousels (Beta) | |
|---|---|---|
| didukung jenis | Course list, Movie, Recipe, Restaurant | LocalBusiness (+ subtypes), Product, Event |
| Availability | Global | EEA, Turkey, South Africa hanya |
| Minimum items | 2+ ListItems | 3+ entities |
| Mixing jenis | Not allowed — sama jenis hanya | Allowed jika scenario panggilan untuk ini |
| Status | Stable | Beta — actively evolving |
** aturan itu break validation**
- Fewer daripada minimum items (2 classic / 3 beta).
- Mixed item jenis pada classic carousel — semua items harus menjadi yang sama jenis there ( beta allows mixing).
- Markup itu doesn’t match terlihat pada-halaman konten.
- Item URLs off Anda own domain (host carousels adalah sama-situs).
- Missing diperlukan properties pada companion jenis.
Fast facts
- ItemList alone adalah not sebuah rich hasil — Anda perlu sebuah didukung companion jenis untuk sebuah carousel.
- BreadcrumbList adalah sebuah subtype dari ItemList (dengan HowToSection, HowToStep, OfferCatalog).
- Not sebuah peringkat factor — nilai adalah eligibility + machine understanding.
- JSON-LD adalah Google’s recommended format.
- ItemList vs. CollectionPage: ordered list dari items vs. sebuah themed-collection halaman jenis.
melakukan I perlu ItemList — dan akan ini get me sebuah carousel?
berfungsi down pertanyaan; setiap jawaban poin Anda untuk right move.
1. adalah Anda halaman genuinely sebuah list dari discrete, diperingkatkan/ordered items?
- No → ItemList isn’t right jenis. jika halaman adalah sebuah themed collection, lihat
CollectionPageinstead. jika ini adalah sebuah breadcrumb trail, itu’sBreadcrumbList(sebuah subtype dari ItemList, tetapi dengan -nya own diperlukan shape). - Yes → continue.
2. adalah itu items one dari carousel-didukung jenis?
- Course list / Movie / Recipe / Restaurant → Anda’re eligible untuk classic Carousel (global). Continue untuk 3.
- LocalBusiness / Product / Event → Anda dapat hanya get sebuah carousel via Carousels (Beta) program, which adalah limited untuk EEA, Turkey, dan South Africa dan perlu 3+ entities. Elsewhere, Anda ItemList masih helps machine understanding tetapi won’t produce sebuah carousel.
- Anything else (blog posts, generic “Top 10” (terjemahan) “Top 10”) → plain ItemList adalah fine untuk structure dan understanding, tetapi ini akan not produce sebuah carousel rich hasil. Don’t expect one.
3. melakukan Anda memiliki separate detail halaman untuk setiap item?
- Yes → gunakan summary-halaman pattern: setiap
ListItemperlu hanya@type,position, danurl; put full companion-jenis markup pada setiap detail halaman. - No, everything’s pada one halaman → gunakan semua-di-one pattern: setiap
ListItemnests fullitemmarkup.
4. akhir eligibility memeriksa sebelum Anda expect sebuah carousel:
- 2+ items (3+ untuk beta)? · semua yang sama jenis (classic hanya — beta allows mixing)? · Markup matches terlihat konten? · Item URLs pada Anda own domain? · diperlukan companion-jenis properties present? · halaman not blocked oleh robots.txt/noindex?
- semua yes → Anda’re eligible. Remember Google masih decides whether untuk actually render ini — rich hasil adalah tidak pernah guaranteed.
Reality periksa: none dari ini lifts rankings. upside adalah sebuah mungkin carousel (better click-melalui) dan cleaner machine understanding — not sebuah higher position.
umum ItemList/carousel masalah dan cara fix them
Symptom-cause-fix lookups untuk situations itu actually stop sebuah carousel dari appearing, atau itu break BreadcrumbList side dari yang sama mechanism.
markup validates clean, tetapi no carousel ever appears
mungkin cause: ItemList oleh itself adalah not sebuah rich hasil — sebuah carousel hanya fires when ItemList adalah paired dengan sebuah didukung companion jenis (Course list, Movie, Recipe, Restaurant untuk classic carousel; LocalBusiness/Product/Event untuk geo-gated beta). jika halaman’s items adalah sebuah jenis outside itu lists (sebuah generic “Top 10 blog posts,” (terjemahan) “Top 10 blog posts,” misalnya), ItemList adalah doing -nya job untuk machine understanding tetapi adalah tidak pernah going untuk produce sebuah carousel. Fix: confirm companion jenis adalah one dari didukung ones untuk program Anda’re targeting; jika ini isn’t, don’t expect sebuah carousel — remember itu bahkan fully eligible markup hanya membuat Anda eligible, tidak pernah guaranteed, since Google masih decides whether untuk render ini.
list validates tetapi Google flags sebuah sama-jenis atau count error
mungkin cause: two sebagian besar umum structural failures — mixing item jenis pada
classic carousel (“All items in the list must be of the same type… Don’t mix
different types” (terjemahan) “semua items di list harus menjadi dari yang sama jenis… Don’t mix
berbeda jenis”) atau having fewer daripada minimum (2+ untuk classic carousel, 3+
untuk beta). jika Anda’re targeting beta instead, mixed jenis aren’t Anda masalah —
Google’s beta docs explicitly allow mixing entity jenis when scenario panggilan untuk ini.
Fix: untuk classic carousel, periksa setiap ListItem di itemListElement adalah
sama schema.org jenis; untuk beta, skip itu periksa dan confirm entry count
terhadap right minimum untuk program Anda’re pairing dengan instead.
carousel doesn’t render bahkan though item count dan jenis adalah correct
mungkin cause: terlihat-konten parity — text terlihat untuk pengguna harus menjadi similar untuk informasi di data terstruktur, dan item URLs seharusnya menjadi pada Anda own domain untuk sebuah host carousel. sebuah list itu marks up items not genuinely represented pada terlihat halaman, atau itu poin di off-domain URLs, fails ini umum structured-data policy bahkan when ItemList shape itself adalah technically correct. Fix: periksa setiap marked-up item adalah genuinely terlihat pada halaman (atau, di summary-halaman pattern, itu setiap detail halaman carries full companion-jenis markup) dan itu URLs resolve pada Anda own domain, lalu re-validate.
Breadcrumbs (atau lainnya ItemList subtype) fail yang sama cara
mungkin cause: because BreadcrumbList adalah formally sebuah subtype dari ItemList sharing
yang sama itemListElement/position mechanics, yang sama structural mistakes — too
few items, mismatched terlihat konten — break breadcrumb eligibility too. Fix:
apply yang sama memeriksa (minimum items, terlihat-konten match) untuk BreadcrumbList
markup sebagai Anda akan untuk sebuah carousel ItemList; jika Anda’ve debugged one, Anda sudah know
cara debug lainnya.
Worked contoh: two ItemList patterns
artikel above describes summary-halaman dan semua-di-one patterns di prose hanya — here’s what setiap actually looks like sebagai JSON-LD, plus how BreadcrumbList reuses exact sama shape.
Pattern 1 — summary halaman + separate detail halaman
setiap ListItem carries hanya @type, position, dan url; full Recipe/Movie/etc.
markup lives pada ditautkan detail halaman, not here.
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"url": "https://example.com/recipes/lemon-bars"
},
{
"@type": "ListItem",
"position": 2,
"url": "https://example.com/recipes/banana-bread"
}
]
}positionadalah 1-based, not 0-based.urladalah canonical URL dari itu item’s own detail halaman —Recipeobject itself adalah marked up di atas there, not nested here.- ini shape perlu 2+ entries untuk classic carousel (3+ untuk beta), dan setiap entry harus menjadi yang sama companion jenis pada far end.
Pattern 2 — semua-di-one halaman (no separate detail halaman)
Everything lives pada one halaman, so setiap ListItem nests full item object instead
dari hanya sebuah url.
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Recipe",
"name": "Lemon Bars",
"url": "https://example.com/recipes#lemon-bars"
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "Recipe",
"name": "Banana Bread",
"url": "https://example.com/recipes#banana-bread"
}
}
]
}- gunakan ini when there’s no dedicated detail halaman per item — whole companion-jenis
object (
Recipehere) nests di bawahitem. - Both items adalah
Recipe— mixing di sebuahProductatauMoviehere akan break sama-jenis aturan dan disqualify whole list dari carousel eligibility.
How BreadcrumbList reuses yang sama mechanism
BreadcrumbList adalah formally sebuah subtype dari ItemList — sama itemListElement/position
shape, hanya sebuah berbeda outer @type dan semantic purpose:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Recipes",
"item": "https://example.com/recipes/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Lemon Bars"
}
]
}- Google memerlukan setidaknya two
ListItems untuk sebuah breadcrumb trail — yang sama “2+ items” (terjemahan) “2+ items” mechanic sebagai classic carousel, hanya applied untuk halaman hierarchy instead dari konten items. - akhir crumb ( saat ini halaman) typically omits
item, since ini memiliki no further tautan target.
alat untuk memeriksa ItemList dan carousel eligibility
- Rich-hasil Eligibility Checker — paste Anda JSON-LD, sebuah HTML halaman, atau fetch sebuah live URL dan see, per jenis, which dari Google’s rich hasil ini qualifies untuk, including Breadcrumb fitur ini artikel establishes sebagai sebuah subtype dari ItemList — ini flags exact missing diperlukan field alih-alih hanya sebuah generic pass/fail, which adalah fastest cara untuk see whether sebuah BreadcrumbList (atau sebuah carousel companion jenis) adalah actually eligible.
- Schema Markup Validator — paste atau fetch Anda
JSON-LD dan run ini melalui severity-tiered structured-data validation: schema.org
vocabulary memeriksa, Google’s rich-hasil requirements, dan cross-block
@idgraph memeriksa, dengan sebuah corrected copy-pasteable JSON-LD block back. berguna untuk catching sama-jenis mismatches dan missing-property errors itu adalah paling umum cause dari ItemList/carousel validation failures. - Google’s Rich hasil Test — Google’s own eligibility checker; sebuah baik kedua opinion once two alat above come back clean, since ini reflects Google’s live parsing alih-alih sebuah ketiga-party interpretation dari spec.
Confirming sebuah ItemList/carousel perubahan actually took effect
memeriksa below prove sebuah spesifik ItemList atau BreadcrumbList perubahan berfungsi, di order untuk run them, dengan signal itu berarti “undo this.” (terjemahan) “undo ini.”
Confirm JSON-LD parses dan hits right eligibility bar
Test untuk run: paste updated JSON-LD ke
Rich-hasil Eligibility Checker atau
Schema Markup Validator. Expected hasil:
companion jenis (Recipe, Movie, Course list, Restaurant, atau beta’s
LocalBusiness/Product/Event) menampilkan sebagai eligible, dengan no missing-diperlukan-property
errors dan no sama-jenis mismatches flagged. Failure interpretation: sebuah flagged
missing property berarti companion jenis’s own diperlukan fields aren’t present yet;
sebuah sama-jenis warning berarti itemListElement array mixes jenis, which
disqualifies whole list. Monitoring window: immediate — ini adalah sebuah
poin-di-time parse periksa, re-run right setelah apa pun markup edit. Rollback trigger:
jika checker reports baru eligibility errors itu weren’t there sebelum perubahan,
revert untuk last known-passing JSON-LD while Anda investigate.
Confirm item dan minimum-count aturan hold
Test untuk run: count ListItem entries di itemListElement dan periksa setiap
one’s @type (pada nested item, atau pada ditautkan detail halaman untuk
summary-halaman pattern) terhadap yang sama-jenis aturan. Expected hasil: 2 atau more
entries untuk classic carousel (3 atau more untuk beta), dan setiap entry
resolving untuk identical companion jenis. Failure interpretation: fewer entries
daripada minimum, atau sebuah mixed-jenis list, berarti ItemList adalah structurally valid
JSON-LD tetapi masih won’t qualify untuk sebuah carousel. Monitoring window: immediate —
ini adalah sebuah static structural periksa terhadap saat ini markup. Rollback trigger:
jika sebuah konten perubahan drops list below minimum count, treat itu sebagai sebuah
regression dan restore dihapus items atau pull carousel-targeting markup until
count adalah back up.
Confirm Google actually renders fitur (not hanya eligibility)
Test untuk run: run live halaman melalui Google’s Rich hasil Test, lalu watch Search Console’s Enhancements report untuk relevant carousel atau breadcrumb fitur di atas following weeks. Expected hasil: Rich hasil Test confirms fitur adalah detected dengan no errors, dan Enhancements report menampilkan valid items dengan no baru warnings. Failure interpretation: eligibility passing di sebuah ketiga-party alat tetapi Google’s own test atau Search Console showing errors biasanya berarti sebuah policy issue (terlihat-konten mismatch, blocked halaman) alih-alih sebuah markup syntax masalah. Monitoring window: sebuah carousel’s actual appearance di search hasil adalah tidak pernah guaranteed bahkan when eligible, so treat 2–4 weeks dari Search Console data sebagai poin where Anda dapat judge whether fitur adalah menjadi picked up di semua. Rollback trigger: jika Search Console starts reporting sebuah rising error count untuk ini item jenis setelah perubahan, revert markup untuk last versi itu showed zero errors.
Resources worth Anda time
My related writing
- data terstruktur: What ini adalah dan cara gunakan ini — my Ahrefs guide untuk schema jenis, implementation metode, validation alat, dan
sameAsentity angle; broader context ItemList sits inside. - Beginner’s Guide untuk SEO teknis — where data terstruktur (dan lists like ini) fit di bigger picture.
My speaking
- How Search berfungsi (SlideShare) — my walkthrough dari crawling, rendering, pengindeksan, dan peringkat, untuk context dari where markup like ItemList melakukan dan doesn’t move needle. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.” (terjemahan) “ini adalah my understanding dari sistem… not going untuk menjadi 100% complete atau accurate.”)
Official
- Google — Carousel (ItemList) data terstruktur dan Carousels (Beta) — two carousel programs, mereka didukung jenis, dan requirements.
- Google — data terstruktur umum Guidelines — policies setiap rich-hasil jenis (ItemList disertakan) memiliki untuk satisfy.
- schema.org — ItemList dan BreadcrumbList — jenis definitions, dan subtype relationship confirmed dari both directions.
dari sekitar industry
- Google Search Central APAC 2025: Everything dari Day 2 (mesin pencari Journal) — Gary Illyes pada schema, peringkat, dan “page bloat.” (terjemahan) “halaman bloat.”
- John Mueller (Personally) pada jika Schema Helps dengan LLMs & Google (mesin pencari Roundtable, Jan 2026) — Mueller’s personal, non-official take pada where data terstruktur genuinely helps.
- What adalah ItemList Schema? sebuah Complete Guide (Greadme) — sebuah solid ketiga-party walkthrough dari carousel eligibility conditions dan two implementation patterns.
- ItemList Schema (peringkat Math KB) — plugin-oriented reference itu separates “ItemList” (terjemahan) “ItemList” dari “Carousel” (terjemahan) “Carousel” dan covers both gunakan-case patterns.
Test yourself: ItemList Schema
Five quick pertanyaan pada what ItemList adalah — dan isn’t. Pick sebuah jawaban untuk setiap, lalu periksa.
Log perubahan
Diperbarui 18 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.