Top-10 фильмов года. Список бестселлеров. Каталог товаров по категории. Лента новостей. Все эти форматы контента — списки. И у Google для них есть отдельный формат Rich Result — Carousel: горизонтальная прокручиваемая лента карточек прямо в поисковой выдаче. Собирается такой Carousel из разметки ItemList. Официальные требования — Google Search Central: Carousel.
ItemList универсальна — она подходит для списков любых типов элементов: статей, товаров, курсов, событий, рецептов. Ключевой сдвиг: без ItemList отдельные схемы (Article, Product, Course) «живут сами по себе»; с ItemList они собираются в упорядоченный набор с явным смыслом «это подборка N штук».
Два способа использования ItemList
Google поддерживает два формата разметки списка — в зависимости от того, где живёт контент:
- Summary page + отдельные страницы — страница-подборка со ссылками, каждый элемент имеет свою страницу с полной разметкой. Разметка на summary-странице: ItemList → ListItem → URL. Google подтягивает детали каждого элемента с целевых страниц.
- All-in-one page — вся подборка на одной странице с полными данными по каждому элементу (например, топ-10 статей блога с картинкой, кратким описанием, ссылкой). Разметка ItemList → ListItem → вложенный тип (Article/Product) с полными свойствами.
Пример 1: summary page (список статей)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"url": "https://fruntend.com/posts/pochemu-pora-osvaivat-typescript"
},
{
"@type": "ListItem",
"position": 2,
"url": "https://fruntend.com/posts/svoystvo-contain-pomoshch-v-optimizatsii-brauzera"
},
{
"@type": "ListItem",
"position": 3,
"url": "https://fruntend.com/posts/background-blend-mode"
}
]
}
</script>
Минимальный формат. Google переходит по URL каждого ListItem и подтягивает разметку Article/Product/Course оттуда. Работает, если каждая целевая страница правильно размечена.
Пример 2: all-in-one (топ-10 фильмов)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Movie",
"name": "Крёстный отец",
"image": "https://example.com/movies/godfather.jpg",
"url": "https://example.com/movies/godfather",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "9.2",
"reviewCount": "1953"
}
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "Movie",
"name": "Побег из Шоушенка",
"image": "https://example.com/movies/shawshank.jpg",
"url": "https://example.com/movies/shawshank",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "9.3",
"reviewCount": "2437"
}
}
}
]
}
</script>
Формат all-in-one даёт больше контроля: полные данные по каждому элементу сразу, без походов Google на отдельные страницы. Подходит для топ-листов, где отдельных URL нет или они слишком узкие.
Обязательные свойства
- itemListElement — массив ListItem-объектов.
- Каждый ListItem:
- position — номер в списке (1, 2, 3…).
- Либо url (для summary-формата), либо item с вложенным типом (для all-in-one).
Рекомендуемые свойства
- name — название всего списка («Топ-10 фильмов 2026»).
- description — описание подборки.
- numberOfItems — количество элементов. Google может использовать для оптимизации отображения.
Ограничения Carousel Rich Results
Google Carousel Rich Result поддерживает не все типы. Поддерживаемые (по Google docs):
- Article (и подтипы)
- Course
- Movie
- Recipe
- Restaurant
Для других типов (Product, Book, Event) — ItemList работает, но не превращается в Carousel. Всё равно полезно для семантики.
Типовые ошибки
- Пропущенные позиции. position должны идти подряд: 1, 2, 3… Пропуск (например, 1, 2, 5) — ошибка.
- Смешивание форматов. Одни ListItem с url, другие с item в одном списке. Правильно — либо все с URL, либо все с вложенным типом.
- Слишком мало элементов. Carousel Rich Result требует минимум 3 элемента. Одноэлементный ItemList работает как разметка, но не даёт Rich Result.
- Разметка на listing-странице без ссылок. Если ListItem с url, но URL ведёт на несуществующую или неразмеченную страницу — Google выкинет весь ItemList из индекса.