Free Carousel Schema Generator

Fill in the facts visible on your page, copy the Carousel JSON-LD, and validate it before you publish. The guide, examples, and FAQs are below the tool. Generate this schema with AI

Type to filter 121 supported schema types.

Schema workflow

Use only facts a visitor can verify on the page, then validate the JSON-LD before publishing.

Carousel Item 1

Required

  • Visible Carousel content
  • Canonical page URL
  • Clear page owner/publisher
  • Fields that match the visible page

Recommended

  • A representative image when the schema supports it
  • SameAs or related links when visible
  • Validation before publishing

Avoid

  • Adding properties that are not visible
  • Copying example URLs into production
  • Skipping Google and Schema.org validation
Next step

Validate, repair, and publish clean structured data.

Check the generated JSON-LD against the visible page, then run both SwiftSchema and external validators before publishing.

Carousel (ItemList) Schema Generator — Structure Your Collections

Generate valid ItemList JSON‑LD with ordered ListItems. Improve clarity for collections (articles, recipes, products) while understanding that carousel display is not guaranteed.

Try the ItemList Generator

Why many collection pages underperform

  • Collections are not represented as ordered lists in markup.
  • List items link to non‑crawlable pages or use relative URLs.
  • Target pages lack the required entity‑specific JSON‑LD.
  • Expectations that ItemList forces a carousel layout in results.

How SwiftSchema helps

The Carousel (ItemList) generator creates a proper ItemList with `itemListElement` entries using 1‑based positions and absolute URLs.

It complements the item pages, where you should include the appropriate schema (Product, Article, Recipe, etc.).

How it works

  1. 01

    Choose ItemList in the generator below.

  2. 02

    Enter a list name and optional numberOfItems.

  3. 03

    Add each item with a label and absolute URL in order (positions start at 1).

  4. 04

    Ensure each target page includes appropriate entity‑specific schema.

  5. 05

    Copy JSON or Script, paste into the collection page, and validate in the Rich Results Test.

Ready to build the markup?

Keep in sync with your links. Validate.

Generate ItemList JSON‑LD

What is ItemList structured data?

ItemList is the Schema.org type behind most navigational collections—think “Top 5 articles,” “Recipes in this guide,” “Products in this category.” Search engines read ItemLists to understand how list pages relate to their children. When Google chooses to show a carousel in search, it typically relies on consistent ItemList markup pointing to crawlable pages that already have their own entity schema. Marking up ItemLists doesn’t guarantee a carousel, but it does make your collections machine-readable and easier to monitor.

Essential elements for a valid ItemList

  1. @type: ItemList — identifies the wrapper object.
  2. itemListElement — array of ListItems representing each entry.
  3. ListItem fields:
    • @type: ListItem
    • position — 1-based integer reflecting the order you want search engines to use.
    • name — optional but recommended label (match the visible link text).
    • url or item — absolute canonical URL of the target page.
  4. name — descriptive label for the list (“2025 Product Schema Guides”).
  5. numberOfItems — optional; helpful for long lists or paginated sets.
  6. itemListOrder — specify ItemListOrderAscending, ItemListOrderDescending, or ItemListUnordered when order matters.

Preparing your content

  • Ensure the collection page clearly explains what the list covers (topic, timeframe, selection criteria).
  • Provide unique, human-readable link text that matches the name in each ListItem.
  • Confirm each linked page contains the correct entity schema (Article, Recipe, Product, FAQ, etc.). The ItemList alone isn’t enough.
  • Use canonical URLs for each item. Avoid linking to search facets or filtered URLs unless they’re indexable.
  • Decide whether the list is curated (fixed order) or dynamic (auto-generated). Curated lists should have stable positions; dynamic lists might need automation.

Implementation checklist

  1. Source data from your CMS or component—create a structured array with label, URL, and order.
  2. Normalize URLs to absolute form (https://domain/...).
  3. Assign positions starting at 1 and incrementing sequentially. Do not skip numbers, even when paginating.
  4. Generate JSON‑LD using the form below; include name, optional description, itemListOrder, and numberOfItems.
  5. Embed the JSON‑LD on the collection page. If your collection spans multiple pages, include an ItemList per page (with accurate positions) and provide pagination markup (rel=prev/next).
  6. Validate via Rich Results Test or Schema Markup Validator.
  7. Monitor Search Console for manual actions and log when Google surfaces carousels for your queries.

Linking ItemList to detail schema

  • Every URL in the ItemList should point to a page with entity-specific JSON‑LD (Product, Recipe, Article, Video, etc.).
  • Cross-reference using mainEntityOfPage on the detail page. For example, an Article detail page can mention the ItemList via isPartOf.
  • If list items represent fragments within a page (e.g., a recipe index), consider using ListItem with item: {"@id": "#recipe-1"} referencing anchors, but only if those anchors correspond to structured data entries.
  • For eCommerce, pair ItemList with BreadcrumbList to help search engines trace category depth.

Large-scale or automated lists

  • Programmatic SEO: when generating thousands of list pages, create a shared utility that produces both the UI component and the ItemList JSON‑LD from the same data to avoid drift.
  • Pagination: maintain consistent numbering across pages (page 2 should continue positions 11,12,...). Include numberOfItems to indicate total size.
  • Dynamic ranking: if you reorder items frequently (e.g., trending posts), consider caching the ItemList and invalidating it when order changes to keep schema fresh.
  • Localization: translate list names and item labels per locale; ensure URLs point to localized pages when available.

Analytics and QA tips

  • Track clicks from SERPs that include list/collection queries (e.g., “best product schema guides”). If you notice Google showing carousels, note which queries triggered them.
  • Use crawlers (Screaming Frog, Sitebulb) to extract ItemList data and compare against your sitemap or CMS exports.
  • Add unit tests or integration tests in your codebase that confirm itemListElement.length matches the number of visible list items.
  • Monitor Search Console coverage for errors like “Invalid URL in field ‘itemListElement’” or manual actions for spammy lists.

Maintenance practices

  • Whenever you add/remove list items, update both the visible content and the JSON‑LD simultaneously.
  • Keep track of expired or unpublished items. Remove them from the list to avoid 404s in schema.
  • If you migrate URLs, update the ItemList entries and ensure 301 redirects are in place. Schema should reference the final canonical URL, not rely on redirects.
  • Document list ownership (e.g., blog team vs product team) so someone is responsible for keeping the schema accurate.

Common Errors & Fixes

  • Missing positions: always provide 1-based positions without gaps.
  • Broken links: ensure each URL resolves to a live, crawlable page with relevant schema.
  • Relative URLs: convert to absolute canonical URLs to avoid ambiguity.
  • Expectation mismatch: remember ItemList does not force a carousel; focus on relevance and quality.
  • Duplicate entries: avoid listing the same URL multiple times unless there’s a meaningful reason (different anchors/sections).

Required properties

  • @type=ItemList
  • itemListElement[].@type=ListItem
  • itemListElement[].position
  • itemListElement[].url | itemListElement[].item

Recommended properties

  • name
  • numberOfItems
ItemList for Articles
Validate
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "name": "Structured Data Guides",
  "numberOfItems": 3,
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "url": "https://example.com/guides/product"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "url": "https://example.com/guides/event"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "url": "https://example.com/guides/recipe"
    }
  ]
}

FAQs

Is there a Carousel schema type?Show

Carousel is a search feature, not a Schema.org type. Use `ItemList` with ordered `ListItem` entries that link to your items.

What items can I include?Show

Link to pages for items like articles, recipes, or products. Each list item should reference a crawlable URL.

Does ItemList guarantee a carousel in results?Show

No. Google decides when to show carousels. Markup improves machine understanding but does not guarantee display.

Related types

Browse all schema types

References