Free tools ★ Review schema generator
Review schema generator
Fill in the testimonials already on your page, or the per-star counts behind your rating, and copy the JSON-LD that describes them. It works out the rating for you, checks the fields Google requires, and tells you plainly whether your kind of page gets stars at all.
- What it costs
- Nothing. No account, no email, no watermark, no limit on how often you use it.
- Where your text goes
- Nowhere. The whole tool runs in your browser — nothing you type is sent, stored, or seen by us. The page-view measurement this site carries counts the visit, never the text.
What the reviews are about
Where the rating comes from
Rating
4.67 across 3 reviews
Stars possible: Google can show review stars for a Product when the reviews are on the page.
- The reviewed item has a name
- Every review names its author
- Every rating sits between 1 and 5
- AggregateRating carries ratingValue, bestRating and reviewCount
- The reviews this describes are visible on the same page — yours to keep true
The markup — paste it into your page’s HTML
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Fernway Reports",
"brand": {
"@type": "Brand",
"name": "Fernway"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.67,
"bestRating": 5,
"reviewCount": 3
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Maya Lind"
},
"datePublished": "2026-05-12",
"reviewBody": "The onboarding took twenty minutes and the first report paid for the quarter.",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5,
"bestRating": 5
}
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Tom Okafor"
},
"datePublished": "2026-06-03",
"reviewBody": "I was skeptical about switching mid-season. Three weeks in, our response time had halved.",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5,
"bestRating": 5
}
},
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Ines Duarte"
},
"datePublished": "2026-07-21",
"reviewBody": "It does one thing, does it fast, and stays out of the way.",
"reviewRating": {
"@type": "Rating",
"ratingValue": 4,
"bestRating": 5
}
}
]
}
</script> Nothing to emit yet: this page type carries no rating, and there are no reviews to describe. Add the reviews that are on your page.
Check it with Google’s Rich Results Test or the schema.org validator once it is on your page.
01 Review and AggregateRating, and which one you need
A Review is one person’s verdict: who wrote it, what they said, how
many stars, and when. An AggregateRating is the summary over all of them: the
average, the scale, and how many it comes from. Google reads both, but only the aggregate
turns into the stars under a search result — and it only does that when the aggregate
is attached to something Google will show stars for. This tool emits both, nested under the
thing being reviewed, so the stars have a subject.
“From testimonials” builds one Review per row and the aggregate from
their ratings. “From star counts” skips the individual reviews and builds the
aggregate from the distribution — the same arithmetic as the
star rating calculator, so you never type a
rating you could compute.
02 Why the rating is computed, not typed
Most schema generators hand you a box labelled “rating value” and let you write 4.9 in it. The number Google shows is then a number one person chose. Here the aggregate is derived: from the rows you entered, or from how many reviews sit at each star. Thirty-two five-star and two one-star reviews are a 4.45, whatever the badge on the door says, and a markup that states it is one that survives a reader checking it against the page.
03 Who gets stars: Google's rule for self-collected reviews
Google shows review stars for products, courses, software, books, recipes and a handful of
other things — and not for an organization or a local business describing reviews it
collected about itself. A consultancy marking up its own client testimonials as
Organization reviews gets valid markup and no stars; the same goes for a
clinic, an agency, a coach’s own page. That is a platform decision, not a fault in
the markup, and every generator that lets you emit an aggregate for those types is handing
you something that will never render.
So this one does not. Pick Organization, Local business or Service and the output keeps the reviews and drops the rating, and the verdict line above the checklist says so. What still works for those pages is the thing the markup was describing anyway: the testimonials themselves, visible, with names — and if you sell a course or a product alongside the service, mark up that, with the reviews that are about it.
04 The markup has to match the page
Structured data describes what a visitor can see. Every review in this JSON-LD should be readable on the same page, with the same name and the same stars; an aggregate should be the aggregate of reviews the page actually shows. That is the one check the tool cannot run for you, which is why it sits in the checklist as a reminder rather than a tick.
If the testimonials are not on the page yet, put them there first — the testimonial HTML generator turns the same quotes into a section with no JavaScript, and the two outputs are meant to be pasted together. Note that a widget rendered by a script is content a search engine has to execute JavaScript to see; Google does, and this markup describes what it will find there.
Collect the testimonials this markup describes with a Testymo form: it captures the author, the rating, the quote, the date and the permission to publish, and one script tag puts the approved ones on your page. The markup stays yours to place beside them — the widget draws the quotes and does not emit it.
05 Questions this page gets
- Does Testymo’s widget add this markup for me?
- No. The widget draws the testimonials; the structured data is yours to place in the page’s HTML, and this tool builds it from the same quotes. Keep the two in step when a testimonial is added or retired.
- Can it read my reviews from Google, Trustpilot or G2?
- No — the page talks to nothing. It also would not help: reviews imported from a third-party platform and marked up as your own are exactly what Google’s self-serving rule covers. Use the reviews you collected and show on your own page.
- I sell coaching. Which type do I pick?
- If people are reviewing a course or a program you sell, pick Course and name it. If they are reviewing you as a business, that is Organization, and the honest answer is testimonials on the page without a star aggregate.
- Why a ten-point best rating?
-
Because some forms — Testymo’s among them — ask on a ten-point scale.
The markup carries
bestRatingeither way so a reader knows what a 9 means. - Do you store what I type in?
- No. The generator runs entirely in your browser; nothing you type is sent or kept, and the page-view measurement on this site counts the visit, never the text.
More free tools
- Testimonial slider & HTML generator I need a testimonial slider or section, as code I can paste.
- Testimonial request generator How do I actually word the ask?
- Testimonial question picker What should I actually ask my customers?
- Testimonial image generator How do I turn this quote into something postable?
- Google review link generator How do I send someone straight to my Google review box?
- Star rating calculator What's my average rating — and how many 5-star reviews until it moves?
- Star rating HTML generator How do I show my star rating on my site — as code or an image?