testymo.

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

Review 1
Review 2
Review 3

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>

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 bestRating either 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