What Cafes Can and Cannot Mark Up as Star Ratings


Somewhere in a plugin description or a template's marketing copy, you found a promise that adding review or rating schema to your homepage would put gold stars next to your listing in search results. Short answer: Google's own review snippet documentation restricts markup where a business is reviewing itself, so writing star ratings into your own homepage's schema based on your own testimonials is not a reliable route to anything, no matter how correctly the code validates.
This post walks through what the documentation actually allows, where the real cases differ, homepage, location page, product page, event page, and what the honest, compliant alternatives look like. Every rule below traces back to a named Google or schema.org page, because these guidelines have shifted before and will likely shift again, so treat this as accurate as of the date it was written rather than a permanent rule carved in stone. No prediction here promises stars will actually display, only a clear account of what the current documentation says.
The Self Serving Review Rule
Google Search Central's review snippet documentation draws a clear line around who is allowed to be reviewed in markup that can produce a rich result: it is meant for third parties reviewing a business, a product, or a service, not for a business writing up praise of itself and marking that praise up as though it were an independent review. A business publishing its own curated testimonials, then wrapping them in Review or AggregateRating schema on its own homepage, is exactly the pattern this guidance is built to exclude from eligibility.
This matters because the schema markup itself will often validate without complaint. A validation tool checks whether the code is structured correctly, not whether Google considers the underlying content eligible for a rich result. That gap, between valid code and eligible content, is where a lot of well meaning owners get misled by a plugin or a template that only checks the first thing and implies the second. A plugin that shows a green checkmark next to your schema block is telling you the syntax is fine, nothing more.
The practical takeaway is blunt: if the reviews behind your rating schema are testimonials your business selected and published itself, rather than reviews collected and verified through an independent platform like your Google Business Profile, that markup is not the route to stars showing up next to your listing, regardless of how clean the code looks in a testing tool.
It is worth understanding why the rule exists in the first place, since it makes the logic easier to remember than a bare prohibition would. A star rating shown in a search result is meant to communicate something a searcher cannot easily verify themselves in the moment, an aggregated, independent judgment formed by many separate people. If a business could freely write its own praise, select only the favorable parts, and mark that up as a verified rating, the entire signal would stop meaning anything, since every business would eventually do the same thing. The restriction exists to keep the signal honest, not to make life harder for small cafes specifically.
How the Different Cases Actually Differ
A homepage that marks itself up with an aggregate rating drawn from its own curated testimonials is the clearest case of what the guidance restricts. This is a business describing itself, using its own selected quotes, as though those quotes were independently gathered reviews, which is precisely the self serving pattern the review snippet documentation is built around.
A product page is a genuinely different case worth understanding on its own terms. If a roaster sells a bag of coffee through a product page and that page carries real, verifiable reviews of that specific product, collected through a review system rather than curated by the business itself, that pattern sits closer to what product review markup is meant to support, since the object being reviewed is a specific product rather than the business as a whole. This distinction, business versus product, is central to why the same kind of visual outcome, stars in a search result, follows very different rules depending on what is being rated.
A location page or an event page raises the same underlying question as the homepage case: is the entity being rated the business itself, described through its own selected praise, or something more specific and independently reviewable. In practice, most of what a cafe would want to mark up on a location or event page falls closer to the homepage case than the product case, because it is still fundamentally the business describing itself rather than a specific, independently reviewable product or offering.
None of this should be read as a claim about whether stars will or will not display for any particular website, since that outcome depends on more than markup alone and cannot be predicted from documentation review. What can be said is which pattern the documentation describes as eligible in principle and which it describes as the kind of self serving case it is built to exclude.
It is also worth naming a case that sits in between these examples: a cafe that sells whole bean bags through an online shop and links out to an established, independent retail platform for the actual purchase and review collection. If that outside platform gathers genuine, independently submitted reviews of the specific product and supplies its own compliant markup, the cafe benefits from a system built for exactly this purpose rather than trying to replicate it inside its own homepage code. That is a meaningfully different, and generally sounder, path than attempting to mark up self published praise directly.
What Schema.org Actually Defines
Schema.org's Review type describes a review of an item, with properties like the author of the review, the review body text, and an item reviewed. Its Rating type, and the more specific AggregateRating type built on top of it, describe a rating value along with the scale it sits on, commonly a best and worst possible score, and for AggregateRating, a count of how many ratings or reviews the aggregate is drawn from. These are the building blocks, and schema.org itself does not restrict who can use them the way Google's review snippet guidelines restrict what gets treated as eligible for a rich result.
That is an important distinction to sit with. Schema.org defines the vocabulary, the properties and their meaning, in a fairly open way, while Google's own documentation layers additional eligibility rules on top of that vocabulary for the specific purpose of deciding what shows up visually as a rich result in search. A block of code can be perfectly correct schema.org markup and still not be eligible for Google's rich result treatment, because those are two different standards being applied for two different purposes.
AggregateRating in particular requires a rating value and either a review count or a rating count property to be structurally complete. A cafe writing this markup around its own curated testimonials can produce a technically valid AggregateRating block that still falls squarely into the self serving pattern the review snippet guidance describes as ineligible, which is exactly the trap a validation tool alone will not catch.
This is why relying on a validation tool as the final word on whether markup is safe to publish is a mistake worth avoiding. A tool built to check schema.org's structural definitions has no way of knowing whether the reviews behind an AggregateRating block were independently gathered or hand selected by the business itself, because that distinction lives outside the code entirely, in how the underlying content was collected.
The Honest, Compliant Alternatives
The most direct compliant alternative is the one already built for this purpose: your Google Business Profile. Reviews collected there are independently gathered, tied to real accounts, and Google's own review policies govern how they can be solicited and displayed, which is a fundamentally different structure than a business curating and publishing its own testimonials. Directing customers toward leaving a genuine review there, and letting that rating live where it was earned, is the legitimate version of what a self serving schema block is trying to fake.
On your own website, you can absolutely show real customer feedback, quoted honestly and linked back to its source where possible, without wrapping it in Review or AggregateRating schema that implies something Google's guidelines say it is not. A visible testimonials section that reads as exactly what it is, feedback the business chose to highlight, credited honestly, is not a violation of anything. It only becomes a problem when it is dressed up in structured data implying an independently verified rating.
Google Business Profile Help's review policies also cover related ground worth knowing: businesses should not solicit reviews in exchange for incentives, and should not selectively suppress or gate which reviews customers are able to leave. Those policies exist for the same underlying reason the review snippet guidance restricts self serving markup, to keep the ratings a customer sees as close as possible to an honest, independently formed record rather than something the business itself has shaped from the inside.
None of this means a cafe has to hide its reviews or downplay a strong reputation. It means the strong reputation should be shown in the place built to display it honestly, the Google Business Profile itself, and referenced from the website in plain language rather than recreated through markup on a page the business fully controls. A simple line like see our reviews on Google, linked directly to the profile, does more honest work than a homemade rating block ever could, and it costs nothing to set up correctly.
A Simple Rule to Carry Forward
If you are ever unsure whether a piece of markup you are considering falls into the self serving pattern, ask one question: who chose these reviews, and were they collected independently of the business describing itself. If the business itself selected, edited, or curated the praise being marked up, that block belongs in a plain, honestly labeled section of the website, not inside Review or AggregateRating schema implying something more. When in doubt, ask a developer or an SEO partner to walk through the specific page in question rather than guessing from a general rule alone.
Guidelines like these have changed before and are reasonably likely to be refined again, so treat any specific rule described here as accurate as of the date this was written and re check the current Google Search Central and schema.org pages directly before making a final decision on your own site. The underlying principle, that a rating should represent an independent judgment rather than the business's own curated self description, is the part least likely to change even if the specific technical eligibility rules shift around it.
If you take nothing else from this post, take this: a genuinely earned reputation does not need to borrow the language of independent verification to be persuasive. A cafe with real, honest reviews on its Google Business Profile, linked plainly from a website that does not pretend to be something it is not, is standing on far steadier ground than one chasing a rich result through markup the documentation was written specifically to exclude.
Related Reading
More from Hillcane on this topic, plus the pages on the site that sit next to the work.
Frequently Asked Questions
Can a cafe mark up its own homepage testimonials as an AggregateRating?
Not reliably. Google Search Central's review snippet documentation restricts eligibility where a business curates its own praise and marks it up as though it were an independent review, which is exactly what homepage testimonials wrapped in AggregateRating would be. The block may validate as correct schema.org code, but validation checks structure, not eligibility. Show testimonials in a plainly labeled section instead, and point to your Google Business Profile for real ratings.
Why does validated code not guarantee stars will show up in search results?
A validation tool checks whether markup follows schema.org's structural definitions, such as a Review with an author and review body, or an AggregateRating with a rating value and count. It cannot know whether the reviews were independently gathered or hand selected by the business, because that lives outside the code. Google's review snippet guidelines judge eligibility separately, so a green checkmark only confirms the syntax is fine, nothing more.
Is a product review different from a business review under these rules?
Yes, in principle. A product page carrying real, independently collected reviews of that specific product sits closer to what product review markup is meant to support, since the object being reviewed is a specific product rather than the business as a whole. A business marking up praise about itself is the self serving pattern the guidance is built to exclude.
What does schema.org's AggregateRating require?
To be structurally complete, AggregateRating needs a rating value, the scale it sits on, commonly a best and worst possible score, and either a review count or a rating count. It builds on schema.org's more general Rating type. Schema.org defines this vocabulary openly and does not restrict who uses it; Google Search Central's review snippet guidelines add the separate eligibility rules that decide what appears as a rich result.
What is the compliant way to show star ratings for a cafe?
Send customers to leave genuine reviews on your Google Business Profile, where ratings are gathered independently, tied to real accounts, and governed by Google's review policies. That is the legitimate version of what a self serving schema block tries to fake. Then link to it plainly from your website with a line such as see our reviews on Google, which costs nothing to set up and does more honest work than a homemade rating block.
Can a cafe show testimonials on its website at all?
Yes. A plainly labeled testimonials section, feedback the business chose to highlight, quoted honestly and credited or linked to its source where possible, violates nothing. The problem only arises when that same content is wrapped in Review or AggregateRating schema that implies an independently verified rating, which Google Search Central's review snippet documentation restricts. Keep the section visible and honest, and leave rating markup to independently collected reviews.
Does Google Business Profile restrict how reviews can be solicited?
Yes. Google Business Profile Help's review policies, accessed September 21, 2026, say businesses should not solicit reviews in exchange for incentives and should not selectively gate which reviews customers are able to leave. They serve the same purpose as the review snippet restriction on self serving markup: keeping the ratings a customer sees close to an honest, independently formed record rather than something the business has shaped from the inside.
Do these rules apply the same way to a location page or an event page?
Usually, yes. A location or event page is typically still the business describing itself, which puts it closer to the homepage case than the product case. A product page carrying real, verifiable reviews of a specific bag of coffee, collected through a review system rather than curated by the business, sits nearer to what product review markup supports. The deciding question stays the same: who selected the reviews, and were they gathered independently?
Could these guidelines change after this post was written?
Yes, and they have shifted before. Every rule described here traces back to a named Google Search Central or schema.org page as of the date this post was written. Before making a final decision for your own site, re check the current version of those pages directly rather than relying solely on any single post.
What is the simplest test for whether markup is self serving?
Ask who chose the reviews being marked up, and whether they were collected independently of the business describing itself. If the business selected, edited, or curated the praise, it belongs in a plainly labeled section, not inside Review or AggregateRating schema. Guidelines have shifted before, so recheck the current Google Search Central and schema.org pages before deciding, and ask a developer or SEO partner to review the specific page when unsure.
Work with Hillcane
A plugin promised gold stars if you marked up your own testimonials. Google's own guidelines say that is exactly the case they exclude.
If you want help sorting out what your cafe can and cannot mark up honestly, reach Hillcane at hillcane.co/contact or call (256) 384-2449.



Comments