Add Google reviews to Magento
Magento — Adobe Commerce — builds pages with Page Builder, which is enabled by default. The snippet goes into an HTML Code element. If your editor is a plain text area with an Edit with HTML button, Page Builder is switched off on your install and you can paste straight into that instead.
The snippet
Build a widget in the app, press Install, and you get three lines:
Copy it from the app rather than from here — your-widget-id is unique to each widget you build, and a placeholder id is the single most common reason a widget renders as Unable to load reviews.
Reviews on one page
A block of reviews on a CMS page, or in a reusable block you can drop into several.
- In the Admin sidebar go to Content → Elements → Pages and edit the page. (For something reusable, Content → Elements → Blocks works the same way.)
- Expand the Content section to open Page Builder.
- In the panel, expand Elements and drag HTML Code onto the stage.
- Hover the container, press the settings gear, and paste all three lines into the box.
- Press Save.
That is the whole job. Published, the page shows this — a live widget, running the same snippet described above:
What our customers say
Verified by ReviewsPluginA badge on every page
Magento has a field for exactly this — content that must sit just before the closing </body> on every page of a store view.
- Go to Content → Design → Configuration.
- Find the store view you want and press Edit.
- Open the Footer section and paste your badge snippet into Miscellaneous HTML.
- Press Save Configuration, then flush the cache when Magento asks.
</body> tag on every page of that store view — the built-in field for exactly this, with no module required.
Design Configuration is per store view, so a multi-store install needs the snippet on each view you want it on. This field is the built-in, no-code answer and it is the right one for a badge. For anything more involved — a widget that has to appear at a specific point inside several layouts — a small module or a layout XML update is more predictable than repeating a CMS block, and it deploys with the rest of your code.
Before you decide it failed
Four checks, in this order
- Look at the published page, not the editor. Most builders do not run third-party JavaScript inside their own canvas, so an empty box there means nothing either way.
- Count the loaders. View source and search for
embed.js. It should appear exactly once, however many widgets the page has. - Check both widths. Reviews are taller on a phone than you expect, and some containers clip rather than grow.
- Confirm the attribution is visible and still a sibling of the widget, not inside it — on the free plan that is a condition of use.
If nothing appears
Magento hides its failures behind caches more than most:
- The cache was not flushed. This is the answer far more often than anything else. System → Cache Management, flush, then reload.
- You edited the wrong scope. Design Configuration is per store view. Changing the default scope does not always reach a specific view that overrides it.
- Content Security Policy — but check before you chase it. Since 2.4.7 Magento ships CSP in restrict mode only for payment pages, and in report-only mode everywhere else, so an ordinary page with reviews on it is not blocked by default. If your project has widened restrict mode, the fix is not an admin setting: an external host is allow-listed by adding a
csp_whitelist.xmlto theetcfolder of a module, which makes it a developer task. Confirm it first — the browser console names the blocked host and the directive. - Check the widget id. Unable to load reviews means the script ran and the id in
data-rpidoes not match a widget.
Still nothing? Send us the page address and we will look at it.
Where this was checked
Admin screens get renamed. These are the pages this guide was written against, and what each one settles — checked August 2026.
- Page Builder — HTML Code element.
- Design configuration — the footer Miscellaneous HTML field.
- Content security policy overview — which pages are in restrict mode by default, and that allow-listing a host means a
csp_whitelist.xmlin a module.
Selling on another platform? Shopify, PrestaShop, or go back to all platforms.