// FREE TOOL · REVIEW SCHEMA GENERATOR

Review schema generator

Build Review and AggregateRating JSON-LD that Google will actually use — and get told, before you paste it, when the markup you are about to write is the kind that costs a site its star ratings.

FreeInstantNo signupNothing uploaded
Review + AggregateRating · generator
What is being reviewed, and by whom

One of the seventeen types Google accepts as the subject of a review.

One specific item. Not a category, not a list, not "our services".

nested puts the review inside the item and drops itemReviewed — the form Google recommends. standalone emits a Review that names its subject.

The rating and the review

A number, a fraction like 6/10, or a percentage. A dot for decimals — never a comma.

Omit and 5 is assumed. A 9.2 out of 10 with no bestRating is a nine-star review.

Omit and 1 is assumed.

Attribution

A real name, under 100 characters. Promotional text in this field costs you the author-based snippet.

Aggregate rating (optional)

Required once you give an average — at least one of ratingCount or reviewCount.

Errors and warnings
    JSON-LD — paste into the page carrying the review
    
                
    Visible HTML — the review as readers see it
    
                

    Everything runs in this page. No review text, name or rating leaves your browser.

    How to generate review schema

    Answer who is being reviewed and who wrote the review first. Three of the answers stop the tool, because they are the three cases where markup does more harm than nothing at all.

    1. Say what is being reviewed. One specific item, named, and one of the seventeen types Google accepts as a review subject. A category page or a list of products is not a valid subject.
    2. Answer the three checkboxes honestly. Your own entity, ratings from another site, incentivized reviewers. Each maps to a documented rule, and two of them stop the generator rather than warning you.
    3. Give the rating with its scale. A rating value, and bestRating and worstRating if your scale is not 1 to 5 — because that is what Google assumes when you leave them out.
    4. Name the reviewer. author is required and must be a real name under 100 characters. Reviewer names carrying discount codes are the reason Google wrote that rule down.
    5. Paste both outputs. The JSON-LD goes in the page carrying the review. The visible block carries the same rating, the same name and the same words — which is the requirement, not a nicety: the review content has to be readily available to readers.

    The rule that makes half of this markup pointless

    A review schema generator turns a rating and its reviewer into Review or AggregateRating JSON-LD — the structured data behind the star snippets in search results. Before any of that, there is one question worth answering: are you reviewing something, or are you publishing reviews of yourself?

    Google's review snippet guidelines say it directly: 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 the star review feature. The documentation gives the exact case — a review of entity A placed on entity A's own website, whether written into the structured data or pulled in through an embedded widget such as a Google Business or Facebook reviews plugin.

    Every generator on the first page of results for this query will happily write that markup for you. It validates. It renders no stars, ever, and if the site keeps insisting, it collects a manual action instead. So this tool asks, and stops.

    What the rule does not say, which is worth stating because it is widely overstated: it is scoped to LocalBusiness and Organization types. A shop marking up genuine customer ratings of a Product it sells is doing something normal and permitted — the constraints there are the other three rules below. The tool treats the two cases differently for exactly that reason.

    Three things you may not do with a rating

    • Don't aggregate reviews or ratings from other websites. Verbatim from the guidelines. The 4.8 on your marketplace listing belongs to that marketplace's page. Copying the average onto your own product page and marking it up is the violation, whether or not the number is true.
    • Don't include fake or undisclosed incentivized reviews. Two named examples: reviews not based on a genuine experience of the product or service, and reviews written in exchange for money, discounts, vouchers or free products without a clear and prominent disclosure. The incentive is not the problem; hiding it is.
    • Don't review a category. "Provide review information about a specific item, not about a category or a list of items." A five-star rating on our services or best CRM tools is not a review subject. This tool flags names that read like one.

    Two more that are easy to satisfy and easy to forget. If you show multiple individual reviews, include an aggregate rating of them as well. And the marked-up content has to be readable on the page: it must be immediately obvious to a visitor that reviews are there, with the text and the rating both visible — which is why the second output of this tool exists.

    The scale is 5 unless you say otherwise, and the author has to be a person

    Two defaults quietly rewrite a lot of markup:

    • bestRating omitted means 5. worstRating omitted means 1. A site scoring out of ten and marking up an 8.4 without a bestRating has published an eight-point-four out of five. Google understands fractions and percentages natively — 6/10 and 60% carry their own scale — but a bare number does not.
    • Decimals use a dot. 4,4 is not 4.4. In Microdata and RDFa you can show a comma to readers and put the dot in a content attribute; in JSON-LD the value is the value.

    The author property is required and has a length rule with a stated consequence: the reviewer's name must be a valid name and shorter than 100 characters, or the page is not eligible for an author-based review snippet. Google's own example of what fails is "50% off until Saturday" — which tells you exactly what practice the rule was written against. This form flags a reviewer name that reads like a promotion.

    One structural choice worth making deliberately: a review nested inside the thing it reviews omits itemReviewed entirely, because the parent item is the subject. A standalone Review has to name its subject. Both are valid; the nested form is what Google's examples use and what this tool defaults to.

    What to do when the answer is no

    Being told your testimonials cannot carry stars is not the same as being told to delete them. Reviews on your own site still do the two things that matter most: they convince a reader, and they give an AI answer engine specific, quotable sentences from named customers. Neither depends on structured data.

    What changes is where the stars come from. Ratings you do not control — a directory, a marketplace, an industry review site — carry their own markup on their own pages, and that is the surface Google reads. Your job on your own site is to be worth writing about and to be findable from those pages.

    If you were reaching for review markup to make a business listing look richer, the properties that are meant for it are on the local business schema generator: hours, geo, price range, departments. If it was a product page, the merchant listing rules — the price, currency and availability that decide whether the listing shows at all — are on the product schema generator.

    // FAQ

    What is a review schema generator?

    A review schema generator turns a rating and its reviewer into Review or AggregateRating JSON-LD — the structured data behind the star snippets in search results. This one also checks the review guidelines as you fill the form and writes a matching visible review block.

    Can I add review schema to my own business website?

    Not for reviews of the business itself. Google's guidelines state that when the reviewed entity controls the reviews about itself, its LocalBusiness or Organization pages are ineligible for the star review feature — including reviews shown through an embedded third-party widget. Publish the testimonials, but do not mark them up.

    Does that ban apply to reviews of my own products?

    No. The documented restriction is scoped to LocalBusiness and Organization types. A shop marking up genuine ratings its own buyers left on a Product page is doing something permitted. The other rules still hold: no ratings copied from other sites, no fake reviews, and any incentive clearly disclosed.

    What is required in Review structured data?

    An author, a reviewRating with a ratingValue, and the name of the thing reviewed. If the review is nested inside the item using the review property, you omit itemReviewed because the parent is the subject; a standalone Review has to name its subject explicitly.

    What happens if I leave out bestRating?

    Google assumes a 5-point scale, with 1 as the lowest value and 5 as the highest. A score out of ten marked up without bestRating is read against a scale of five. Fractions and percentages carry their own scale, so 6/10 and 60% are unambiguous without it.

    Can I show an aggregate rating collected from another website?

    No. The guidelines say not to aggregate reviews or ratings from other websites. The average on a marketplace listing belongs to that listing. If you show several individual reviews of your own, you should also include an aggregate rating of those reviews.

    Why does the reviewer name have a length limit?

    A reviewer name of 100 characters or more makes the page ineligible for an author-based review snippet. The rule exists because the field was being used for promotional text — Google's own example of an invalid reviewer name is "50% off until Saturday".

    clize seo check — free for your own domain

    Stars or no stars: is anyone reaching the page?

    Checking your own domain is free: impressions and average position against the previous window, every page with its live HTTP and index status, and traffic split by source with AI engines counted separately. One command, from inside your agent.

    $ npm i -g @clize/clize && clize install
    $ clize seo check --domain yourdomain.com
    [ Agent SEO by Clize → ]