How does an all-in-one carousel identify items on the same page?

The Citead team, updated

In short. An all-in-one carousel uses a distinct fragment URL and matching HTML ID for each item on its list page.

Definition: An all-in-one carousel keeps the complete information for every item on one list page. Each ListItem points to that page with a distinct URL fragment, such as #a-star-is-born, so the item has its own address within the document.

Key facts

  • Google's carousel documentation describes an all-in-one list as containing the full text of each item on one page.
  • In Google's example, each ListItem has a position and an item object whose url uses a fragment on the list page.
  • The HTML Standard requires an id value on an HTML element to be unique in that element's tree.
  • The same standard describes an element's unique identifier as a way to link to a specific part of a document with a fragment.
  • Schema.org's ItemList documentation says that ordered lists use ListItem when extra context, including a position, is needed.

Google describes two page arrangements for carousel structured data. A summary page contains short descriptions and links to separate detail pages. A single, all-in-one-page list contains all carousel information, including the full text of every item, on one page. Google's example uses a page titled “The Best Movies from the Oscars” and keeps the movie information in the ItemList on that page.

The distinction changes the value placed in each list item. In a summary page, Google's example uses a ListItem with a url pointing to a separate page with full details. In the all-in-one example, the url is inside the item object and keeps the same page path while adding a fragment. The page therefore supplies both the list context and the item details.

How does the anchor identify one item?

A URL fragment is the part after the number sign. RFC 3986 defines it as information that indirectly identifies a secondary resource by reference to a primary resource. That secondary resource can be a portion or subset of the primary resource. For an all-in-one list, the primary resource is the list page and the secondary target is the section containing one item's details.

The HTML Standard connects the fragment to the page markup: an element can be explicitly referenced by giving it an id, then using that value as the fragment in a hyperlink's href. The id value must be unique in the document tree. Use a different value for each item, and make the url in the matching ListItem end with that value.

{
  "@type": "ListItem",
  "position": 1,
  "item": {
    "@type": "Movie",
    "url": "https://example.com/2024-best-picture-noms#a-star-is-born",
    "name": "A Star Is Born"
  }
}

Google's example repeats the same page path with #bohemian-rhapsody and #black-panther for the other movie items. The fragments make the three item URLs distinct while the page path remains shared.

What should the structured data and HTML agree on?

The ItemList is the outer list. Schema.org describes itemListElement as accepting ListItem, and says that ListItem supplies additional context for an ordered list. Its documentation also says that the order of elements in markup alone is not sufficient and that a position property is used when list order matters.

For the all-in-one pattern, give each ListItem a position and an item object for the relevant content type. Put the item's same-page URL inside that object. In the HTML, give the full item section an id matching the fragment after the number sign. The item's name, details and URL then describe the same target in the structured data and visible document.

How can you check the implementation?

Google recommends validating the structured data with the Rich Results Test. Its carousel guidance also says to use URL Inspection to test how Google sees the page, and to make sure the page is accessible and is not blocked by robots.txt, noindex or login requirements. Check that every fragment in the JSON-LD has one matching HTML id and that each id value is unique in the page tree.

FAQ

Can every item use the same page URL?

The page path can be shared, but Google's all-in-one example gives each item a distinct fragment URL. The matching HTML id values also need to be unique in the document tree.

Does the fragment replace the ListItem position?

No. Schema.org uses position to express order in an ordered list. The fragment identifies the item location within the page, while the position identifies its place in the list.

No. Google defines the all-in-one arrangement as a page containing the full text of each item and says that this page does not link out to other detail pages. The item's URL can point to a fragment on that same page.

Sources

  1. Google Search Central, “Carousel (ItemList) structured data”, 8 September 2026
  2. WHATWG, “HTML Standard”, 16 October 2026
  3. IETF, “Uniform Resource Identifier (URI): Generic Syntax”, January 2005
  4. Schema.org, “ItemList”, August 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark