Rich results: Article, Product, FAQ, Breadcrumb
Конкретные типы Schema.org, которые дают красивые расширенные сниппеты и больше места в выдаче.
Rich results (расширенные результаты) — сниппеты с дополнительными элементами: звёздами рейтинга, ценой, аккордеоном FAQ, хлебными крошками. Их генерирует поисковик на основе структурированных данных.
Article — для статей и блога
Размечает публикацию: заголовок, дату, автора, картинку. Помогает в новостных и обучающих сниппетах.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Core Web Vitals для разработчика",
"image": "https://codechick.io/img/cwv.png",
"datePublished": "2026-06-15",
"dateModified": "2026-06-20",
"author": { "@type": "Organization", "name": "CodeChick" }
}
Product — для товаров
Цена, наличие, рейтинг — то, что превращает обычный сниппет в карточку со звёздами и ценой:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Механическая клавиатура MX",
"offers": {
"@type": "Offer",
"price": "5990",
"priceCurrency": "RUB",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "128"
}
}
FAQPage — для вопросов-ответов
Если на странице есть блок «частые вопросы», разметка FAQPage может показать их прямо в выдаче аккордеоном:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Нужен ли canonical на каждой странице?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Да, self-canonical — хорошая практика против случайных дублей."
}
}]
}
BreadcrumbList — хлебные крошки
Заменяет в сниппете «голый» URL читаемой цепочкой Главная › Туториалы › SEO:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Туториалы",
"item": "https://codechick.io/tutorials" },
{ "@type": "ListItem", "position": 2, "name": "SEO",
"item": "https://codechick.io/tutorials/seo" }
]
}
Зачем это разработчику
Расширенный сниппет занимает больше места в выдаче и заметно повышает кликабельность: карточка со звёздами или раскрытым FAQ выделяется на фоне обычных синих ссылок. Для разработчика это означает конкретную работу — добавить корректный JSON-LD нужного типа и проследить, чтобы данные в нём один-в-один совпадали с тем, что видит пользователь на странице. Поисковик регулярно перепроверяет соответствие, и расхождение «в разметке цена 4990, на странице 5990» — это не мелочь, а повод снять rich result или наложить санкцию. Поэтому разметку почти всегда генерируют из тех же данных, что и видимый блок, а не пишут руками отдельно.
Как работает под капотом: проверка обязательных полей
У каждого типа есть обязательные поля; без них rich result не покажется. Учебный валидатор:
REQUIRED = {
"Article": ["headline", "datePublished"],
"Product": ["name", "offers"],
"FAQPage": ["mainEntity"],
}
def validate(obj):
t = obj.get("@type")
need = REQUIRED.get(t, [])
missing = [f for f in need if f not in obj]
return f"{t}: " + ("OK" if not missing else f"нет полей {missing}")
print(validate({"@type": "Article", "headline": "X", "datePublished": "2026-06-20"}))
print(validate({"@type": "Product", "name": "Клавиатура"}))
Вывод:
Article: OK Product: нет полей ['offers']
Частые ошибки
- FAQ-разметка без реального блока FAQ на странице — нарушение, может прилететь ручная санкция.
- Пропущены обязательные поля (
offersу Product,headlineу Article) — rich result не появится. - Цена/рейтинг в разметке отличаются от страницы — расхождение данных.
- Ожидание, что rich result появится мгновенно/всегда — поисковик решает сам, валидная разметка лишь даёт право на показ.
Итог
- Article, Product, FAQPage, BreadcrumbList — основные типы, дающие расширенные сниппеты.
- У каждого типа есть обязательные поля; без них rich result не покажется.
- Разметка должна соответствовать видимому контенту; показ rich result — право, а не гарантия.