Testimonials & reviews checker · Playbook
Testimonials & reviews playbook
What makes a testimonials/reviews section trustworthy, and how to fix the defects luvdisc finds.
The trust stack — in order of what kills it first
- It renders nothing. A review widget whose vendor script loaded but the feed came back empty is the highest-impact defect: the page promises reviews and delivers a blank box. This is the “review widget is blank / not syncing” helpdesk ticket. Fix: log into the review provider (Birdeye, Podium, Trustindex, etc.), check the feed/location is connected and published, and re-check the page. A provider API key can expire; a feed can be paused; a location can be disconnected.
- It’s placeholder copy. “Lorem ipsum”, “testimonial goes here”, “add your review” inside the section body reads as fake. Real patients scroll past it and think the whole site is staged. Fix: remove the placeholder; either ship real reviews or hide the section until you have them.
- It’s stale. A wall of five-year-old praise on a live practice says “we used to be good.” Fix: solicit current reviews (post-visit text/email asks), or at minimum update the section.
- It has no schema. A page that clearly shows reviews but has no
Review/AggregateRatingJSON-LD gives away star rich results in Google. Fix: add anAggregateRatingblock (withreviewCountandratingValue) and/orReviewitems. Match the visible reviews — schema that claims reviews the page doesn’t show is a different, worse defect. - Nobody can leave one. A happy patient who wants to write a review has to find the practice’s Google/Yelp/RealSelf/Healthgrades profile themselves. Fix: add a “Leave a review” link (Google review shortlink, Yelp, RealSelf) near the testimonials.
Schema shape (recommended)
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"name": "Practice Name",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "317"
}
}
Review items (one per testimonial) let Google surface individual stars and quotes:
{
"@type": "Review",
"author": { "@type": "Person", "name": "Patient Name" },
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"reviewBody": "…",
"datePublished": "2026-03-01"
}
After a fix
Re-run luvdisc. The region should report textLen ≥ 40 or at least one recognisable quote block;
an added schema flips the schema readout to AggregateRating/Review; a fresh date clears the
stale/no-dates findings.