This is one of the most common structured data disappointments in local SEO. A plumbing company, a law firm, or a marketing agency collects a few hundred genuine five-star reviews, adds review markup to its service pages, sees a clean pass in the Rich Results Test, and then waits weeks for stars that never appear.
The markup is not broken. It is ineligible. The gap between “valid schema” and “eligible schema” is where almost every service business gets stuck, and the advice circulating online makes it worse.
Several widely shared guides recommend swapping LocalBusiness for Service or Product schema as a workaround. That advice is wrong, and following it moves you from “no stars” to “possible manual action.” Here is what the rules actually say.
Star Ratings for Service Businesses: Eligibility & Rules
Service businesses generally can’t use their own reviews to earn Google review stars. The stars may qualify when the page genuinely represents an eligible type, such as Event, Product, or SoftwareApplication.
| Route | Who it fits | What it requires |
|---|---|---|
| Service schema | Service businesses | Not eligible for review snippets |
| Event schema | Workshops, classes, webinars | A genuine event with relevant ratings |
| Product schema | Genuine products | A qualifying product with relevant ratings |
| SoftwareApplication schema | Software businesses | Qualifying software with relevant ratings |
| Google Business Profile | Local businesses | Reviews on your Business Profile |
| Third-party platforms | Service businesses | Reviews published by the platform |
| Google Ads seller ratings | Advertisers | Meet Google’s paid-search requirements |
What doesn’t work: Service schema alone isn’t eligible for review rich results, self-serving reviews on LocalBusiness or Organization pages don’t qualify, and marking a service page as a Product is misleading.
Why Star Ratings for Service Businesses Are Restricted
Service businesses are not banned by name. They fail a test Google applies to every review snippet.
The self-serving reviews rule
The restriction traces back to a policy change Google announced in September 2019, which tightened how review rich results work across the board.
The current wording in Google’s review snippet documentation is direct: if the entity being reviewed controls the reviews about itself, its pages using LocalBusiness or any other type of Organization structured data are ineligible for the star review feature.
The reasoning is about verification, not distrust of your business specifically. Google cannot independently confirm a rating you host, curate, and publish about yourself. A Product page rating can be cross-referenced against merchant feeds, retailer listings, and third-party review platforms. A “4.9 from 212 clients” figure on your own consulting page exists in exactly one place, controlled by one party.
Why third-party widgets don’t solve it
A common assumption is that embedding a Trustpilot, Birdeye, or Google Reviews widget makes the rating third-party and therefore eligible. It does not.
Google’s review structured data guidelines also make clear that using reviews from another site does not make a business’s own page eligible for review stars when the business still controls the reviews being displayed. The widget is still displaying reviews about you, on a page you control. The source of the review data does not change who the subject is.
Does Service Schema Support Reviews?
No, and this is worth stating plainly because so much published advice assumes otherwise. Service is a valid schema.org type and is useful for describing what you offer, but it is not one of the schema types Google currently lists as eligible for review snippets.
You can technically add aggregateRating to a Service object because the property is valid in Schema.org. That does not make the page eligible for Google’s review stars.
The same applies to Article, FAQPage, WebPage , and Person . Validation confirms your JSON-LD parses correctly. It says nothing about whether Google intends to use it.
The Product schema workaround, and why to avoid it
Some guides suggest labeling a service as a Product to capture stars anyway. Don’t do that unless the page genuinely describes a product and meets Google’s Product requirements. A fixed price or defined list of deliverables does not automatically turn a service into a Product.
If a page is really about “Web Design Services,” marking the entire service as a Product simply to pursue review stars can make the structured data misleading. Google says structured data that violates its guidelines can lose eligibility for rich results and may lead to a manual action. The safer approach is simple: use Product when the page actually describes a product, not because Product markup can display ratings.
Which Schema Types Can Qualify for Google Review Stars
Some service businesses also operate offerings that fall into schema types Google supports for review snippets. The important part is that the page must genuinely represent that type; you cannot choose a schema type simply because it can display review stars.
Event Schema
Workshops, classes, seminars, and similar events may qualify when the page genuinely represents the event and the ratings describe that event. The structured data and visible page content need to match what is actually being reviewed.
Product Schema
Applies only when the page genuinely represents a specific product and meets Google’s Product requirements. A fixed price or defined list of deliverables alone does not make a service a product. If the page is really for an open-ended service such as a consulting retainer, don’t label it as Product just to pursue review stars.
SoftwareApplication Schema
It can be relevant for agencies and service firms that also offer software, such as an app or other qualifying software product. The page and ratings need to describe the software itself, not the agency’s services.
Here is what a valid implementation looks like for a software page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Example Client Portal",
"description": "A client portal for managing projects, documents, and communication.",
"offers": {
"@type": "Offer",
"price": "29.00",
"priceCurrency": "USD"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "89",
"bestRating": "5",
"worstRating": "1"
}
}
</script>
}
Two details matter here. The rating is attached to the specific offering being reviewed, and the values need to match the review information shown on the page. If the page shows an average rating of 4.7 from 89 reviews, the markup should reflect the same numbers.
For offerings that genuinely do not map to any supported type, custom schema markup still helps search engines understand the entity, even though stars are off the table.
Where Service Businesses Can Still Get Star Ratings
Schema is one path to stars, not the only one. This distinction resolves most of the confusion.
Google Business Profile
This is the primary route for local service businesses. Those stars appear in the Local Pack, in Maps, and in your knowledge panel. They are generated from Google’s own review data, entirely outside your website, and no markup influences them.
Third-party directories
Third-party directories remain eligible where you are not. Yelp, Clutch, Trustpilot, and industry-specific directories use LocalBusiness or Organization markup legitimately, because they are reviewing someone else. Claiming and maintaining those listings is often the fastest way to get stars associated with your brand in search.
Google Ads seller ratings
It is a separate paid feature with its own review volume thresholds, unrelated to organic structured data.
Best Practices for Service Business Review Schema
Once you know which offerings are eligible, the rest is precision work. These are the practices that separate service pages that earn stars from pages that quietly fail.
Choose the type by the offering, not the page
The deciding question is whether the schema type genuinely describes the thing on the page. A page for a specific software application is different from a general “Consulting Services” page. If the content does not genuinely match an eligible type, adding that type will not make the page eligible for review stars.
Keep the rating tied to the specific item being reviewed. If one page covers several different offerings, don’t attach one aggregate rating unless the rating clearly describes the item represented by the markup.
Nest the rating inside the eligible type
This is where many implementations go wrong structurally. If a page contains multiple schema types, make sure the rating clearly belongs to the eligible item being reviewed. Attach aggregateRating to the appropriate item, or use itemReviewed when the review is represented separately. Don’t place the rating on an unrelated Service or Organization node and expect Google to treat it as a rating for an eligible item.
Your ratingValue and reviewCount must also match what a visitor actually sees. Hardcoded numbers drift out of sync within weeks, so audit after every template change, not just at launch.
Keep Service markup, but change what you expect from it
Accurate Service and LocalBusiness markup still clarifies what your business does and gives AI search systems structured facts to work with. Just separate that job from star ratings.
Validate for eligibility, not just syntax
The Rich Results Test can show whether your structured data is valid and whether Google detects an eligible rich-result feature. But passing the test does not guarantee that stars will appear in Search. If the markup is valid but the review feature is not eligible, check the schema type and Google’s review guidelines before changing the code.
Common Mistakes That Prevent Review Rich Results for Services
These are the errors that show up repeatedly on service business sites specifically. Most are not syntax problems, which is exactly why they survive validation.
Injecting one sitewide rating across every service page
This is the most common failure by a wide margin. A plugin or page-builder template drops the same aggregateRating into the head of all 40 service pages, so an identical “4.9 from 187 reviews” appears on plumbing, drain cleaning, and water heater repair alike.
None of those ratings describes a specific item, and the repetition across near-identical pages is a clear signal of templated markup rather than genuine per-item reviews.
Marking up city and service-area landing pages
Location pages inherit the same problem in a more visible form. If “Emergency Plumbing in Austin” and “Emergency Plumbing in Round Rock” carry the same rating, the markup describes the business, not the page. That returns you to the self-serving restriction covered earlier.
Putting AggregateRating on the homepage Organization block
Adding aggregateRating to your homepage Organization markup does not make the business eligible for review stars when the business controls the reviews about itself. Accurate markup is still important, but the self-serving review restriction means it is not a route to organic review stars for the business’s own site.
Sending conflicting type signals on one page
Declaring both Service and Product on the same page to cover both possibilities creates ambiguity about what the page is actually about. Pick the type that honestly describes the offering. Hedging reads as an attempt to qualify rather than to describe.
Leaving reviewCount frozen
A reviewCount that has not moved in two years while your visible testimonials keep growing is a mismatch. Stale values also undercut the trust signal you were trying to send.
Omitting author on individual reviews
Standalone Review markup needs an author , and Google enforces a character limit on the author name. Reviews without a clear author are routinely dropped.
Assuming validation confirms eligibility
This one causes the longest delays because nothing looks wrong. A validator checks whether your code is written correctly. It does not check whether the schema type is supported for review stars, or whether Google’s policy allows a rating on that page. Both checks happen on Google’s side, after crawling.
So a green result means your markup is clean, but does not guarantee stars. If the code passes but no stars appear, stop debugging the code and re-check the type and the policy first.
Conclusion
The honest answer on star ratings for service businesses is a qualified no. If the reviews are about your own business and your business controls them, Google’s self-serving review restriction prevents your site from using them to qualify for review stars. The restriction is not a bug in your implementation, it is part of Google’s review rich-result guidelines.
That leaves a clearer decision. Look at your actual offerings and determine whether any genuinely match a supported type such as Event , Product , or SoftwareApplication . Mark those pages up accurately when they qualify, rather than changing the schema type just to pursue stars. For your core service pages, keep Service and other business markup accurate and treat Google Business Profile and third-party review platforms as separate ways to build review visibility.
FAQs
Q1: Can service businesses get star ratings in Google search results?
Not for reviews about themselves. Star ratings for service businesses are excluded when the business controls the reviews, which covers virtually every service page with its own testimonials. Stars remain possible through eligible types like Course and Event , or through Google Business Profile and directory listings.
Q2: Does Service schema support review stars?
No. Service is a valid schema.org type but is not among the types Google supports for review snippets. Adding aggregateRating to it will validate without errors and still produce no stars.
Q3: Can I use LocalBusiness schema with AggregateRating?
You can add it as long as it accurately describes the content, but it will not make your own site eligible for review stars when your business controls the reviews about itself. Google allows review markup for LocalBusiness when a site is capturing reviews about other local businesses; that is different from a business marking up its own customer reviews.
Q4: Why do some service businesses still show stars in organic search?
Usually one of two reasons. The page uses a genuinely eligible type such as Event, Product, or SoftwareApplication, and the ratings describe that item. Or the result comes from a directory or review site that publishes reviews about the business rather than the business reviewing itself. Seeing stars on another result does not mean the same markup is eligible for your site.
Q5: Should I remove the review schema from my service pages?
Not necessarily. If the reviews are genuine, visible on the page, and the markup accurately describes them, you do not automatically need to remove the markup just because Google will not show review stars. But don’t add aggregateRating to an ineligible type solely to pursue a rich result. Remove or correct the markup if it is inaccurate or does not match the content on the page.
Q6: How long after adding eligible review markup do stars appear?
Google gives no guaranteed timeline. Recrawling and reprocessing typically take days to several weeks, and rich results are always an eligibility signal rather than a promise. Consistently valid markup on a page Google trusts is the realistic requirement.
Wix Schema
Squarespace Schema
BigCommerce Schema
Shopify Schema
Webflow Schema
GoHighlevel Schema
Duda Schema