Local Businesses: Get Review Snippets in Google with aggregateRating Schema

Heads up: Unfortunately (although maybe for the best), Google is no longer going to show aggregate ratings in your snippets for LocalBusiness or Organization types (and their respective subtypes), regardless of how carefully you mark them up. In other words, this article is no longer useful. Sorry 🙁

See here and here for more info!

Review star rich snippets are a rather poorly understood feature of Google’s search results, especially for local businesses. There’s not a lot of clear information about how to trigger them, and what rules and guidelines you should be considering in your implementation.

Part of the problem is that it has been a moving target for the past few years. At first, pretty much any site could achieve review stars in their snippet by simply adding the aggregateRating schema markup to their pages. Then, with the emergence of JSON LD, doing this got even easier — and implementation (and abuse) increased accordingly.

The results were as you’d expect. SEO’s and DIY-ers were marking every page on their sites up for review stars. And this worked… for a time.

It’s still possible to trigger review stars by simply adding the aggregateRating value to your LocalBusiness schema markup — but the likelihood that this will work for you out of the box is low. More importantly, this approach violates many of Google’s guidelines and is just generally a spammy, junky practice that doesn’t help users make informed decisions; so even if it’s working on some sites right now, it’s not a recommended or sustainable approach.

The Rules

Google has clamped down on which sites/pages get stars in their rich snippets. Even if you do everything properly, you still may not see stars on every (or any) of the pages you want them on. The best bet, though, is to try to keep your implementation as above board as possible by following these rules:

These ones are mandatory and somewhat enforceable:

  • Don’t use aggregateRating on your home page (they just won’t work and may be a spam signal)
  • aggregateRating score must represent actual reviews that are all visible on your site
  • If you don’t show the actual reviews on a given page, but are using aggregateRating schema, that page needs to clearly show the review score and link to the page where the reviews are visible
  • Pages you put the aggregateRating score on must be relevant to the reviews
  • Reviews should be unique to your site (not pulled from Google, Yelp, etc.)
    Note: you can put 3rd party reviews on your website, you just can’t mark them up for your rich snippet.

These ones are less enforceable, but still worth trying to oblige:

  • You shouldn’t curate reviews (if you do, at least throw in a few 3’s and 4’s)
  • You should have the user’s permission to publish their words
  • Users should be able to add reviews (or at least make it look like they can)

Last but not least, it appears that in order for a page to trigger stars it needs to have some authority. Well linked/trafficked pages typically stand a better chance of having review stars in the SERP.

These rules are based on my interpretation of Mike Blumenthal’s interpretation of the current Google Guidelines for review snippets 😛

Make it Happen

With the above parameters in mind, there are a couple ways to implement reviews on your site and remain above board while maximizing your chances of getting stars in your snippets.

Option A: Use review software

Some review systems will handle all the heavy lifting for you. Popular examples include:

Whitespark’s Reputation Builder is specifically built to help local businesses collect and monitor reviews, and makes displaying properly marked-up 1st party reviews on your site totally painless using the built-in Review Widget feature. This option is affordable, stress-free, and well worth considering. The alternative I describe below is actually based largely on mimicking Reputation Builder’s output.

TrustPilot is quite a bit pricier, and generally better suited to larger, national companies.

These systems make implementation easy by simply letting you pop a widget or a code snippet into your site. They aren’t free and do require a bit of commitment to implement and use, though, which might not be necessary if you’re only looking to get review stars in the SERP.

Option B: Roll your own review system

If you’re motivated, it’s pretty simple to whip up a basic review system for your website that adheres, for the most part, to Google’s guidelines (or at least enough that no one will know the difference).

This system could be anywhere on the complexity spectrum, based on your resources and needs. Here I’m going to illustrate an easy and free way to get the basics in place.

These instructions are based on using WordPress, but the general idea would apply to any platform. Here’s more info about including schema markup in your web pages.

Step 1

Make a testimonials/reviews page on your site, and fill it with customer reviews. Here’s one I built for a client that we’ll use as an example:

I used a custom post type for the reviews, but you could also just add them as static content.

Pro Tip: For a quick way to get those pretty review stars into your WordPress posts, here’s a handy plugin called Universal Star Rating. Be careful using other plugins, as many of them will inject their own review schema into your site and make things messy.

I give this plugin 5 out of 5 stars 😉

Step 2

Mark up each review with the review schema. Google recommends using JSON LD, and so do we — so that’s what we’ll use here.


Wrap the reviews with the LocalBusiness schema (or a more specific option, if you prefer), and include the aggregateRating with the average of all the reviews on the page. Example:

Refer to schema.org for more info on completing these properties.

Bring it all together

Here’s the full JSON LD markup I used on the testimonials page (I only included two reviews in this example, but you’d re-use the review snippet for however many reviews you have on the page).

Add the markup to your website’s <head>. To include the markup in WordPress, I’m using a plugin called Per page add to head. This allows you to easily add JSON LD to any page, but there are countless other ways to achieve this.

Use Google’s Structured Data Testing Tool to check your work. Warnings are OK (but don’t disregard them), Errors must be corrected.


Step 3

Add a “leave a review” form somewhere to the Testimonials page. You could build a whole system that moderates submissions and then publishes them on the page (like Reputation Builder does)… or you could not. No one will know ¯\_(ツ)_/¯

Step 4

Add your LocalBusiness and aggregateRating schema to other pertinent pages on your site. Common examples would be your Services page(s) and About us page. Avoid things like blog posts, resources pages, and anything else where the reviews aren’t applicable. I’d also just avoid putting it on too many pages in general. Example:

Again, don’t put that on your home page. You can put the LocalBusiness stuff there, just remove the aggregateRating, like so:

Note: Every page with the aggregateRating score on it must either show all the reviews it references OR show the aggregated review score and clearly link to the page that contains the reviews.

You can do this however you like. In my implementation, I added a block like this to all the pages I put the aggregateRating schema on:

That’s it!

Did I miss anything? Any questions about implementing this on your site? Let me know in the comments!


Nick Pierno

I've been working in digital marketing and local SEO since 2008. I'm passionate about helping businesses make the most of their marketing budgets online, and I'm especially keen on lead-generation and performance tracking. More about me.

Follow Me on Twitter

51 comments on “Local Businesses: Get Review Snippets in Google with aggregateRating Schema

  • If you pull your reviews from Trust Pilot and mark them up on your site, isn’t that marking up reviews from a third party? They aren’t unique to your site if they are also on Trust Pilot’s review page for your brand.

    Also, can you add the same aggregate rating schema to multiple pages on your site. Not over doing it, but pages that are relevant to your brand and product, outside of the home page.

    • Hi Kate, great question! I’m not certain.

      As far as I know, TrustPilot reviews are ok to mark up on your website, and they can generate rich review snippets.

      I think maybe the logic with these third party review tools is that the reviews are yours (whereas the reviews on Google are owned by Google, etc). TrustPilot doesn’t collect reviews unless you subscribe to their service. In that context, you could consider those reviews to be “first party”.

  • Hi Nick,

    Great article! Is it possible to get a non-local business to show a review snipit for a category page, or would the reviews have be specific to each product?

  • Nice post Nick. From my experience I’d agree that the site needs to have some authority before snippets are displayed. I can’t remember where I saw the article but the writer suggested the benchmark was a domain authority of 25 or higher. I don’t think page-level links are always necessary but I have no doubt that it would help

    Even the mandatory rules are only somewhat enforced as you suggested so I think this feature will continue to be abused until there’s actual consequences. Not unlike keyword stuffing GMB business names or spammy reviews.

    • Thanks Patrick!

      It does seem like authority/trust are factors in whether or not the stars show up, but it seems more to me like Google’s just looking for any reason not to trust the site (though that’s hard to quantify for practical purposes).

      The site in my example actually has a domain authority of 18 (according to Moz). That’s not necessarily equivalent to how Google sees the domain, but it does imply that lower DA sites can make the cut.

      This is partly why I think following the rules as closely as possible seems like the safest bet. I also think some day Google might revisit rich snippet abuse and penalize sites stepping too far over the line. Seems to me like a decent honeypot to attract abusers… but that’s just a conspiracy theory.

  • I try since a few months to have my review snippet stars on google back but it seems complicated.
    But I keep the way and I hope having it back a day !
    I have something like 800 pages with quite perfect review schema. It’s perfect in google console but still no reation on google results.
    Other site used products review even if it’s not a product. And it works ! But I don’t want to act like them

  • can’t believe that google my business is not providing a js plugin like (analytics like)

    I mean a GOOGLE OFFICIAL and google hosted one

    that allow to show the OFFICIAL GOOGLE MY BUSINESS reviews amount and stars rating …

  • Great article. If only more people support local small businesses, this is by far the best thing you can do to support your local community. More of your dollars stay in your community and that’s good for a lot of reasons, including home values in neighborhoods … What? Yes, that’s right, even the value of your home increases, shopping on the spot is more important than people think. Most people do not know how important it is to support their local small businesses. Thanks for sharing this great info.

  • Hi Nick, sounds like a good idea however it seems the minute that you implement something like this, Google quickly just changes their game and it goes to waste and in some occurrences, you are somewhat penalized for trying. I am going to try it on one of my client’s sites just to see if it works.

    • If you keep your implementation above-board, I don’t think there’s any concern about getting penalized. Google does like to keep the targets moving though 🙂

  • I don’t have reviews on my site. I have a 5 star rating on my Facebook page, but for some reason my search results on google show a 4 and 3 star rating, I have no idea where this is coming from. How do I remove this or find out what is causing it?? Thank you.

  • Schema markup implementation is good practice but when non technical person wants to implement schema on his/her site then is there any ALL IN ONE tool that do all magic itself and increases chances of successful Execution in SERPs?

  • I have more than 50 reviews aggregating over 4.5 rating on my Google business listing.

    Nick, we are not using any third party tool to collect reviews so can I use those reviews to display on respective (internal) pages ?

  • Thanks for your really helpful article Nick. Bill above in the comments touched it already with his question: I would love a follow up article on how directory/category pages should handle structured data, and on what level they should implement ratings – if any.

  • Great Article..Nick Pierno

    This best Schema to improve your Business impression.
    If We use third-party schema and we added manually add 5-star rating for products. how can google see my Rating schema?
    Is it good for SEO?

  • I’m confused. The guidelines say to have the aggregate review schema on the product/service page but you put all the actual reviews for any of your products and services all on one review/testimonials page rather than on the product/service page they relate to? I would think you would want to put the reviews and the schema for any product/service on the same page as the product/service description?

  • I missed this at first:

    Note: Every page with the aggregateRating score on it must either show all the reviews it references OR show the aggregated review score and clearly link to the page that contains the reviews.

    So you can have say 100 reviews on 1 page and then put aggregate review schema on all your product and service pages with a link to that page event though there’s no indication what reviews belong to which products and services?

  • Greetings,

    Great article! What is the reason that the reviews can’t come from a third party site – I don’t see any documentation regarding this, so why would Google penalize this?

  • Hello Nick, amazing article. I was looking everywhere till I found this.

    I just wanted to ask if it’s possible to show the review on SERP’s in this format:

    “☆☆☆☆☆ Rating: 4.7 – ‎Review by Colin Newcomer”
    instead of the usual “☆☆☆☆Rating: 4 – ‎2 reviews ”

    How can we add “Colin Newcomer” instead of “2 Reviews”?

  • Hi Prashant! I think I’ve seen that when there is no AggregateRating on the page (only one or several individually marked up reviews). I could be mistaken on that though…

  • Wow, this is a pretty good article. I only wish I’d read it two years ago.

    I spent soo much time stumbling through structured data. And then, I’d been working on it for a year before I found this https://schema.org/LocalBusiness. Sheesh. The amount of info in this one article took me at least 6-12 months of mine own, stumbling around on the internet trying to figure this out. If someone is trying to get started with schema they should book mark this article.

  • I have recipes on my blog and I got an email from Google saying there was a warning (scary but it says it’s really a suggestion – phew.) The warning is that they are missing the field “aggregaterating.” I use a WordPress plugin for my recipes and I do have ratings enabled on each recipe. Should I add this and if so, do I have to add it to every recipe I publish? I also wonder if it works side by side with my ratings from the recipe plugin. I am new to writing more professional recipes like this.

  • pretty good article. I have a question.

    I have 200+ products on my website and their reviews are working fine and showing in SERP too.

    But most of the traffic I got from SERP is on category pages, and those pages don’t have that STARS… is it possible if I can show category review?

    For instance, that category contains 10 reviews and aggregate rating is 4.2 so it will show on my category page? However, I’m not receiving any review on that particular page but I can segmentize that category review from my total review.

    • As with anything, YMMV — but I think you should be fine doing that, as long as you clearly link to where those reviews are coming from, reflect the scores accurately, and provide a way on-site for users to add reviews (which it sounds like you probably have already).

  • Nick, I have successfully implemented Google’s star rating schema code for a half dozen of my pages and it is appearing in the SERPs. The problem is that my meta description is no longer appearing. It’s as if the star rating scheme has replaced the meta description. What’s the trick to have both displayed in the SERPs?

    • That seems very odd. Is it that the description text in the search result is simply not showing at all? Or just that the text you defined in your meta tag isn’t showing?

      If it’s the former, can you please send a screenshot and/or let me know the search term you’re using? If the latter, it’s probably just Google doing its thing. SERPs often ignore the meta description tag and show whatever Google thinks is best.

  • Very useful article!

    If I have many reviews, do I put all of them together with the local business and aggregate schema or do I just choose a few of them to include?

    What happens if you include only the aggregate rating and leave out the reviews, would that diminish your chances of Google showing your rating?

    • Glad you found it useful!

      The aggregateRating can be separate from the reviews themselves, you just need to link back to the page that shows them (and I’d mark them up there for good measure). That said, this is all geared towards following Google’s guidelines to a reasonable (attainable) degree. I believe it increases your chances of getting and keeping the rich snippets — but YMMV depending on your execution. Can you get the stars without linking to/marking up the reviews? Definitely maybe!

  • Thanks for the article, Nick. I e-mailed you regarding a small question before I saw that there was a comment function down here.

    Hope you can see it anyway. 🙂


  • We get lots of reviews left on Google – which is great – it is odd that these cannot be added and automatically update the number of reviews and aggregate star rating etc directly on the site – or is there a way to do this / is it allowed to use these 3rd party reviews – they are verifiable on Google. Nice article by the way, thanks

    • This is a bit of a tricky area. A few years back, Mike Blumenthal wrote this about using Google reviews on your website. He basically concludes that it’s a bit risky. He admits this is just his interpretation of a greyish area, and you may interpret things differently.

      Additionally, in the technical guidelines for review snippets, Google does indicate clearly that:

      Sites must collect ratings information directly from users and not from other sites.

      I interpret that as a stipulation that you may only use reviews obtained directly from users (which would preclude your GMB listing and any other site). As with anything else in the article, you might get away with bending the rules, or interpreting the differently. But if you’re risk averse like me, you’ll just focus on collecting a separate set of reviews/testimonials for your website.

      Hope that helps!

  • Great article!

    I am adding the LocalBusiness markup to my Testimonials page on a site using the ‘AggregateRating’ element. I already however have a LocalBusiness markup site wide that includes things like opening hours. Is it OK to have 2 LocalBusiness markups for the reviews page? (As it inherits the site wide one).?

    Thanks in advance.

    • I’m actually not certain about that. I’ve never tried it! You could test it out in Google’s Structured Data Testing Tool, or you could just combine them (unless the site-wide one is being generated from a central point).

      I’d be interested in hearing about your test results!

  • The Structured Data Testing Tool doesn’t seem to have an issue with it – it just reports two LocalBusiness elements. I’ll give it a few days to see if Google displays the reviews rich snippet and will do some testing if not to see what happens and will let you know!

    • Yep, time to update this article!

      However, you do not need to remove anything from your site — and you definitely shouldn’t remove the LocalBusiness type from your markup (because the business info properties are still totally valid… albeit with debatable importance).

  • A comprehensive well-written guide for such a complex topic. I learned more from this one article than 10 others. One question though, for the purposes of local seo, do you recommend adding the local business markup on every page of a website or just the homepage is considered sufficient?

  • Hello!
    I have a Blogger food blog which come with a built-in comments system.

    I am already using the Recipe schema for my recipes and now I would like to try and have those stars on google search result but I am not quite understand what it requires from me – I don’t want to add a 3rd party widgets to my blog.

    The comments system doesn’t include rate element just simple text.
    Do I need, for any new comment, edit my schema and add it manually? It sounds weird…

Comments are closed.