- 14 of 200
- AI Search Visibility & GEO
- Structured Data & Schema Markup
- Low
Short answer: Review and AggregateRating markup is what can put star ratings under a search result. But Google has a rule most businesses don't know about. If a business controls the reviews about itself, for example testimonials on its own website, its LocalBusiness or Organization markup is not eligible for stars. Crawl Audit check 14 warns when a page shows reviews without markup. For your own testimonials, adding markup won't bring stars. For reviews of products you sell, it can.
What Crawl Audit checks
- Pass: the page has a
RevieworAggregateRatingnode. - Warning: neither, but the page has an element whose class contains "review", "testimonial" or "rating".
- Pass: no review content, so the markup isn't needed.
Google's self-serving review rule
Google's review snippet documentation says: "If the entity that's being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature." The rule dates from September 2019, when Google wrote: "Self-serving reviews aren't allowed for LocalBusiness and Organization", and confirmed it covers both Review and AggregateRating.
In July 2026 Google added one more guideline: "Don't include fake or undisclosed incentivized reviews".
So for a typical service business:
- Testimonials about your business, on your site: markup is allowed, but it won't produce stars. Keep the testimonials as visible text, with a real name and role, because people read them.
- Product pages where real customers review a product you sell: review markup can be eligible for a product snippet.
- Reviews of your business on other sites: those sites mark them up, not you.
On this site, we only publish reviews from people who have agreed to their words being used, and attribute them by role and company.
What valid markup needs
- A Review needs an
author, areviewRatingwith aratingValue, and anitemReviewed, unless it's nested inside the thing being reviewed. - An AggregateRating needs a
ratingValue, anitemReviewedunless nested, and "At least one of ratingCount or reviewCount is required."
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Example product",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"bestRating": 5,
"ratingCount": 20
}
}
</script>
How to handle it on your platform
- Shopify and other stores: review apps usually add product review markup themselves. Check one product page in Google's Rich Results Test and make sure only one source adds it.
- WordPress: if a testimonials plugin adds AggregateRating to your Organization or homepage, it won't earn stars. Make sure it doesn't invent a rating from a handful of hand-picked quotes.
- Wix, Squarespace and Next.js: keep testimonials as plain text with names and roles. Add review markup only on product pages with real customer reviews.
Common mistakes
- An AggregateRating for your own business, built from testimonials you chose. It's ineligible, and it's the kind of thing that makes a site look less trustworthy, not more.
- A rating with no visible reviews behind it. Google's general rule: "Don't mark up content that is not visible to readers of the page."
- Reviews you paid for or gave a discount for, without saying so.
Sources
- Google Search Central, Review snippet structured data (updated 8 September 2026), checked 3 October 2026.
- Google Search Central blog, Making review rich results more helpful, 16 September 2019.
- Google Search Central, documentation updates (24 July 2026 entry); General structured data guidelines.
See how your site does on every check.
Crawl Audit runs this check and 199 others on your domain. The full report is $7.89, one time. The free check on this site covers 25.