Framer guide

How to add live Google reviews to a Framer site

Framer can't read your Google reviews on its own. This walks through the whole setup end to end: creating a Google API key, restricting it so it can't be abused, finding your Place ID, and dropping the component onto a frame. Around ten minutes, and most of that is Google Cloud Console rather than Framer.

Updated August 2026 · 9 min read

Works on any Framer site No account · No subscription

Before you start

You need three things, and you can get all of them for free:

You do not need a Vanssay account, a server, or a subscription. The component talks to Google directly from your site.

A note on the five review limit before you spend ten minutes. Google's Places API returns a maximum of five reviews per business. That is Google's cap, not the component's, and it applies to every review widget that works from an API key. If you need more than five, see why five below.

Step 1: Enable the Places API

Open Google Cloud Console and create a project, or pick an existing one from the dropdown at the top. The project name is only for your own reference.

Then go to APIs & Services → Library, search for Places API (New), and click Enable.

Pick the right one. There are two entries with near-identical names. You want Places API (New), not the older "Places API". The old one cannot be called from a browser at all, so the component will not work with it.

If the project has no billing account attached, Google will ask for one now. Add it. Nothing is charged inside the monthly free allowance, and what this actually costs is broken down further down.

Step 2: Create the API key

Go to APIs & Services → Credentials, click Create credentials, and choose API key. Google generates the key immediately. Copy it somewhere for a moment, it starts with AIza.

Do not close this screen yet. The next step is the one that matters.

Step 3: Restrict the key (do not skip this)

An unrestricted Google API key is a billing liability. The key travels to the visitor's browser, so anyone can read it in the page source, and an unrestricted one can be copied and used on someone else's site at your expense. A restricted key cannot. This takes thirty seconds and it is the single most important step on this page.

Click Edit API key and set both restrictions:

  1. Application restrictions → Websites. Add your live domain as https://yoursite.com/*. Add https://*.framer.website/* as well, so Framer previews and staging URLs keep working. If you use a www subdomain, add that too, Google treats it as a separate referrer.
  2. API restrictions → Restrict key. Select Places API (New) and nothing else. Now the key can only be used for this one purpose.
  3. Save. Google can take up to five minutes to apply restriction changes. If reviews do not appear straight away, wait a moment and reload.
Restricting the key breaks testing outside the browser. That is the point, and it is a good sign. A restricted key only works from the domains you listed, so any test that is not a real page load from one of them will be refused.

Step 4: Find your Place ID

A Place ID is Google's permanent identifier for a business. Open Google's Place ID Finder, type your business name and address into the search box, and click the result. The ID appears in a small card on the map and starts with ChIJ.

Copy the whole thing, including the ChIJ prefix.

Two businesses at one address? Search the exact business name rather than the address, and check the name on the result card matches. Pasting the wrong Place ID shows someone else's reviews, which is the kind of thing nobody notices for a month.

Step 5: Add the component in Framer

In your Framer project, open the Insert panel, find Google Reviews Live under your components, and drag it onto a frame. Put it on the page where you want the reviews to appear, at the width you want them to fill.

It renders sample reviews right away. That is deliberate: you can pick a layout and style it before you have gone anywhere near Google Cloud Console. The sample data disappears the moment you paste a real key, and it never appears on a published site.

Step 6: Paste the key and the Place ID

Select the component and look at the properties panel on the right. Paste your API key into API key and your Place ID into Place ID. Your real reviews replace the samples within a second.

Google Reviews Live
API keyAIza••••••••••••••••••
Place IDChIJ••••••••••••••••
LayoutTicker
Min rating4 stars and up
Max reviews5
HeaderOn
Languageauto
Refresh24h
Text#202124
Card#FFFFFF
Radius12
The properties panel, illustrated. Everything below the two credentials is styling and can be changed at any time.

What each control does:

Step 7: Publish

Publish the site as usual. The component fetches reviews on the visitor's own page load, so from here on new reviews appear on their own. You never republish to refresh them.

Load the live URL once and confirm the reviews are there. If the section is empty on the live site but fine on the canvas, it is nearly always the referrer restriction from step 3, and the troubleshooting table covers it.

What this actually costs

Google bills Places API calls to your own Cloud project, and includes a monthly free allowance. Whether you stay inside it comes down to caching, which is why the component caches by default.

1 callper visitor, per 24 hours, at the default Refresh setting
0 callsfor repeat page views inside that window, including other pages on your site
$0for a typical small business site, which sits inside Google's monthly free allowance

Without caching, every page load would be a billable call. With it, a visitor who reads five pages costs you one. You can watch the real number in Google Cloud Console under APIs & Services → Metrics, and if you want a hard ceiling, set a quota there so the API simply stops rather than bills you.

Google's current rates are on the Places API billing page. Check it yourself rather than trusting any widget's marketing, including ours, because Google changes the tiers periodically.

Five reviews, and what to do if you need more

Five is all the Places API returns. Ask for a place's reviews and Google sends at most five, chosen by its own relevance ordering. There is no parameter to request more and no paid Google tier that raises it. Every product that works from an API key you paste yourself hits the same ceiling, this one included.

For most sites that is genuinely fine. Five recent reviews under a real star average is the social proof people actually read, and it costs you nothing per month.

If you need your full review history, the reviews have to be fetched somewhere other than the visitor's browser, on a schedule, and stored. That is a different kind of product, and we make one.

Vanssay Reviews, when five is not enough

Vanssay Reviews is our hosted plugin. It syncs your reviews server-side and keeps them in sync, so the widget is not limited to what a single browser request can fetch:

The honest trade-off, so you pick the right one: Reviews is a subscription rather than a one-time purchase, and the widget loads through our servers instead of talking to Google directly. If what you want is no recurring cost and no third party in the path, the component in this guide is the better fit and five reviews is the price of that. If you want your whole review history, several platforms in one place, and none of the Google Cloud setup above, Reviews is what that looks like.

Need more than five? Vanssay Reviews syncs your full history from Google and Trustpilot, with one combined rating. Free plan available.
See Vanssay Reviews

Troubleshooting

The component tells you what is wrong, but only inside the Framer editor. On your published site a failure renders nothing at all, so visitors never see a broken box or an error meant for you. If reviews are missing on the live site, open the canvas and read the message there.

What you seeWhat to do
That API key isn't valid The key was mistyped or truncated. Copy it again from Credentials, and check there is no trailing space.
Google blocked this domain The site's address is not in the key's website restrictions. Add it exactly, including https:// and the /* at the end, and add https://*.framer.website/* for previews. Changes take up to five minutes.
This key can't use Places API (New) Either the API is not enabled on the project, or the key's API restriction does not include it. Check both, and confirm you enabled Places API (New) and not the older Places API.
Google rejected the request, check the Place ID The Place ID is malformed. It should start with ChIJ and have no spaces. Re-copy it from the Place ID Finder.
No place found for that Place ID The ID is well formed but no longer resolves, which happens when a listing is merged or removed. Search the business again and take the current ID.
Google refused the key Usually billing. Open the project's Billing page and confirm an active account is attached.
Google rate limit reached Too many calls in a short window, normally from testing with Refresh set very low. Wait a minute and put Refresh back up.
Sample reviews still showing One of the two fields is empty. The component only goes live when both the API key and the Place ID are filled in.
Empty on the live site, fine on the canvas Almost always the referrer restriction. The canvas runs on framer.com, your published site does not, so a key restricted to only one of them works in only one place. Add your live domain.
Reviews are out of date Working as intended. They refresh once the Refresh window passes, 24 hours by default. Your own browser holds its cached copy until then.
Google Reviews Live, seven layouts, styled to match your site, no subscription and no server in between. One-time purchase.
See the component

Common questions

Do I need to own the Google listing?

No. Displaying a public business listing's reviews only needs its Place ID. Ownership matters for the Business Profile API, which is the route to more than five reviews, but not for this.

Is it safe to have my API key in the page?

Yes, once it is restricted. The key is visible in the page source, which is true of every client-side Google Maps integration including Google's own examples. A key locked to your domains and to one API cannot be used anywhere else, so reading it gains an attacker nothing. An unrestricted key is a real risk, which is why step 3 exists.

Will the reviews slow my site down?

Barely. It is one request to Google, made after the page renders, and cached for the next 24 hours. Nothing blocks the page from loading, and a failed request renders nothing rather than hanging.

Can I show reviews for more than one location?

Yes. Place a second component and give it the other location's Place ID. They cache separately and do not interfere.

Can I hide bad reviews?

You can set a minimum rating, so for example only four stars and up are shown. Worth being careful with it: a page showing nothing but perfect scores tends to read as less trustworthy, not more, and shoppers frequently look for the critical ones first.

What happens if Google is unreachable?

The component keeps showing the cached copy if it has one. If it does not, it renders nothing and the section collapses. Your page never shows an error to visitors.

Sources: Places API (New) place details · Place ID Finder · Places API usage and billing · Google Maps API key security best practices.