Я называю звездочки в выдаче самым коротким путем к росту доверия до клика. AggregateRating — это структура из schema.org, которая описывает агрегированную оценку объекта: товара, услуги, места. По сути, это способ передать поисковику формулу “сколько оценок + какая средняя”, чтобы получить rich snippets рейтинг — визуальные звезды рядом с вашим сниппетом в поиске.
Типовые сценарии использования простые:
- товары в интернет-магазине (Product): карточки и страницы коллекций.
- Услуги (Service) и цифровые продукты (SoftwareApplication).
- LocalBusiness: страницы филиалов, меню, прайс-страницы. При этом Google ограничивает показ звезд для самих локальных сущностей: ниже разберу, как использовать это с выгодой.
- Контент из коллекций: подкатегории и плейлисты (если каждый элемент имеет свой объект с отзывами).
Как Google отображает рейтинг в выдаче

Google Rich Results придерживаются четких требований. Во-первых, тип сущности должен поддерживать рейтинг (Product, Recipe, SoftwareApplication, Book, Movie и ряд других). Во-вторых, данные должны быть достоверными: ratingValue, реальное среднее, reviewCount — реальное число отзывов, а сами отзывы доступны на странице или по клику. В-третьих, источник должен вызывать доверие: уникальные, проверяемые отзывы и прозрачная политика модерации.
Google показывает звезды чаще, когда:
- Тип страницы, Product или рецепт, есть понятный блок отзывов, ratingValue и reviewCount согласованы.
- Отзывы регулярно обновляются и не выглядят синтетическими (идут из crm, Prom.ua/Розетка, Google Business Profile, Trustpilot).
- Страница рендерится быстро, Googlebot видит JSON-LD без долгого ожидания.
AggregateRating:reviewCount,ratingValue

Ключевые поля schema.org AggregateRating:
- ratingValue, средняя оценка (десятичное число, например 4.6). Рекомендуется задавать точность до одного знака после запятой.
- reviewCount — количество оценок (целое число). Следует синхронизировать с реестром отзывов.
- bestRating: максимальное значение шкалы (часто 5). Если не указать, часть валидаторов предполагает 5.
- worstRating: минимальное значение шкалы (обычно 1).
- itemReviewed: ссылка на объект (Product, Service, LocalBusiness, SoftwareApplication и т. д.), к которому относится рейтинг.
- ratingValue — число в диапазоне [worstRating; bestRating].
- reviewCount — не меньше фактического количества доступных отзывов.
- Если на странице есть объекты Review, их количество и средняя должны соответствовать AggregateRating.
- В JSON-LD избегайте смешения типов и противоречий (например, разные ratingValue в двух блоках).
Пример AggregateRating в JSON-LD
Ниже — минимальный валидный пример для продукта с отзывами. Я использую JSON-LD формат за его устойчивость к изменениям верстки и поддержку Google.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Антисептический гель для рук, 250 мл",
"sku": "SKU-AG-250",
"brand": {
"@type": "Brand",
"name": "CleanCare"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "128",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Олена"
},
"datePublished": "2025-01-18",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5",
"worstRating": "1"
},
"reviewBody": "Удобный дозатор, запах нейтральный. Доставка Новой почтой пришла на следующий день."
}
]
}
Пример Product schema с AggregateRating
Продукт с AggregateRating уже разобран. Для LocalBusiness логика иная: Google не поощряет self-serving отзывы для организаций и локального бизнеса на их собственных сайтах. На практике это значит: рейтинг на самой странице филиала часто остается без звезд в выдаче. Поэтому я применяю стратегию разметки рейтингов на уровне услуг/предложений, а не организации.
Пример для страницы услуги локального бизнеса:
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "УЗИ диагностика",
"provider": {
"@type": "LocalBusiness",
"name": "Медицинский центр на Печерске"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "86",
"bestRating": "5",
"worstRating": "1"
}
}
JSON-LD, Microdata или RDFa для звёзд

Я рекомендую JSON-LD для AggregateRating по трем причинам:
- Простота внедрения и поддержки: не завязан на HTML-структуру, можно генерировать сервером, через headless CMS или Shopify/WordPress плагины.
- Поддержка Google: Rich Results Test стабильно считывает JSON-LD даже при динамическом рендеринге.
- Кеширование и CDN: независимый блок легко версионировать, кэшировать на уровне шаблона и CI/CD.
Как получить звёздочки в выдаче

Шаг 1. Источник оценок. Я начинаю с инвентаризации: где лежат отзывы, CRM, интернет-магазин, Prom.ua, Розетка, Google Business Profile, Trustpilot, собственные формы? Маркетинг согласует политику модерации и критерии качества данных, разработка настраивает антифрод-триггеры: верификация e-mail/телефона, rate-limits, базовая сигнатура кликов.
Шаг 2. Генерация JSON-LD. Мы проектируем схему для Product/Service/SoftwareApplication, нормализуем ratingValue и reviewCount, добавляем review объекты. Для крупных каталогов полезна автоматизация генерации AggregateRating через pipeline из БД и API маркетплейсов. Вставка: на уровне шаблонов страницы, с версионированием.
Шаг 3. Тестирование. Я прогоняю каждый шаблон через Rich Results Test и Schema Markup Validator, добиваюсь отсутствия критических ошибок. Предупреждения трактую по здравому смыслу: если поле опционально, мы добавим его в следующем релизе.
Шаг 4. Деплой и мониторинг. В CI/CD мы включаем unit-тесты на JSON-LD (снапшоты, регулярные выражения) и e2e-проверки, а также логирование ошибок микроразметки. После релиза отслеживаю появление звезд в SERP и корреляцию CTR/CR.
- Маркетинг: источники отзывов, политика модерации, юридический блок по персональным данным.
- Разработка: корректные типы, отсутствие дублей, валидаторы в CI, fallback при пустых данных.
- SEO: карта страниц с поддерживаемыми типами, мониторинг Google Search Console.
Внедрение при динамическом рендеринге
В проектах на React/Vue я предпочитаю server-side JSON-LD. В SSR-фреймворках (Next.js, Nuxt) мы вставляем разметку на сервере, чтобы Googlebot видел ее без ожидания рендеринга. При client-side рендеринге помогает pre-rendering или динамический рендеринг с выдачей пререндеренного снапшота для бота.
- Server-side JSON-LD во время SSR.
- Pre-rendering критичных страниц каталога.
- Dynamic rendering как временная мера при сложном UI.
Микроразметка: проверка и чек-листы

Я опираюсь на четыре инструмента: Rich Results Test, Schema Markup Validator, устаревший Structured Data Testing Tool (для быстрой локальной проверки) и отчет Structured Data в Google Search Console. Ошибки валидации читаются буквально: несоответствие типов, недопустимые значения, отсутствие обязательных полей. Предупреждения: подсказки по улучшениям.
- Unit-тесты генерации JSON-LD (сравнение с эталонными снапшотами).
- E2E-тесты рендеринга (проверка присутствия script type=»application/ld+json»).
- Стейджинг с включенными валидаторами и ручной приемкой.
- Rollback-стратегию: отдельная версия схемы, возможность отката без влияния на карточку товара.
Как исправить микроразметку рейтинга
- Несоответствие reviewCount интерфейсу страницы. Решение: синхронизировать счетчик с БД/видимыми отзывами и обновлять по cron/event.
- ratingValue с тремя знаками после запятой или “5/5” как строка. Решение: привести к числу и формату X.Y.
- Дубли разметки: JSON-LD и Microdata с разными значениями. Решение: оставить один формат, чаще — JSON-LD.
- Устаревшие значения после миграции на новую CMS. Решение: версионирование схемы, smoke-тесты в CI.
причины отсутствия звезд: мало отзывов (особенно 1–2, без реальных текстов), неподдерживаемый тип, скрытые отзывы, слабый рендеринг для Googlebot. Для предотвращения помогает строгая валидация, мониторинг и четкие правила агрегации. В кейсах c manual action мы чистили источники, удаляли сомнительные отзывы, документировали политику модерации: восстановление видимости возвращало нормальный CTR в течение 2–8 недель.
Интеграция отзывов и агрегация оценок
Рабочая архитектура выглядит так: прием отзывов из форм и внешних источников (Google Business Profile, Trustpilot, Facebook Reviews, TripAdvisor, отзывы из Prom.ua/Розетка), нормализация (единая шкала 1–5), хранение с аудитом изменений и агрегация для schema. Специалисты BUSINESS SITE рекомендуют хранить “сырые” данные и вычислять агрегаты на лету или по расписанию для прозрачности.
Масштабирование и автоматизация каталога
- Cron-процессы для периодического обновления AggregateRating (раз в сутки/час).
- Event-driven обновления при появлении новых отзывов (событие в шине → перерасчет).
- Streaming для маркетплейсов с частыми изменениями.
Архитектурно помогает кеширование (in-memory/Redis), CDN для статики и structured data versioning. Если данных нет — включаем fallback-логику: не выводим AggregateRating и предлагаем альтернативные CTA (подписка на отзыв/вопросы о товаре). Для Shopify/WordPress, используем плагины как базу, дописывая кастомные крючки для синхронизации и нормализации.
Fallback-логика при отсутствии отзывов
Когда отзывов нет, я рекомендую:
- Не выводить AggregateRating, а вместо этого показывать социальное доказательство: “Первым оцените товар”, гарантии ПриватБанка/Монобанка, скорость доставки Новой поштой.
- Вести versioning schema: хранить предыдущую валидную версию и возможность отката при ошибках агрегации.
- Планировать trigger для оповещения маркетинга: “товары без отзывов” и приоритеты сбора.
Мониторинг звёзд в SERP и аналитика
Я настроил три уровня мониторинга:
- Google Search Console: отслеживаю расширенные результаты и ошибки структурированных данных.
- Сторонние SERP-трекеры и периодические сканы Screaming Frog с выгрузкой JSON-LD.
- Логи изменений: когда, для каких SKU обновился reviewCount/ratingValue.
Google не показывает звёзды после schema
Последовательность проверки у меня такая:
- Валидатор структурированных данных и Rich Results Test, отсутствие ошибок.
- Соответствие правилам Google: поддерживаемый тип, отсутствие self-serving для LocalBusiness.
- Достаточное число реальных отзывов и совпадение reviewCount с интерфейсом.
- Отсутствие дублей и конфликтов с canonical.
Диагностика через Google Search Console Structured Data быстро укажет, на каких шаблонах проблема. Частые решения: убрать вторую разметку (Microdata), выровнять ratingValue с фактическим средним, удалить неподдерживаемые поля, синхронизировать даты и источники, очистить разметку от отзывов, которые нарушают политики. Если получена manual action, я готовлю документ с исправлениями, политикой модерации и прошу пересмотр: практика BUSINESS SITE показывает, что четкая, честная аргументация ускоряет снятие санкций.
Безопасность данных и мошенничество
Организация работ в компании
Карта ролей:
- Маркетинг: сбор и стимулирование отзывов, политика модерации, коммуникация с платформами (Prom.ua, Розетка, Google Business Profile).
- Разработка — генерация и валидация JSON-LD, CI/CD, логирование ошибок разметки.
- SEO — стратегия типов schema, приоритизация страниц, мониторинг rich results.
- Юридическая служба: соответствие законам о рекламе и защите данных.
- Служба поддержки: первичная верификация отзывов.
Шаблоны для разработчиков и маркетинга
Шаблон JSON-LD для продукта:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Название товара",
"sku": "SKU-XXXX",
"brand": { "@type": "Brand", "name": "Бренд" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "57",
"bestRating": "5",
"worstRating": "1"
}
}
Шаблон JSON-LD для страницы услуги локального бизнеса:
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Название услуги",
"provider": { "@type": "LocalBusiness", "name": "Название филиала" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "93",
"bestRating": "5",
"worstRating": "1"
}
}
- Валидация JSON-LD в CI.
- Отсутствие дублирующейся разметки.
- Единый источник данных и versioning.
- Стейджинг + Rich Results Test перед релизом.
- Rollback без влияния на UI.
Чек-лист для маркетинга:
- Политика модерации и антифрод.
- План сбора отзывов (после оплаты/доставки Новой поштой, email-цепочки ПриватБанк/Монобанк).
- Карта источников внешних отзывов и атрибуция.
- Порог видимости (минимум N отзывов до активации блока в SERP).
Пример исправления ошибки “разные ratingValue в разметке и интерфейсе”: мы перенесли расчет среднего в один модуль, синхронизировали округление до одного знака и убрали Microdata, оставив JSON-LD, звезды появились через 5–10 дней.
Частые вопросы
Ответ: Универсального числа нет, но по опыту BUSINESS SITE уверенно работают страницы с 8–15 отзывами и текстовыми комментариями. Действия: простимулировать сбор отзывов после доставки Новой поштой, запустить e-mail напоминания, синхронизировать источники.
Ответ: Да, при корректной атрибуции источника и соблюдении их правил. Примеры: Google Business Profile, Trustpilot, Prom.ua, Розетка. Юридически важно иметь согласие на использование и ссылку на первоисточник.
Ответ: Пройти валидатор структурированных данных и Rich Results Test, проверить тип сущности и источники отзывов, убрать дубли. Дальше, GSC Structured Data, синхронизация reviewCount/ratingValue и ускорение рендеринга для Googlebot.
Ответ: Настроить pipeline: cron + event-driven перерасчет при новых отзывах, кеширование JSON-LD, доставка через CDN, тесты в CI/CD и контроль на стейдже. Раз в сутки — фоновая сверка счетчиков.
Ответ: Ручные меры (manual actions), потеря доверия к домену и падение расширенных результатов. Превентивные меры: антифрод-проверка отзывов, прозрачная модерация, аудит источников.











