{"id":355053,"date":"2026-08-27T18:56:48","date_gmt":"2026-08-27T18:56:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/embed-google-reviews\/"},"modified":"2026-08-27T20:00:33","modified_gmt":"2026-08-27T20:00:33","slug":"replyonthefly-widget-for-google-reviews","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/replyonthefly-widget-for-google-reviews\/","author":23549365,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"ReplyOnTheFly Widget for Google Reviews","header_author":"ReplyOnTheFly","header_description":"Show your live Google reviews on your site, written into the page so search engines and AI assistants can read them.","assets_banners_color":"ae8ef0","last_updated":"2026-08-27 20:00:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.replyonthefly.com\/google-reviews-wordpress-plugin","header_author_uri":"https:\/\/www.replyonthefly.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"replyonthefly","date":"2026-08-27 18:56:24","revision":3669415},"1.0.1":{"tag":"1.0.1","author":"replyonthefly","date":"2026-08-27 20:00:33","revision":3669462}},"upgrade_notice":{"1.0.1":"<p>Listing refresh only \u2014 updated description, FAQ and screenshots. No functional changes, nothing to reconfigure.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3669414,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3669414,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3669461,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3669461,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"replyonthefly-widget-for-google-reviews\/reviews":{"name":"replyonthefly-widget-for-google-reviews\/reviews","title":"Google Reviews"}},"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3669461,"resolution":"1","location":"assets","locale":"","width":1280,"height":636},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3669461,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3669461,"resolution":"3","location":"assets","locale":"","width":1280,"height":852},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3669461,"resolution":"4","location":"assets","locale":"","width":1280,"height":410},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3669461,"resolution":"5","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"Google reviews displayed on a live WordPress page in the grid layout, with star ratings, reviewer names and dates.","2":"Settings \u2192 Google Reviews: search for your business by name and your real Google reviews appear in the live preview, inside WordPress. No API key, no embed code.","3":"Every display option \u2014 six layouts, light or dark theme, review count, minimum star rating, sort order, and per-page keyword filters \u2014 with the shortcode ready to copy.","4":"The compact Google rating badge layout, for a header, footer or sidebar, previewed live as you pick a layout.","5":"The difference: visitors get the live widget, while AI crawlers that never run JavaScript still receive the review text as real blockquote markup in the page source."}},"plugin_section":[],"plugin_tags":[15046,21827,1519,1518,162],"plugin_category":[53],"plugin_contributors":[277949],"plugin_business_model":[],"class_list":["post-355053","plugin","type-plugin","status-publish","hentry","plugin_tags-google-business","plugin_tags-google-reviews","plugin_tags-reviews","plugin_tags-testimonials","plugin_tags-widget","plugin_category-ratings-and-reviews","plugin_contributors-replyonthefly","plugin_committers-replyonthefly"],"banners":{"banner":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/banner-772x250.png?rev=3669461","banner_2x":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/banner-1544x500.png?rev=3669461","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/icon-128x128.png?rev=3669414","icon_2x":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/icon-256x256.png?rev=3669414","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/screenshot-1.png?rev=3669461","caption":"Google reviews displayed on a live WordPress page in the grid layout, with star ratings, reviewer names and dates."},{"src":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/screenshot-2.png?rev=3669461","caption":"Settings \u2192 Google Reviews: search for your business by name and your real Google reviews appear in the live preview, inside WordPress. No API key, no embed code."},{"src":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/screenshot-3.png?rev=3669461","caption":"Every display option \u2014 six layouts, light or dark theme, review count, minimum star rating, sort order, and per-page keyword filters \u2014 with the shortcode ready to copy."},{"src":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/screenshot-4.png?rev=3669461","caption":"The compact Google rating badge layout, for a header, footer or sidebar, previewed live as you pick a layout."},{"src":"https:\/\/ps.w.org\/replyonthefly-widget-for-google-reviews\/assets\/screenshot-5.png?rev=3669461","caption":"The difference: visitors get the live widget, while AI crawlers that never run JavaScript still receive the review text as real blockquote markup in the page source."}],"raw_content":"<!--section=description-->\n<p>Add your Google reviews to any WordPress page with a block or a shortcode. Six layouts, no Google API key, and no monthly fee.<\/p>\n\n<p><strong>The difference: your reviews are in the page, not painted on afterward.<\/strong><\/p>\n\n<p>Most Google reviews plugins draw themselves with JavaScript once the page has loaded. Visitors see the reviews. Google sees them too, because Google runs JavaScript. But the crawlers behind AI assistants do not. ChatGPT, Claude, Perplexity and Google's AI Overviews read the HTML your server sends and never execute a line of JavaScript. To them, a JavaScript review widget is an empty box.<\/p>\n\n<p>This plugin writes the review text into the page itself, as real quotations with an author and a date:<\/p>\n\n<pre><code>&lt;blockquote class=\"rotf-review\"&gt;\n  &lt;p&gt;Best wings in Miami. Our server kept the drinks coming all night.&lt;\/p&gt;\n  &lt;cite&gt;Travon S. \u2014 5 out of 5 on Google on &lt;time datetime=\"2026-05-10\"&gt;May 10, 2026&lt;\/time&gt;&lt;\/cite&gt;\n&lt;\/blockquote&gt;\n<\/code><\/pre>\n\n<p>That is what an AI crawler receives. Your visitors still get the live, interactive widget, which takes over the moment it loads. You maintain nothing.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li><strong>Six layouts<\/strong> \u2014 carousel, grid, masonry, list, slider, and a compact star-rating badge, in light, dark, or automatic themes.<\/li>\n<li><strong>Block and shortcode<\/strong> \u2014 drop in the Google Reviews block, or use <code>[rotf_reviews]<\/code> in any theme, template, or page builder that accepts shortcodes.<\/li>\n<li><strong>No Google API key.<\/strong> No Google Cloud project, no billing account, no key to paste. Search for your business by name in the settings and pick it.<\/li>\n<li><strong>Never slows your site.<\/strong> Reviews are fetched by a scheduled background job and stored in your database. Rendering a page only reads what is already there, so a slow or unreachable reviews service can never delay a page load.<\/li>\n<li><strong>Survives outages.<\/strong> The last good set of reviews stays up until a newer set arrives, so a failed refresh is invisible to visitors.<\/li>\n<li><strong>No layout shift.<\/strong> The block reserves its space before the widget loads, so your page does not jump.<\/li>\n<li><strong>Filter by keyword, per page.<\/strong> A wedding page can show only the reviews that mention weddings. If nothing matches yet, it shows your most recent reviews instead of an empty space, and switches over on its own once a matching review arrives.<\/li>\n<li><strong>Choose what shows<\/strong> \u2014 how many reviews, a minimum star rating, newest-first or best-first, rounded or square corners, header on or off.<\/li>\n<li><strong>AI visibility reporting.<\/strong> Counts how often AI crawlers read your site and when visitors arrive from AI assistants, reported in your ReplyOnTheFly dashboard. Only your site's hostname and aggregate counts are ever sent \u2014 see External Services.<\/li>\n<li><strong>Optional business info sync.<\/strong> With a ReplyOnTheFly business key, the plugin keeps a LocalBusiness structured-data block and a visible name\/address\/hours block (<code>[rotf_business_info]<\/code>) in step with your live Google Business Profile. It stands down automatically if Yoast Local SEO or Rank Math's Local module already writes that markup.<\/li>\n<li><strong>Optional blog post import<\/strong> (off by default). Posts you approve in your ReplyOnTheFly account are created as normal WordPress posts twice a day, with images stored in your own media library. Once imported, a post belongs to you \u2014 the plugin never edits or deletes it.<\/li>\n<\/ul>\n\n<p><strong>Do I need an account?<\/strong><\/p>\n\n<p>No. Without one you get the five reviews Google's public API hands out for any business. A free ReplyOnTheFly account raises that to your full synced review history, with keyword filtering and the option to pin or hide individual reviews. Either way the plugin is free, and there is no paid tier of this plugin to upgrade to.<\/p>\n\n<p><strong>A note on star ratings in search results<\/strong><\/p>\n\n<p>This plugin deliberately does not output review schema for your own reviews. Google does not allow review rich results for reviews about a business on that business's own website, and names embedded review widgets specifically. A plugin that injected that markup anyway would earn no stars and risk a manual action. The <code>[rotf_business_info]<\/code> module writes LocalBusiness data, which is a different thing and is allowed.<\/p>\n\n<p>Built by <a href=\"https:\/\/www.replyonthefly.com\/google-reviews-wordpress-plugin\">ReplyOnTheFly<\/a>, which monitors Google reviews and drafts replies for business owners.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin is a client for the ReplyOnTheFly reviews service. It connects to the endpoints below, all operated by ReplyOnTheFly and served over HTTPS:<\/p>\n\n<ol>\n<li><p><strong>Review data<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/api\/public\/widget-reviews<\/code>. Called by your server on a schedule (hourly, via WP-Cron) and when you save settings or click \"Refresh now\". It sends the Google Place ID you configured and your site's URL (in the request's user agent, so we can identify misbehaving traffic). It returns the reviews Google makes available for that Place ID. No visitor data, cookies, or personal information is ever sent.<\/p><\/li>\n<li><p><strong>Business search<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/api\/tools\/place-search<\/code>. Called by your server only when an administrator types in the business search box on the settings screen. It sends the search text you typed and your site's URL (in the request's user agent) and returns matching Google Business listings so you can pick yours. Never called on the public site.<\/p><\/li>\n<li><p><strong>Widget script<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/widget\/reviews.js<\/code>. Loaded in the visitor's browser to display the live, interactive widget. The script requests the same review data endpoint from the browser; the request includes the standard referrer header, which tells the service which site is displaying the widget.<\/p><\/li>\n<li><p><strong>AI visibility measurement<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/api\/public\/plugin\/measure<\/code>. Two kinds of reports, both containing only your site's hostname and aggregate counts, never visitor identities, IP addresses, cookies, or browsing data: (a) your server reports, once per hour alongside the review refresh, how many times known AI crawlers (such as GPTBot or ClaudeBot) requested your pages, and receives back a Google site-verification token if you have asked ReplyOnTheFly to set up Search Console for you; (b) when a visitor arrives from an AI assistant (such as ChatGPT or Perplexity), the visitor's browser sends a single event naming the assistant \u2014 nothing about the visitor. These numbers power the AI-visibility reporting in your ReplyOnTheFly dashboard. Reports from sites not linked to a ReplyOnTheFly account are discarded.<\/p><\/li>\n<li><p><strong>Business info sync<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/api\/public\/site-kit<\/code>. Only used when you have entered a ReplyOnTheFly business key in settings; called by your server on the same hourly schedule. It sends that key and your site's URL (in the request's user agent) and returns the LocalBusiness structured data and the visible name\/address\/hours block that ReplyOnTheFly generates from your live Google Business Profile. The first successful sync sends a single confirmation (<code>...\/api\/public\/site-kit\/confirm<\/code>) containing the business key and your site URL, so your ReplyOnTheFly dashboard can show the connection as active. No visitor data is ever sent.<\/p><\/li>\n<li><p><strong>Blog post import<\/strong> \u2014 <code>https:\/\/www.replyonthefly.com\/api\/public\/content-posts<\/code>. Off by default; runs only if you have enabled the import option AND set a business key. Called by your server twice a day, it sends the business key and your site's URL (in the request's user agent) and returns blog posts you have already approved in your ReplyOnTheFly account, which are created as normal WordPress posts. Images referenced by those posts are downloaded from ReplyOnTheFly's media hosting into your own media library so nothing is hotlinked. No visitor data is ever sent.<\/p><\/li>\n<\/ol>\n\n<p>No data is sent to any other third party. Terms of service: https:\/\/www.replyonthefly.com\/terms \u2014 Privacy policy: https:\/\/www.replyonthefly.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to <strong>Plugins \u2192 Add New<\/strong>, search for \"ReplyOnTheFly\", then install and activate.<\/li>\n<li>Go to <strong>Settings \u2192 Google Reviews<\/strong> and type your business name. Pick it from the list and your real reviews appear in the live preview. (Already built a widget at <a href=\"https:\/\/www.replyonthefly.com\/tools\/google-reviews-widget\">replyonthefly.com<\/a>? Pasting its embed code works too.)<\/li>\n<li>Add the <strong>Google Reviews<\/strong> block to any page, or use the shortcode <code>[rotf_reviews]<\/code> in a template or page builder.<\/li>\n<\/ol>\n\n<p>Your first set of reviews is fetched by the background job, so a brand-new placement fills in on its next refresh rather than instantly. \"Refresh now\" on the settings screen does it immediately.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20google%20reviews%20to%20wordpress%3F\"><h3>How do I add Google reviews to WordPress?<\/h3><\/dt>\n<dd><p>Install this plugin, go to Settings \u2192 Google Reviews, and search for your business by name. Pick it from the list and your reviews appear in the live preview straight away. Then add the Google Reviews block to a page, or put <code>[rotf_reviews]<\/code> in any template or page builder.<\/p><\/dd>\n<dt id=\"is%20it%20free%3F\"><h3>Is it free?<\/h3><\/dt>\n<dd><p>Yes, and it stays free. There is no paid version of this plugin, no license key, and no feature in it that is switched off until you pay. A free ReplyOnTheFly account is optional and raises the review limit from the five Google's public API returns to your full synced history.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20api%20key%20or%20a%20google%20cloud%20account%3F\"><h3>Do I need a Google API key or a Google Cloud account?<\/h3><\/dt>\n<dd><p>No. Most Google reviews plugins make you create a Google Cloud project, enable the Places API, add a billing card and paste a key. This one does not. You search for your business by name inside the plugin and pick it.<\/p><\/dd>\n<dt id=\"will%20chatgpt%20and%20other%20ai%20assistants%20actually%20see%20my%20reviews%3F\"><h3>Will ChatGPT and other AI assistants actually see my reviews?<\/h3><\/dt>\n<dd><p>That is the point of the plugin. The review text is written into the HTML your server sends, as <code>blockquote<\/code> with <code>cite<\/code> and <code>time<\/code>, so a crawler that never runs JavaScript still reads the words. A widget that only draws itself in the browser sends those crawlers an empty container.<\/p><\/dd>\n<dt id=\"does%20this%20slow%20my%20site%20down%3F\"><h3>Does this slow my site down?<\/h3><\/dt>\n<dd><p>No. Your pages never wait on the reviews service. Reviews are fetched by a scheduled background job and stored in your database; rendering a page only reads what is already there.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20reviews%20service%20goes%20down%3F\"><h3>What happens if the reviews service goes down?<\/h3><\/dt>\n<dd><p>Nothing visible. The reviews already stored keep showing until a refresh succeeds.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%2C%20divi%2C%20beaver%20builder%20or%20my%20theme%3F\"><h3>Does it work with Elementor, Divi, Beaver Builder or my theme?<\/h3><\/dt>\n<dd><p>Yes. Anywhere that accepts a WordPress shortcode accepts <code>[rotf_reviews]<\/code>, which covers every major page builder and any theme template. In the block editor, use the Google Reviews block instead.<\/p><\/dd>\n<dt id=\"how%20often%20do%20the%20reviews%20update%3F\"><h3>How often do the reviews update?<\/h3><\/dt>\n<dd><p>Hourly, via WP-Cron, in the background. \"Refresh now\" on the settings screen forces an immediate update.<\/p><\/dd>\n<dt id=\"can%20different%20pages%20show%20different%20reviews%3F\"><h3>Can different pages show different reviews?<\/h3><\/dt>\n<dd><p>Yes. Any setting can be overridden per placement:<\/p>\n\n<pre><code>[rotf_reviews layout=\"carousel\" filter=\"brunch\" max_reviews=\"3\"]\n<\/code><\/pre><\/dd>\n<dt id=\"what%20if%20no%20review%20matches%20my%20keyword%3F\"><h3>What if no review matches my keyword?<\/h3><\/dt>\n<dd><p>The widget shows your most recent reviews rather than an empty space, and switches to matching reviews on its own once someone writes one.<\/p><\/dd>\n<dt id=\"can%20i%20show%20reviews%20from%20more%20than%20one%20business%3F\"><h3>Can I show reviews from more than one business?<\/h3><\/dt>\n<dd><p>Not in this version. One Google business is configured per site; every placement shows that business, with its own layout, filter, sort and count.<\/p><\/dd>\n<dt id=\"does%20this%20add%20star%20ratings%20to%20my%20google%20search%20results%3F\"><h3>Does this add star ratings to my Google search results?<\/h3><\/dt>\n<dd><p>No, deliberately. Google does not allow review rich results for reviews about a business on that business's own website, and it names embedded review widgets specifically. A plugin that injected that markup anyway would earn nothing and risk a manual action.<\/p><\/dd>\n<dt id=\"where%20do%20the%20reviews%20come%20from%3F\"><h3>Where do the reviews come from?<\/h3><\/dt>\n<dd><p>Your Google Business Profile, through the ReplyOnTheFly service. The plugin never scrapes Google and never asks you for Google credentials.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Listing refresh: rewritten description and FAQ, and new screenshots taken against the current interface.<\/li>\n<li>No functional changes to the plugin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release. Display Google reviews with a block or shortcode; six google reviews widget layouts (carousel, grid, masonry, list, slider, badge); server-rendered review text for SEO and AI search; hourly background refresh; per-page keyword filters; optional credit setting.<\/li>\n<\/ul>","raw_excerpt":"Display Google reviews on WordPress with a block or shortcode. Written into the page, so search engines and AI assistants can read them.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355053"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/replyonthefly"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355053"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355053"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355053"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355053"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355053"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}