DEV Community

Gyubin Kim
Gyubin Kim

Posted on

Reviews & AggregateRating: The Citation Multiplier AI Looks For (2026)

Series: Getting Cited by AI — Post #5. Post #1: How to Get Cited by ChatGPT → · Post #2: Why AI Recommends Your Competitor → · Post #3: Copy-Paste Schema Templates → · Post #4: Is Your Site Blocking the AI Crawlers? →

By now you've got the crawler letting the bots in (Post #4), your facts labeled in schema (Post #3), and answer-shaped copy on the page (Posts #1–2). There's one signal left that quietly decides which of several legible businesses an AI assistant actually names — and it's the one most small sites leave on the table.

Reviews. Not just having them — making them machine-readable and consistent across the web.

When someone asks ChatGPT or Perplexity "who's the best roofer near me?", the model isn't only checking who exists. It's checking who looks trusted and verifiable. A business with a visible, structured rating reads as a safer thing to recommend than an identical business with no rating signal at all. This post is about turning the reviews you already have into a citation signal.

One honest caveat up front: structured reviews don't guarantee a citation, and you must never fabricate ratings or invent review counts — that's both dishonest and a schema violation that can get your markup ignored or penalized. Everything below assumes you mark up only real, verifiable numbers that match what's publicly visible. If you have two reviews, you mark up two.


Why reviews are a multiplier, not just a checkbox

Schema tells the model what you are. Reviews tell it whether to vouch for you. The difference matters because answer engines are optimizing to not embarrass themselves — a wrong or sketchy recommendation is worse for them than no recommendation. Three things make reviews punch above their weight in 2026:

  1. They're a trust proxy the model can quantify. "4.8 from 130 reviews" is a number it can compare across candidates. Vague social proof ("trusted by locals!") is not.
  2. They appear in multiple sources at once. Your Google Business Profile, your site, and directories all carry the same rating — that cross-source agreement is exactly the consistency signal from Post #2. When all three agree, confidence goes up.
  3. Review text is quotable. When a customer writes "they fixed our leak the same day," that sentence is answer-shaped content the model can lift to justify naming you. Your own marketing copy can't do that — it's not credible coming from you.

The 10-minute review-signal audit

Do these in order. No developer required for steps 1–4.

1. Count your real, public rating. Open your Google Business Profile (or Yelp, or the platform where you have the most reviews). Note the exact average and exact count. This is your source of truth — every other place must match it.

2. Check your site for any rating display. Most small sites show reviews as a screenshot or a wall of unlabeled testimonials. To a crawler, a screenshot is invisible and unlabeled text is just decoration. If your rating isn't in text + schema, it doesn't count as a signal.

3. Check consistency across sources. Does your Google rating roughly match Yelp/Facebook/industry directories? Wild disagreement (4.9 one place, 3.2 another) reads as noise and weakens all of them. You can't fake the numbers up, but you can make sure stale/duplicate listings aren't dragging the average.

4. Check for individual review markup. Do you have a few standout reviews quoted as text on your site (not images)? These are the quotable sentences models love.

5. Validate any existing markup. If you (or a plugin) already output AggregateRating, paste your page URL into validator.schema.org and confirm the numbers match reality and parse cleanly.

If you fail steps 2 or 4, the fix is below.


Copy-paste: AggregateRating + Review markup

Drop this into the <head> of your homepage or a dedicated reviews page. Replace every value with your real, public numbers. Do not invent. If a field doesn't apply, delete it rather than guessing.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "YOUR BUSINESS NAME",
  "url": "https://yourdomain.com",
  "telephone": "+1-555-555-5555",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "City",
    "addressRegion": "ST",
    "postalCode": "00000",
    "addressCountry": "<your ISO country code, e.g. GB/AU/CA/SG/IN — don't ship unverified>"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "130",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": { "@type": "Person", "name": "First L." },
      "datePublished": "2026-05-12",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "They fixed our roof leak the same day we called. Honest pricing, no upsell."
    },
    {
      "@type": "Review",
      "author": { "@type": "Person", "name": "Second R." },
      "datePublished": "2026-04-28",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "Showed up on time, explained everything, cleaned up after. Would hire again."
    }
  ]
}
</script>
Enter fullscreen mode Exit fullscreen mode

Three rules that keep this honest and working:

  • ratingValue and reviewCount must match what's publicly visible (e.g. your Google profile). Mismatched numbers are the #1 reason this markup gets ignored.
  • Every review you mark up must be a real review that actually appears somewhere a person can verify — ideally also shown as visible text on the same page. Don't mark up reviews that exist only in the JSON.
  • Use real first name + last initial (or however the reviewer is publicly shown). Don't anonymize to "A Customer" — that reads as synthetic.

Make the reviews visible and readable (not screenshots)

Schema without visible text is fragile. Pair the markup above with real on-page text:

  • Put your rating in a headline as text: "Rated 4.8 ★ across 130 reviews" — not baked into an image.
  • Quote 3–5 reviews as text on the page. This is the quotable raw material for live-retrieval answers.
  • If your platform shows reviews via an embedded widget (an <iframe>), assume crawlers may not read inside it — add a plain-text version alongside it.

This is the same principle from Post #2: facts trapped in images don't count. Ratings are facts.


Don't just mark up reviews — get more of them

The signal is only as strong as the underlying number. Two low-effort, honest plays:

  1. Ask, with a direct link. After a finished job, text or email the customer a one-tap Google review link. The single biggest reason small businesses have 6 reviews instead of 60 is that they never ask.
  2. Reply to every review, good or bad. Replies add fresh, relevant text to the listing and signal an active, real business — which is exactly the "is this legit?" question the model is trying to answer.

Neither requires new software. Both compound.


Where this sits in the priority order

Reviews are a multiplier, which means they multiply something. If the bots can't reach you (Post #4) or your facts aren't legible (Posts #1–3), there's nothing to multiply. So the order stands:

  1. Access — let the crawlers in (Post #4)
  2. Labeling — schema your core facts (Post #3)
  3. Trust — structured, consistent, visible reviews (this post)

Do them in that order and you've covered the full stack of "why AI ignores me."


FAQ

I only have 4 reviews. Should I still mark them up?
Yes — mark up the real 4. A small honest number beats no signal, and it's truthful. Then run the "ask with a link" play to grow it.

Can I mark up reviews from Google/Yelp on my own site?
Mark up reviews you can legitimately display and that a person can verify. The safest pattern is reviews collected on or syndicated to your own site. Don't scrape and re-host a platform's reviews in a way that violates its terms — when in doubt, quote a few as visible testimonials with attribution and mark those up.

Will AggregateRating get me star ratings in Google again?
Google has changed self-serving review snippet rules over the years for LocalBusiness, so don't count on stars in classic search. This post is about AI citation trust, which is a separate (and currently more lenient) consumer — the markup still helps models assess you even when Google hides the stars.

Is more reviews or higher rating more important?
Both, but consistency and recency matter more than chasing a perfect 5.0. A 4.7 with 120 recent reviews reads as more real than a 5.0 with 3 reviews from 2021.

Does fake-but-positive review markup ever work?
No — and don't. It's dishonest, it violates schema guidelines, and a mismatch with your public profile is exactly what gets your entire markup discounted. Real numbers only. This whole series only works because the markup is true.


Two ways to act on this:

🔎 Free, no-strings: send your site URL to faithpath25@gmail.com with the subject "GEO snapshot" — I'll send back a 1-page read of exactly what AI assistants can and can't currently see on your site, plus the specific fixes. Free pilot, wherever you operate; if it's useful, a short review is all I ask.

🧰 Do it yourself: the copy-paste schema kits, checklists, and the full GEO audit live at SprintLanding → (includes a free starter). Prices in USD; Gumroad converts to your local currency at checkout.

Top comments (0)