Structured Data Carousels (Beta): A Third‑Party Guide

Structured Data Carousels (Beta): A Third‑Party Guide

Google has introduced a new carousel rich result (beta) that displays content as a horizontally scrollable list directly in search results. Often called a “host carousel,” each tile can showcase details such as price, rating, and images for entities on your site. This guide explains eligibility, implementation steps, examples, and troubleshooting—written from an independent perspective to help site owners adopt this feature.


Eligibility & Feature Availability

To qualify for the beta carousel rich result, your summary (category) page must include:

  1. ItemList structured data
  2. At least one supported item type under itemListElement.item:
    • LocalBusiness (e.g., Restaurant, Hotel, VacationRental)
    • Product
    • Event

Note: This beta is currently available only in the European Economic Area (EEA), for desktop and mobile, on travel, local, and shopping queries. Requirements may evolve as the feature matures.

If your business serves EEA users and you’d like to join the beta, choose the relevant interest form:

  • Travel & local experiences: ground transport, hotels, rentals, things to do
  • Flights: flight queries interest form
  • Shopping: Comparison Shopping Services (CSS) program

Adding the Required Structured Data

Structured data helps Google understand and render your content as rich results. Follow these steps:

  1. Choose a summary page—for example, a “Top hotels in Paris” category page that links out to individual detail pages.
  2. Insert ItemList markup on that summary page; you do not need to mark up the detail pages.
  3. Include required and recommended properties for your chosen item type(s).
  4. Validate with the Rich Results Test.
  5. Deploy to your live site and use the URL Inspection tool to request recrawling.
  6. Submit or update your sitemap via the Search Console Sitemap API to inform Google of changes.

If you’re using a CMS, look for plugins or extensions that automate ItemList markup. If you generate markup dynamically, refer to Google’s guidelines for JavaScript–generated structured data.


Guidelines for Carousel Markup

To remain eligible for carousel rich results (beta):

  • Follow Search Essentials and general structured data guidelines.
  • You may use generic types, but recommended properties only work with their specific types (e.g., amenityFeature requires LodgingBusiness).
  • Your site must have a summary page listing at least three entities, each linking to its own detail page.
  • Mark up all items visible on each paginated or infinite‐scroll segment.
  • Unsupported additional fields are allowed but may not appear in the carousel.

Example Markup Structure

Below is a high‑level JSON‑LD example illustrating how Google orders tiles using ItemList:

htmlCopyEdit<html>
  <head>
    <title>Top 5 Restaurants in Italy</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "ItemList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "item": {
            "@type": "Restaurant",
            "name": "Trattoria Luigi",
            "image": [
              "https://kumarharshit.in/photos/1x1/photo.jpg",
              "https://kumarharshit.in/photos/4x3/photo.jpg",
              "https://kumarharshit.in/photos/16x9/photo.jpg"
            ],
            "priceRange": "$$$",
            "servesCuisine": "Italian",
            "aggregateRating": {
              "@type": "AggregateRating",
              "ratingValue": 4.5,
              "reviewCount": 250
            },
            "url": "https://kumarharshit.in/trattoria-luigi"
          }
        },
        {
          "@type": "ListItem",
          "position": 2,
          "item": {
            "@type": "Restaurant",
            "name": "La Pergola",
            "image": [
              "https://kumarharshit.in/photos/1x1/photo.jpg",
              "https://kumarharshit.in/photos/4x3/photo.jpg",
              "https://kumarharshit.in/photos/16x9/photo.jpg"
            ],
            "priceRange": "$$$",
            "servesCuisine": "Italian",
            "aggregateRating": {
              "@type": "AggregateRating",
              "ratingValue": 4.9,
              "reviewCount": 1150
            },
            "url": "https://kumarharshit.in/la-pergola"
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "item": {
            "@type": "Restaurant",
            "name": "Pasta e Basta",
            "image": [
              "https://kumarharshit.in/photos/1x1/photo.jpg",
              "https://kumarharshit.in/photos/4x3/photo.jpg",
              "https://kumarharshit.in/photos/16x9/photo.jpg"
            ],
            "priceRange": "$$$",
            "servesCuisine": "Italian",
            "aggregateRating": {
              "@type": "AggregateRating",
              "ratingValue": 4.2,
              "reviewCount": 690
            },
            "url": "https://kumarharshit.in/pasta-e-basta"
          }
        }
      ]
    }
    </script>
  </head>
  <body></body>
</html>

Structured Data Type Definitions

ItemList (Container)

  • itemListElement (List of ListItem): Minimum of three entries.
  • ListItem.position (Integer): 1‑based position in the carousel.
  • ListItem.item: A LocalBusiness, Product, or Event subtype.

Common Properties for Each Carousel Item

  • Required:
    • image (one or more URLs or ImageObject; high‑resolution 16×9, 4×3, 1×1)
    • name (Text)
    • url (Detail page URL on the same domain)
  • Recommended (Aggregate Rating):
    • aggregateRating.ratingValue
    • aggregateRating.reviewCount
    • Optionally aggregateRating.bestRating, worstRating

LocalBusiness Subtypes

  • Recommended:
    • priceRange (Text, e.g., “$$$”)
    • servesCuisine (for Restaurants)
    • amenityFeature (for LodgingBusiness; LocationFeatureSpecification)

Product

  • Recommended:
    • offers (Offer or AggregateOffer with price/currency or lowPrice & highPrice)

Event

  • Recommended:
    • offers (Offer/AggregateOffer)
    • Use price: 0 for free events

Examples by Scenario

Lodging Carousel (Hotels & Rentals)

htmlCopyEdit<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Hotel",
        "name": "Four Seasons Hotel George V, Paris",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "internetType",
          "value": "Free"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 50
        },
        "url": "https://kumarharshit.in/four-seasons"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "VacationRental",
        "name": "Downtown Condo",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "instantBookable",
          "value": true
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.7,
          "reviewCount": 827
        },
        "url": "https://kumarharshit.in/downtown-condo"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Hotel",
        "name": "Ritz Paris",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "freeBreakfast",
          "value": true
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 1290
        },
        "url": "https://kumarharshit.in/ritz-paris"
      }
    }
  ]
}
</script>

Things To Do Carousel

htmlCopyEdit<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Event",
        "name": "Paris Seine River Dinner Cruise",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "offers": {
          "@type": "Offer",
          "price": 45.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.2,
          "reviewCount": 690
        },
        "url": "https://kumarharshit.in/seine-dinner-cruise"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "LocalBusiness",
        "name": "Notre-Dame Cathedral",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "priceRange": "$",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.8,
          "reviewCount": 4220
        },
        "url": "https://kumarharshit.in/notre-dame"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Event",
        "name": "Eiffel Tower Host Summit Tour",  
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "offers": {
          "@type": "Offer",
          "price": 59.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 652
        },
        "url": "https://kumarharshit.in/eiffel-tour"
      }
    }
  ]
}
</script>

Product Carousel

htmlCopyEdit<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Product",
        "name": "Puffy Coat Series by Goat Coat",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "offers": {
          "@type": "AggregateOffer",
          "lowPrice": 45.00,
          "highPrice": 60.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 50
        },
        "url": "https://kumarharshit.in/puffy-coats"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "Product",
        "name": "Wool Coat Series by Best Coats Around",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "offers": {
          "@type": "AggregateOffer",
          "lowPrice": 189.00,
          "highPrice": 200.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.7,
          "reviewCount": 827
        },
        "url": "https://kumarharshit.in/wool-coats"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Product",
        "name": "Antarctic Coat by Cold Coats",
        "image": [
          "https://kumarharshit.in/photos/1x1/photo.jpg",
          "https://kumarharshit.in/photos/4x3/photo.jpg",
          "https://kumarharshit.in/photos/16x9/photo.jpg"
        ],
        "offers": {
          "@type": "Offer",
          "price": 45.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 1290
        },
        "url": "https://kumarharshit.in/antarctic-coat"
      }
    }
  ]
}
</script>

Troubleshooting & Resources

If you encounter issues:

  • CMS users: Share Search Console errors with your developer or plugin support.
  • General issues: A listing might not appear due to guideline non‑compliance—see the General Structured Data Guidelines.
  • Syntax errors: Check the Unparsable structured data report in Search Console and validate your markup with the Rich Results Test.
  • Manual actions: If you’ve received a structured data manual action, use the Manual Actions report to resolve it.
  • Re‐crawling delays: Allow several days after deployment for Google to re‐fetch and index your pages.

For more on structured data and Google Search Central best practices, visit the Google Search Central Help Center.

Leave a Reply

Your email address will not be published. Required fields are marked *

*