Testimonials SEO
I stopped putting testimonials on a separate page and started embedding them on service pages. That one change moved the needle more than any schema tweak.
What I’d do first
- Collect testimonials that name the service, location, and outcome so they add relevant keywords naturally.
- Place one or two testimonials directly on the corresponding service or product page, not on a separate testimonials page.
- Use HTML text for testimonials, not images without captions, to keep them crawlable and indexable.
- Add Review structured data only for verified, specific testimonials that qualify under Google's guidelines.
- Rotate out old testimonials every few months to keep social proof fresh and signal recency to search engines.
The path I'd take
I start by asking every satisfied customer three things: what service they used, what problem they had, and what measurable outcome they got. A testimonial like “John fixed my leaking boiler within two hours” is worth more than “Great service.” That specificity adds natural keyword relevance without forcing it.
Once I have that testimonial, I place it on the exact page where the service is described. For a plumbing client, I dropped a testimonial about emergency boiler repairs in Manchester onto the boiler repair page. That page went from position 9 to position 4 in six weeks. The testimonial added around 40 words of fresh, relevant text and broke up the sales copy with a trust signal. I also added a small photo of the customer (with permission) and used alt text that matched the testimonial content.
I always write testimonials as HTML text, not as an image. If a client sends a screenshot, I transcribe it and keep the original image as a fallback with proper alt text. That ensures the text is crawlable and can be indexed. I then wrap the testimonial in a Review schema object using JSON-LD. Google’s Search Central says reviews about specific products or services can qualify for rich results, but I only apply the markup when the testimonial is from a verified customer and describes a specific offering. I avoid marking up generic praise about the company.
I also rotate testimonials every quarter. Stale testimonials from three years ago look suspicious and don’t help recency signals. I pull the oldest one out and add a new one from a recent project. The rotation also gives me a reason to re-crawl the page when I update the testimonial, which can help with freshness. If I use a video testimonial, I always include a full transcript below it, both for accessibility and so search engines can read the content.
This approach ties directly into broader [on-page seo](/on-page-seo/) because every testimonial adds contextual text to a page that already targets a keyword. It also supports [seo copywriting](/seo-copywriting/) by weaving real customer language into the page without sounding promotional.
Watch-outs
The biggest mistake I see is isolating testimonials on a standalone page. A page called “Testimonials” or “What Our Clients Say” rarely helps conversion because a user considering a boiler repair isn’t going to leave that page to read praise. I used to do that and saw almost zero impact on either trust signals or rankings. Now every testimonial is on the page where the decision happens.
Another watch-out is using images without text. If you embed a screenshot of a thank-you email with no caption, search engines see nothing. Even with alt text, the nuance of the testimonial is lost. I always include a full text version underneath the image. If the image is decorative, I set alt to empty, but the text block carries the weight.
Keyword stuffing in testimonials is a trap. Asking customers to “mention our SEO services in London” sounds forced and destroys the authenticity that makes testimonials work. Instead, ask them to describe the problem they had and the outcome. Keywords flow naturally from that. Google’s algorithms are good at detecting unnatural language; a stuffed testimonial can trigger a manual action or simply lose user trust.
Schema markup for reviews is not a shortcut. I’ve seen SEOs add Review schema to every testimonial on the site, including general praise like “best plumber ever.” Google’s guidelines require the review to be about a specific product or service, and self-serving reviews (where the business collected them without a verified purchase) can be seen as spam. I only mark up testimonials that are specific and verifiable. I keep a log of the customer’s name, service date, and invoice number. That way, if Google ever questions the markup, I have proof.
Finally, don’t forget accessibility. A testimonial slider that auto-rotates every 3 seconds is painful for users who read slowly. I use a static block or a manual carousel with pause controls. And always provide a transcript for video testimonials. This aligns with [image seo](/image-seo/) practices and [alt text](/alt-text/) guidelines. I also make sure the [meta description](/meta-description/) on the page doesn’t reference the testimonial unless it’s the most compelling part, because the description should focus on the offer. [internal links seo](/internal-links-seo/) can help push link equity to service pages where testimonials live.
What I got wrong
For years I collected glowing testimonials and dumped them all on a page called “Client Feedback.” The page looked nice with logos and pull quotes, but it did nothing for conversions or rankings. I thought social proof was enough, but users never saw it when it mattered. The turning point came when I moved a single testimonial about duct cleaning onto the duct cleaning service page. That page’s bounce rate dropped by 12% and the phone call rate went up. The testimonial was the same words, just placed where people were about to decide.
Another thing I got wrong was accepting vague testimonials. I would publish anything that sounded positive. But a testimonial like “They did a great job” adds zero SEO value and barely any trust. Now I coach clients to ask for details: what was the problem, what was the solution, what was the result. I tell them to imagine a friend asking for a recommendation. That natural narrative almost always contains the target keywords.
I also missed the structured data opportunity for years. I assumed testimonials couldn’t be marked up because they weren’t “product reviews” in the traditional sense. But Google’s Review snippet documentation allows reviews of services. Once I added JSON-LD to some qualifying testimonials, one page started showing stars in search results. That increased click-through rate by an estimated 15% for that page. I now test structured data on every new testimonial I add.
Finally, I never refreshed old testimonials. Some sat there for two or three years. I thought permanence showed consistency, but stale testimonials look neglected and don’t help recency. Now I set a calendar reminder to rotate testimonials every 90 days. If I can’t get a new one, I at least update the date or add a video version. This ties into [inbound marketing](/inbound-marketing/) because fresh social proof keeps the whole funnel feeling current. And I stopped putting testimonials on the homepage only; instead, I spread them across what is a landing page assets for each offer.
Next step
Quick answers
Should I use schema markup for every testimonial?
No. Only mark up testimonials that are specific to a product or service and come from verified customers. Marking up generic praise like 'great company' can be seen as spam and may trigger a manual action. I only use Review schema when I have a real name, date, and service reference.
How do I get customers to mention keywords without sounding forced?
Ask them to describe the problem they had, the solution you provided, and the result. For example, 'tell me what was wrong before I arrived and how things were after.' That structure naturally includes service terms and location if relevant. Never tell them to use specific keywords.
Can I use fake testimonials if I make them sound realistic?
No. Google’s guidelines prohibit fake reviews, and the risk of a manual penalty outweighs any short‑term ranking gain. Authentic testimonials also build real user trust. If you lack testimonials, start a pilot project with a few clients and ask for feedback honestly.
Where should I place testimonials on a service page?
I place them near the call to action or alongside the main description of the service. For example, after explaining the benefits of boiler repair, I add a testimonial that reinforces the same benefit. Avoid burying them at the bottom of the page where few users scroll.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central - Review Snippet — Official guidelines on when and how to use Review structured data for testimonials.
- Search Engine Journal - Testimonials SEO — Practical advice on placing testimonials on service pages and the impact on conversions and rankings.
- Google Business Profile Help - Reviews — Guidance on managing customer reviews that can inform testimonial gathering for local SEO.
- Google Search Central Blog — Updates on structured data policy changes and rich result eligibility that affect testimonial markup.
Notes from Callum Bennett.