
When a business embeds a review platform's widget on its own site, it usually expects one outcome: stars appearing under its title in search results. That expectation rarely pans out, and the reason is not that the widget was set up incorrectly. Google's review snippet guidelines treat the case where the entity being reviewed controls the reviews about itself as a separate rule, and they consider such pages ineligible for the star rating feature.
The example the guidelines give leaves no room for debate: a review about entity A appearing on entity A's own website, whether directly in the markup or through an embedded third-party widget. The example explicitly names two embedded widgets: Google Business reviews and the Facebook reviews widget. So it makes no difference which platform the widget comes from, how well it is designed or how genuine the reviews are. What decides it is who the review is about and which site it sits on.
Exactly which pages does the restriction cover?
The rule applies only when two conditions are met together. The first is that the page is marked up with LocalBusiness or any Organization type (and their subtypes). The second is that the entity being reviewed controls the reviews about itself. When a corporate site places its own customer reviews on its home page or a service page, both conditions are met at once.
The list of content types that can produce stars confirms this. Review and rating markup is supported for books, course lists, events, movies, products, recipes and software applications. Local businesses are on the list too, but with a clear note in parentheses: only for sites that capture reviews about other local businesses. A directory site reviewing restaurants is eligible; a restaurant's own site showing its own rating is not.
The distinction is visible within the markup documentation itself. In LocalBusiness markup, the aggregateRating and review properties are listed with the note "only recommended for sites that capture reviews about other local businesses". Because the property can technically be written, people assume it will work. But being writable and being eligible are different things, and the same distinction applies to the organization identity built with the Organization type.
Why does the same markup behave differently on a product page?
The restriction is type-based, and Product falls outside it. It is legitimate for an e-commerce site to mark up ratings left by its own buyers on its own product pages, and this can produce a star rating display. The difference is this: on a product page, the entity being reviewed is the product itself, not the organization publishing the page.
That is why the answer to "our competitor's product page shows stars, so why doesn't our service page?" lies not in markup quality but in the type of entity being marked up. Required fields, price and stock behavior on the product side are a separate topic, covered in detail in our article on price, stock and rating in Product schema.
Where do the business stars users see come from?
The rating shown in map results or the knowledge panel when someone searches for a business name does not come from markup on that business's own site. Google generates that rating from user contributions accumulated on its own surfaces, and those contributions are subject to Google's contribution policy. So the path to "I want stars next to my business" runs not through site markup but through genuine user reviews building up on the profile.
In practical terms, this is a resource allocation decision. Development effort spent on a widget integration in pursuit of stars does not pay off. The same effort, directed toward accurate profile information, category selection and a steady flow of reviews, produces measurable results on the maps side. How ranking works on Google Maps shows the order in which these items take effect.
Copying another site's rating into your own markup
When the widget does not bring stars, the second move that usually comes to mind is this: manually take the average rating and review count from the platform and write them into the page's own markup. The review snippet guidelines rule this out in a single sentence: don't aggregate reviews or ratings from other websites. The same guidelines also state that ratings must come directly from users and that, for local businesses, rating information must not be created or curated by human editors.
There is also a visibility requirement. The marked-up review content is expected to be readily accessible to users from the page containing the markup; if AggregateRating is used, users need to be able to see that average rating on the page. Writing a rating into the markup that does not appear on the page at all, or that differs from the value the widget shows, conflicts with both rules and makes the page ineligible for rich results.
The widget's real job starts on the page, not in search results
Once the star expectation is set aside, what remains is the widget's actual function, and that function is nothing to dismiss. A dated, named stream of reviews from a source the site does not control, sitting right above a quote form, is exactly where the visitor looks at the moment of decision. The gain is not in search results but in the decision step on the page.
That is why it is more accurate to think of the widget not as a search visibility tool but as one of the page's trust surfaces. Others include the real story told on the About page, concrete outputs of past work and contact details that can be verified. The widget does not replace these; it is added alongside them.
The embed method determines whether review text counts
Whether the widget's review text counts as your site's own content depends on how the widget is embedded. Google processes pages that use JavaScript in three phases: crawling, rendering and indexing. The page is crawled, placed in the render queue, and after JavaScript runs, the resulting HTML goes to indexing. The decisive rule here is this: if content does not appear in the rendered HTML, it cannot be indexed.
A typical widget setup leaves an empty container and an external script on the page:
<div id="reviews"></div>
<script src="https://platform.example.com/widget.js" async></script>
In this setup, the HTML the server sends does not contain a single review sentence; the reviews are created during rendering. If rendering completes, the text makes it into the page's rendered HTML, but that outcome depends on the external script loading and the platform responding. If the script opens an iframe, the situation is different: an iframe is a separate document belonging to its own URL, and the text inside it never enters your page's document.
If you want the same data to be the page's own text, pull it from the platform's API and write it into the HTML on the server side:
<section id="reviews">
<p>Average 4.6 / 5 (128 reviews)</p>
<article>
<p>The installation team arrived at the appointed time and there were no measurement errors.</p>
<p>A. Kaya, review platform</p>
</article>
</section>
In this format, the review text is in the page's source code and can be read without the widget's JavaScript. Two caveats still apply. First, the terms for republishing a platform's data on your own page are governed by that platform's own terms of use, and they are not the same on every platform. Second, having the text on your page does not lift the star restriction; an organization's own review on its own page remains out of scope, no matter which technique puts it there.
| Embed method | Review text in your own page's HTML | Load it adds | When it makes sense |
|---|---|---|---|
| Platform script and empty container | No, it only appears after rendering | External script, extra network request, layout shift if space is not reserved | If the only goal is to show visitors a live feed |
| iframe embed | No, it is a separate document | Low integration effort, little design control | If the platform offers no other method |
| Platform API and server-side rendering | Yes | Requires development and a data refresh setup | If you want the review text to be the page's own content |
| Static quote and link to the platform | Yes | Manual updates, no script | If a few featured reviews are enough |
How to limit the load a widget adds to the page
An external script adds an extra network request and extra JavaScript to the page. Two implementation details determine most of this load. The first is giving the area where the widget will sit a height from the start; if the area is left empty, the content below it shifts down the moment the widget loads, and that shift counts against your layout stability score. The second is loading the script not when the page opens but when the container approaches the viewport, so that the first screen does not depend on an external server's response time.
Beyond performance, the first operational point concerns cookies. Third-party widget scripts can set their own cookies and record user interactions on their side. If the site has a consent mechanism, the widget needs to sit behind it; otherwise, the external script runs before the visitor has stated their preference. This is not a visual choice but a setup decision about the integrity of the consent flow.
The second is fallback content. Placing a link to the platform and a short description inside the container keeps it from being completely empty when the script fails to load or the platform does not respond. This fallback text gives the visitor a way out and also stays permanently in the page's own HTML.
The line the platform draws when collecting reviews
Because the widget displays a platform's data, the way that data accumulates directly determines the widget's value. On Google Maps, contributions are expected to reflect a genuine experience at a place or business. The policy text lists prohibited behavior one by one: content not based on a real experience, reviews and ratings paid for in cash or in kind, and content posted by one person, or at one person's request, from multiple accounts.
Two rules aimed at the merchant side are especially often overlooked. Asking for or encouraging content that does not reflect a genuine experience is prohibited. Offering incentives such as payment, discounts, free products or services in exchange for posting a review, or for changing or removing a negative review, is also prohibited. The policy's rating manipulation section covers incentivized content together with review streams that show unusual volume or patterns.
The consequence for the widget is this: when a batch of purchased or incentivized reviews is removed, the average shown on your site drops retroactively as well. Because the widget displays live data, every cleanup on the platform side is reflected on your page too. The most visible cost of fake reviews is that their consequences surface in the brand's own storefront.
When a widget is the right tool and when it is unnecessary weight
Adding a widget makes sense when three conditions are met together: the platform has a steady flow of genuine reviews in sufficient volume, most reviews describe a concrete aspect of the service, and the widget can be placed close to the point of decision on the page. In that case, the widget brings into the page the research the visitor would otherwise do on their own in another tab.
When the load outweighs the benefit, the picture is reversed. If the review count is in single digits, the flow has stalled for months or the reviews are one-sentence generic statements, a thin widget creates a worse impression than having no widget at all. Placing widgets from three different platforms side by side is a similar mistake, because each one brings its own script and network request.
The most commonly cited reason for avoiding a widget is that negative reviews will show up too. That reason does not decide the matter on its own, because the reviews are already on the platform and an interested visitor will look there. The only thing the widget changes is which page they see them on. Most platforms allow filtering the feed by rating, but showing only the highest-rated reviews creates a picture that contradicts the average the visitor will see on the platform.
A middle ground is enough for most sites: write one or two featured reviews on the page as text and leave a link next to them to the full list on the platform. This approach adds no script load, the review text stays in the page's own content and verifiability is preserved through the link. The only thing a widget adds to this is a live-updating average, and how much that average weighs on the decision varies by industry.
Frequently Asked Questions
Will I lose anything in search if I remove the widget?
Since the widget does not produce star ratings anyway, removing it causes no loss in how you appear in search. The loss is on the page: visitors cannot find the evidence they would look at in the moment of decision. If the widget is removed, leaving a few reviews written as text and a link to the platform in its place closes that gap.
Does anything change if the platform adds the markup itself?
No. The restriction does not look at who wrote the markup, but at who the review is about and which site it sits on. The example in the guidelines treats markup written directly on the page and markup coming through an embedded third-party widget as falling within the same scope.
If I review other companies on my site, can stars appear?
In that case, the page falls outside the restriction, because the entity being reviewed is not your organization. The other conditions still apply: ratings must come directly from users, the marked-up information must be visible on the page and ratings must not be aggregated from other sites.



