← Back to blog

How to Show Google Reviews on Your Website Securely

August 11, 2026
How to Show Google Reviews on Your Website Securely

For most professional-service websites, the right move is a hosted Google-approved review widget or a server-side implementation like the one Epdwebsites builds for clients. Both approaches keep your Google API key off the browser, sync automatically, and get social proof in front of visitors within days, not weeks.

Here is why those two paths beat the alternatives:

  • Speed to live: A hosted widget or a managed install takes hours, not a development sprint.
  • Security: Keeping your API key server-side means it never appears in your page source for anyone to scrape and abuse.
  • Automatic sync: Both approaches poll Google on a schedule, so new positive reviews show up without you touching anything.
  • Compliance: The Google Places API and Google Business Profile API are the official, sanctioned channels for pulling review data onto an external site.

The single most important thing to know before you start: Google does not offer a simple copy-paste widget you can drop into any site and expect full review display. Official guidance confirms that site owners must use the APIs or a third-party widget built on top of them. Plan for that from the beginning and you will avoid a lot of frustration.


Key Takeaways

Displaying Google reviews on your website requires either a third-party widget built on the Google Places API or a server-side implementation that caches review data and keeps your API key off the browser.

PointDetails
No official paste-and-go widgetGoogle requires API access or a third-party widget; there is no single official embed code.
API key must stay server-sideNever place your Google API key in front-end HTML or JavaScript; use a server-side proxy or a hosted widget that handles credentials for you.
Places API returns 5 reviews maxThe Places API returns only the five most recent reviews per request; server-side caching is required to build a larger display.
Placement drives conversionsHomepage trust strips, service pages, and the contact page are the highest-impact locations for a review display.
Epdwebsites for managed installsEpdwebsites provides secure setup, CMS integration, responsive QA, and 30-day monitoring for professional-service sites.

Table of Contents

What are the realistic ways to show Google reviews on your site?

Five approaches cover nearly every situation. The table below maps each one against the dimensions that matter most for a professional-services firm.

OptionEase of setupCostCustomizationAPI key safetyAuto-syncReviews shownPortability
Hosted third-party widgetVery easy (no code)Free tier or paid tierModerate (widget themes)Provider holds keyYes, typically hourlyVaries by planLow (provider-dependent)
CMS plugin (e.g., WordPress)Easy (install + connect)Free or paid pluginModeratePlugin holds keyYes, if plugin supports itVaries by pluginMedium
Manual single-review embed/linkTrivialFreeNoneNo API neededNo (manual update)One at a timeFull
Developer/API + server-side cacheRequires a developerAPI quota costs + dev timeFullYou control itYes (cron schedule)Unlimited with cachingFull
Hire a pro (e.g., Epdwebsites)Zero effort for youProject feeFullHandled for youYes, monitoredUnlimited with cachingFull

Who each option fits:

  • Solo practitioners or small practices who want something live today: a hosted widget is the fastest path.
  • WordPress-based sites with a technical admin: a well-maintained plugin gives a good balance of control and ease.
  • Landing pages or hero testimonials: a single manually embedded review works fine and costs nothing.
  • Multi-location businesses or firms that need full design control: the developer/API route with server-side caching is the only way to store more than the five most recent reviews the Places API returns per request.
  • Professional-service firms that want a maintained, secure setup without managing it themselves: Epdwebsites handles the full implementation.

How do you add a Google Reviews widget or plugin without coding?

This walkthrough works for any hosted widget or CMS plugin. No developer required.

  1. Confirm your Google Business Profile is verified. Log in at business.google.com and check that your listing shows "Verified." Unverified profiles cannot be reliably accessed by third-party tools.

  2. Find your Place ID. Go to the Google Place ID Finder, search for your business name, and copy the Place ID (it looks like ChIJ...). You will need this string for almost every widget or plugin.

  3. Choose your tool. For a hosted widget, sign up for a service that connects to the Google Places API. For a WordPress site, search the plugin directory for a Google Reviews plugin with recent updates and active support.

  4. Connect and authorize. Paste your Place ID into the widget dashboard or plugin settings. Some tools ask you to authorize via Google OAuth; others use a pre-configured API key on their own servers. Either way, you should not be asked to paste a raw API key into your site's front-end code.

  5. Customize the layout. Choose a carousel, grid, or list format. Set a minimum star rating filter if the tool allows it, but read the next point before you do.

  6. Keep it honest. Filtering to show only five-star reviews is not inherently against Google's terms, but it erodes trust when visitors notice the pattern. A mix of four- and five-star reviews with thoughtful responses to lower ones actually converts better. Always include a visible "Write a review" link pointing back to your Google Business Profile so visitors can verify authenticity and add their own feedback.

  7. Copy the embed code and paste it into your site. Most widgets give you a <script> tag or an iframe. Paste it into the relevant page section (see CMS-specific notes below).

Pro Tip: After pasting the embed code, open the page in an incognito browser window and check that reviews load without a console error. The most common failure at this stage is an "origin blocked" error, which means the widget provider's API key is restricted to certain domains and yours was not added. Contact the provider's support with your domain name to resolve it.


CMS-specific notes: where exactly do you paste the code?

WordPress

Paste the widget's <script> tag into a Custom HTML block in the Gutenberg editor, or drop it into a Text widget in Appearance > Widgets if your theme uses a classic sidebar or footer widget area. Most page builders have a dedicated HTML or Code module that accepts the same tag.

WordPress plugins that specialize in Google Reviews typically add a shortcode you can drop anywhere: [google-reviews place_id="ChIJ..."]. Check that the plugin was updated within the last six months and is compatible with your current WordPress version before installing.

Compatibility note: Some security plugins (Wordfence, iThemes Security) block external script loading by default. If your reviews widget goes blank after install, temporarily disable the security plugin to confirm it is the cause, then whitelist the widget's domain.

Squarespace

Use a Code Block (Insert > Code) on any page or section. Squarespace enforces a Content Security Policy that can block scripts from domains it does not recognize, so test immediately after adding the block. If the widget renders in the editor but not on the live site, the CSP is likely the culprit. You may need to contact Squarespace support or switch to a widget provider that Squarespace explicitly supports.

Wix

Wix does not allow arbitrary <script> tags in the page body, but it does support HTML iframes via the Embed HTML element (Add > Embed > Embed a Widget). Paste the widget's iframe code there. Alternatively, check the Wix App Market for a Google Reviews app, which handles the iframe sandboxing for you. After adding, preview on mobile: Wix iframe embeds sometimes need a manual height adjustment to display correctly on small screens.

Platform caveat for all three: if your CMS exposes API keys in front-end source code at any point during setup, that is a red flag. Either switch to a widget provider that keeps the key on its own servers, or plan a server-side proxy. Exposing a live API key in client-side HTML is the fastest way to burn through your Google Maps quota and face unexpected billing.


What does a secure developer implementation actually look like?

When you need full design control, more than five reviews, or a setup that does not depend on a third-party widget provider's uptime, the developer path is the right call. Here is the architecture that holds up in production.

Core components:

  • Server-side fetcher: A cron job or scheduled function that calls the Google Places API or Google Business Profile API on a set interval (every hour, every six hours, whatever your freshness requirement is) and writes results to a cache store.
  • Cache store: A database table or disk-backed file that holds the full review payload. Because the Places API returns only the five most recent reviews per request, polling over time and accumulating results is the only way to build a larger historical set.
  • Embeddable endpoint: A lightweight /api/reviews route on your own domain that reads from the cache and returns origin-validated JSON. The client never talks to Google directly.
  • Client-side widget: A small widget.js that requests your /api/reviews endpoint, renders the HTML, and handles graceful degradation if the endpoint is slow or unavailable.

API details to plan for:

  • The Google Maps JavaScript API returns displayName, rating, text, and publishTime fields via Place Details requests with fetchFields.
  • The Google Business Profile API supports accounts.locations.reviews.list and related endpoints, which is the right choice for multi-location firms. It requires OAuth scopes and application registration.
  • Both APIs have quota limits. Plan for rate-limit handling in your fetcher so a quota error does not crash the cache write.

Security checklist:

  • Never hardcode API keys in front-end HTML or JavaScript files committed to version control.
  • Store credentials in environment variables or a secrets manager (AWS Secrets Manager, Doppler, or similar).
  • Enforce Origin and Referer header checks on your /api/reviews endpoint so only your own domain can request it.
  • Rotate API keys on a schedule and immediately if a key is ever accidentally exposed.

Pro Tip: Implement atomic cache writes so a failed API call never leaves you with a half-written cache file. Add a /health endpoint that returns the age of the last successful cache write. If that age exceeds two polling intervals, fire an alert. This one addition saves hours of debugging when something quietly stops syncing.


How do you embed or share a single Google review for free?

Sometimes you just need one strong testimonial on a landing page. No API, no widget, no monthly fee.

  1. Find the review on Google Maps. Search your business name, open the Reviews tab, and locate the review you want to share.

  2. Click the share icon on that specific review. Google gives you a direct link to that review on Maps.

  3. Use it on your site. You have two clean options: paste the link as a "Read our reviews on Google" text link, or take a screenshot of the review and display it as an image with a caption that includes the reviewer's name and the direct URL to the original. The caption and link let visitors verify the review is real.

  4. Add accessible alt text to any screenshot: something like "Five-star Google review from [Reviewer Name] — click to verify on Google Maps." This serves screen readers and reinforces authenticity.

This approach works well for a homepage hero section or a service page where one powerful quote does the job. It is not appropriate to screenshot a review and present it without the source link, since that removes the visitor's ability to verify it. Linking back to the original on Google keeps the display honest and can increase trust with visitors who are evaluating you for the first time.


Where should you place reviews, and how do you design them to convert?

Placement matters as much as the reviews themselves. Here is where each location earns its keep.

Homepage trust strip: A row of star ratings and two or three short review excerpts near the top of the homepage signals credibility before a visitor reads a single word of your copy. For attorneys and CPAs especially, this placement reduces the friction that comes with high-stakes hiring decisions.

Service pages: Pair a review with the specific service it mentions. A client praising your estate planning work belongs on the estate planning page, not buried in a general testimonials section. This specificity is more persuasive than a generic five-star rating.

Website homepage showing review trust strip

Contact page: A short review strip just above the contact form is one of the highest-leverage placements on any professional site. Visitors on the contact page are already considering reaching out; a timely reminder of what past clients say can tip the decision.

Dedicated testimonials page: Useful for SEO and for visitors who want to do deeper due diligence, but do not rely on it as your only placement. Most visitors never navigate there unless you link to it prominently.

On cherry-picking: showing only your best reviews is tempting, but a mix of four- and five-star reviews with professional responses to the occasional three-star reads as more credible than a wall of perfect scores. Visitors are not naive. A thoughtful reply to a critical review often does more for trust than ten glowing ones.

How many to show: Three to five reviews in a carousel or grid is enough for most pages. More than that and visitors stop reading. Sort by a mix of recency and rating rather than rating alone.

Conversion CTA: Every review display should sit near a "Write a review" button that links directly to your Google Business Profile review form. Practitioners consistently find that a visible CTA on the same page as existing reviews generates more new reviews than a CTA buried in a post-service email.

Pro Tip: Lazy-load your review widget so it does not block the initial page render. A widget that fires on scroll rather than on page load can meaningfully improve your Core Web Vitals scores, which feed directly into Google's ranking signals.


What ongoing maintenance and compliance do you need to plan for?

Routine maintenance

  • Sync frequency: Most hosted widgets refresh every one to four hours. A custom server-side implementation should poll at least daily; hourly is better for active practices.
  • Cache pruning: Set a retention policy. Keeping every review ever fetched is rarely necessary; a rolling 12-month window covers most use cases.
  • Quota monitoring: Set up alerts for Google API quota errors. A silent quota failure means your widget shows stale data with no warning to you or your visitors.
  • Logging: Log every successful and failed API call with a timestamp. When something breaks, logs are the only way to diagnose it quickly.

Google policy requirements

The Google Maps JavaScript API terms require that you display author attribution (name and profile photo link) alongside any review text you surface. You may not alter review text, strip author names, or present reviews in a way that misrepresents their source. When linking to Google Maps or a Business Profile, follow Google's branding guidelines: use the correct Google logo assets and do not imply endorsement.

On review authenticity: Google's policies prohibit incentivizing reviews, posting fake reviews, or selectively removing negative ones from your display in a way that misrepresents your overall rating. Your display should reflect your actual standing, not a curated highlight reel. This is both a policy requirement and a trust issue with your own clients.

Privacy and security checklist

  • Store any cached review data (which includes reviewer names and profile URLs) in a secured database with access controls.
  • Never expose your Google API key in front-end HTML, JavaScript, or a public repository.
  • Apply Origin and Referer validation on any /api/reviews endpoint you expose.
  • Document your data retention policy for cached reviews in your privacy policy if you operate under any state privacy law (California's CCPA, for example, covers personal data in business systems).
  • Set a fallback display that shows the last-known cached data if the API is temporarily unavailable, rather than a blank section.

When should you hire a pro, and what does Epdwebsites do for clients?

For a solo practitioner with a simple WordPress site, a well-chosen plugin is probably enough. For a law firm, CPA office, or medical practice where the website is a primary client acquisition channel, a maintained, secure implementation is worth the investment.

Here is the workflow Epdwebsites follows for Google Reviews integrations:

  • Audit: Verify the Google Business Profile is claimed, verified, and has enough reviews to display meaningfully.
  • Strategy: Choose between a hosted widget and a server-side implementation based on the site's CMS, hosting environment, and review volume needs.
  • Implementation: Set up server-side fetching and caching, or configure a vetted hosted widget with proper API key handling. Embed the display in the agreed page locations.
  • QA: Test on desktop, tablet, and mobile. Confirm reviews load, attribution displays correctly, and no API keys appear in the page source.
  • Monitoring: Ongoing checks for sync failures, quota errors, and widget display issues, with monthly updates as part of the hosting plan.

Why this matters for professional services specifically: a broken or blank review section on an attorney's or CPA's website does not just look unprofessional. It actively undermines the trust signal you installed it to create. A maintained implementation with a fallback display means your social proof is always visible, even during a Google API hiccup.

For multi-location businesses, the Google Business Profile API supports batch review retrieval across locations, but it requires OAuth registration and careful account-level access controls. That is exactly the kind of setup that benefits from professional implementation rather than a DIY approach.


A quick perspective from the web design team

Secure, maintained review displays are not optional for professional-service firms anymore. A potential client who lands on your site and sees no social proof will simply move to the next result. The technical barrier is low enough that there is no good reason to leave that trust signal off the table.

The one action worth doing today: look up your Place ID using the Google Place ID Finder and add a "Write a review" link to your contact page. Both take under five minutes and cost nothing. The Place ID is the key you will need for any implementation path you choose later.


Epdwebsites handles the full Google Reviews setup for you

Getting Google reviews on your website the right way means a secure API setup, a display that matches your brand, and someone watching it after launch. Epdwebsites delivers all three: server-side key handling, CMS-compatible integration, responsive design across devices, and monthly monitoring so your review feed never goes dark.

Epdwebsites

The website add-ons service covers everything from the initial audit through 30-day post-launch monitoring:

  • Google Business Profile audit and Place ID verification
  • Secure widget install or server-side implementation
  • Desktop, tablet, and mobile QA testing
  • 30-day monitoring for sync errors and display issues

See the full scope of what is included on the website features page, or reach out directly to request an implementation estimate.


Sources

These are the primary sources for verifying technical constraints and staying current with API changes.