Skip to main content

Guides

Review Schema Rules, and the One Most Sites Break

Review schema rules are the conditions Google enforces before a page is eligible to show star ratings in search, and the one that trips up most businesses is simple: you cannot mark up reviews about your own company on your own site. That single restriction, called the self-serving review rule, is the one that most often makes otherwise careful markup ineligible, even when the code itself is clean.

Review schema is structured data that tells search engines what a rating is, who wrote it, and what it describes. The rules fall into two groups that both have to be satisfied at the same time: content rules about which reviews are allowed, and technical rules about which properties the markup must contain. Pass the technical validator while breaking a content rule, and the stars quietly never show. Both layers matter, and a generic plugin usually gets the technical layer close while ignoring the content layer entirely.

The self-serving review rule

In 2019 Google stopped honoring what it calls self-serving reviews. A self-serving review is a rating about a local business or an organization placed on that same business's own website or app. If you run a clinic and add review markup about the clinic to the clinic's own homepage, that markup is not eligible, and in some cases it can draw a manual action.

The fix is not to delete your testimonials. Show them to your visitors as normal. Just do not wrap your own LocalBusiness or Organization entity in review or aggregateRating markup. Review structured data is built for ratings of specific things you offer, not for a verdict you write about yourself. The distinction is about who the rating is about and where it lives, not about whether the praise is deserved.

  • Reviews of a specific product you sell can be marked up.
  • Reviews of a specific service, course, or event can be marked up on that item.
  • A rating about your business as a whole, on your own domain, cannot.
  • Reviews pulled from a third party and republished as your own are not genuinely produced by your site.
  • What the markup must contain

    Review schema only produces a rich result when it sits on a supported content type. Google honors review snippets for a defined set of types, and a rating attached to anything outside that set is ignored even when the syntax is flawless. That single fact invalidates a surprising amount of real-world markup, because teams assume any page can carry a rating.

  • Supported types include Product, Book, Course, Event, Movie, Recipe, SoftwareApplication, and a restricted form of LocalBusiness.
  • An aggregateRating needs a ratingValue plus either a ratingCount or a reviewCount.
  • A single review needs an author with a name and a reviewRating that carries a ratingValue.
  • ratingValue states the numeric score, with bestRating and worstRating set when your scale is not the default one to five.
  • The item being rated needs a clear name so a search engine knows what the score describes.
  • The author field is where plugins fail

    The author name has to be a real person or organization. Dropping a coupon, a slogan, or the rated business's own name into the author field is treated as invalid, because it tells the engine nothing about who actually gave the rating. Automated review plugins get this wrong constantly, stamping the company name on every author line. Fixing it is usually a matter of mapping the author to the actual reviewer, which a generic widget has no way to know.

    Content rules that keep markup compliant

    Technical validity is the floor, not the finish. The content rules decide whether Google trusts the markup enough to act on it, and they are stricter than most plugins assume. Each one exists to stop businesses from inflating their own listings. Treat them as the real test, because the validator will happily pass markup that these rules quietly disqualify.

  • The reviews you mark up must be visible to users on the same page. Ratings that live only in the code are a guideline violation.
  • Ratings must come from genuine users, not from an editor who invents or averages them.
  • Each review must point at one specific item, not a category or a mixed list of products.
  • You cannot gather ratings from across the open web and present them as your own.
  • The score a visitor sees and the score in the structured data have to match.
  • Promotional or discount language does not belong in a review field; it reads as manipulation, not a rating.
  • These rules share one logic. Structured data is a claim you make to a search engine about content a human can also see on the page. The moment the claim and the visible page disagree, the markup becomes a liability instead of an asset, and a single bad entity can suppress rich results across a whole template.

    How review schema fits a wider strategy

    Review markup rarely stands alone. It usually nests inside a Product, LocalBusiness, or Organization block, and it works only when those surrounding types are modeled correctly up front. Getting the nesting wrong is a more common failure than getting a single property wrong.

    Treat review schema as one layer in a connected graph, not a snippet you paste in isolation. A broader guide to schema markup covers the foundation, and the local business and FAQ schema guides cover the types review markup most often attaches to. Reading those before you build will save you from marking up a review on a type that was never going to render it.

    How Ninetyfifth Marketing implements it

    We handle review schema as part of the technical SEO we run on the websites we build. The work is concrete: audit which reviews are genuinely eligible, map each one to the correct supported type, hand write the JSON-LD rather than trust a generic plugin, validate it against Google's Rich Results Test, and watch Search Console for enhancement errors after it ships. If Google later changes which types are eligible, the markup gets revised rather than left to rot.

    We never promise that stars will show, because eligibility is Google's call, not ours. What we control is that the markup is honest, valid, and compliant with every rule in this guide, so nothing on your side is the reason it fails. SEO is included on the sites we build on a published retainer, and the model is explained on the pricing and services pages.

    Questions

    Can I add review schema to my own homepage?

    No. Reviews about your own local business or organization placed on your own site are self-serving and are not eligible for review rich results. Display testimonials for visitors, but reserve review and aggregateRating markup for specific products or services you offer.

    What are the required properties for review schema?

    An aggregateRating needs a ratingValue and either a ratingCount or a reviewCount. A single review needs an author name and a reviewRating with a ratingValue. The item being rated also needs a name so the score has something concrete to attach to.

    Why aren't my review stars showing even though the markup validates?

    Validation only checks syntax. Stars can still be withheld when a review breaks a content rule, such as being hidden from users, self-serving, or placed on an unsupported type. Eligibility is always Google's decision and can change independently of your code.

    Does review schema guarantee a ranking boost?

    No. Review schema is about rich result eligibility, not ranking. It can make a listing more informative when Google chooses to show stars, but no structured data guarantees a position or a result.

    Can I use reviews collected on Google or another platform in my schema?

    Only reviews genuinely produced by your own site qualify. Republishing third party ratings as your own breaks the content rules, even when the numbers are real. Keep marked-up reviews native to the page a visitor actually sees.

    Related

    By Marco Consuelo, Ninetyfifth Marketing. Last reviewed .

    Downtown Phoenix, by appointment only. contact@ninetyfifthmktg.com

    Ninetyfifth Marketing

    Let's talk.

    Take 90 seconds to tell us about your business. If we're a fit, we'll reach out to set up a call.

    Ninetyfifth Marketing
    Ninetyfifth Marketing
    Live chat · Replies in minutes
    Ask a question and someone from our team will jump in.