We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.
Testimonials hubs with CollectionPage of Reviews, AggregateRating, FAQs, and breadcrumb navigation.
Represents the testimonials hub page.
Captures individual testimonials with rating, author, and body.
Answers how testimonials are sourced and updated.
Provides navigation context to the testimonials hub.
Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).
Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.
[
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"@id": "https://www.example.com/testimonials#page",
"name": "Customer Testimonials",
"description": "Real stories from customers using Example Platform.",
"url": "https://www.example.com/testimonials",
"mainEntity": {
"@type": "Review",
"@id": "https://www.example.com/testimonials/acme-logistics#review"
}
},
{
"@context": "https://schema.org",
"@type": "Review",
"@id": "https://www.example.com/testimonials/acme-logistics#review",
"name": "Enabled 22% faster delivery",
"reviewBody": "Example Platform helped us cut delivery times by 22% with better routing and analytics.",
"datePublished": "2025-01-15",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5,
"bestRating": 5
},
"author": { "@type": "Person", "name": "Dana Singh" },
"itemReviewed": { "@id": "https://www.example.com/#org" }
},
{
"@context": "https://schema.org",
"@type": "AggregateRating",
"@id": "https://www.example.com/testimonials#rating",
"ratingValue": 4.8,
"reviewCount": 128,
"itemReviewed": { "@id": "https://www.example.com/#org" }
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Where do the testimonials come from?",
"acceptedAnswer": {
"@type": "Answer",
"text": "They’re sourced from verified customers via surveys, G2/Capterra permissions, and case studies."
}
},
{
"@type": "Question",
"name": "How often are they updated?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We refresh testimonials quarterly and rotate new quotes as they’re approved."
}
},
{
"@type": "Question",
"name": "Do you edit for clarity?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We lightly edit for grammar and length but keep the customer’s meaning intact."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Testimonials", "item": "https://www.example.com/testimonials" }
]
}
]Include it if you display an aggregated score on the page. Ensure reviewCount and ratingValue match what’s shown.
Add one Review object per testimonial shown. Keep author names and quotes aligned to the visible content.