Product to describe certain offered services, including examples such as a haircut or car rental. But that does not automatically make a service page eligible for Google’s Product or review rich results. For most service businesses, Service is the more accurate type for the offering, while LocalBusiness or Organization describes the business itself.
A plumber adds Product schema to a drain cleaning page, drops in a 4.9 rating pulled from Google reviews, and waits. Search Console flags invalid items. No stars appear. Six months later, nothing has changed.
This is one of the most common structured data mistakes in service SEO, and it happens because two sets of rules disagree with each other. Schema.org, the shared vocabulary search engines use, is fairly permissive about what counts as a product.
Google’s rich result guidelines are much narrower. When people ask whether services can use product review schema, they’re usually standing right on that gap without realizing it. Here’s what actually applies, and what to do instead.
Quick Overview: Product Schema on Service Pages
Only in narrow cases. Schema.org permits it, Google’s guidelines mostly don’t.
| Short answer | No for typical service pages. Google’s Product rich results assume a single purchasable item with a real price. |
| Is Service review-eligible? | Service supports reviews in Schema.org, but Google does not currently list the generic Service type among the types supported for review snippets. |
| Use instead | Service for the offering, LocalBusiness or Organization for the business. |
| The real blocker | Self-serving reviews. Ratings you control about your own business are excluded from the star feature. |
| When Product is fine | Fixed-price, productized packages sold directly, with complete offers data. |
Why So Many People Put Product Schema on Service Pages
The motivation is almost always stars. Service businesses watch ecommerce competitors show ratings in the SERP and want the same visual advantage, so they reach for the type that reliably produces them.
The reasoning isn’t unreasonable, either. Schema.org’s Product definition explicitly includes services, listing a haircut and a car rental among its examples. If you only read the vocabulary spec, the product schema for services looks perfectly legitimate.
The problem is that schema.org defines the language while Google defines which sentences earn rich results. Those are separate jobs, and the second one is stricter.
What Google’s Guidelines Actually Say
Google’s review snippet documentation lists the exact types that can be reviewed for a star result. The list includes Product, LocalBusiness, Organization, Event, Course, Book, Movie, Recipe, and SoftwareApplication, among a few types. Service does not appear anywhere on it. That single fact answers most of the review schema eligibility questions on its own.
There’s a second constraint on Product specifically. Google’s product snippet guidelines state that product rich results only support pages focused on a single product or its variants. A page titled “Our Services” or “Residential Roofing” usually isn’t structured that way, and it typically lacks the price, availability, and offer data Product markup expects.
Then there’s the rule that stops most service businesses regardless of type: the self-serving reviews guideline. If the entity being reviewed controls the reviews about itself, its pages using LocalBusiness or any Organization type are ineligible for the star feature.
Google explained the reasoning in its 2019 announcement on review rich results. Google also prohibits aggregating ratings pulled from other websites, which rules out copying a Trustpilot or Google Business Profile average into your own markup.
Google’s own guidance has been consistent here. When asked how to fix invalid Product markup on a service page with variable pricing, John Mueller pointed the site toward local business structured data instead.
When Can a Service Use Product Schema?
Product schema on a service page isn’t automatically wrong. The important question is whether the offering is genuinely being presented as a specific product-like offering, rather than simply being a general service page.
It can make sense when the offering is genuinely productized: a specific package with a defined scope, a clear price, and a page dedicated to that one offering. A $299 website audit sold as a one-click purchase is much closer to a product than a general “Website Audit Services” page with custom pricing. The key is that the markup should describe what the page actually offers, not simply be added because Product markup can sometimes produce review stars.
It is usually a poor fit when pricing is quote-based, the scope varies from client to client, or the page covers a category of services rather than one specific offering. In those cases, Service is usually the clearer way to describe what the page is actually about.
Which Schema Types Service Businesses Should Use Instead
Match the type to what the page is actually about. The service vs product schema decision usually resolves quickly once you frame it that way.
| Page type | Recommended schema |
|---|---|
| Individual service page | Service with provider, serviceType, areaServed |
| Homepage or location page (local) | LocalBusiness or a subtype like Plumber, Dentist, Attorney |
| National or online-only service company | Organization |
| SaaS product page | SoftwareApplication |
| Training, workshop, certification | Course |
| Scheduled or ticketed service | Event |
| Fixed-price productized package | Product with complete offers |
Some SEOs co-type an entity as both Service and Product, allowing them to use properties from both schema types. This is valid JSON-LD, the lightweight syntax Google recommends for structured data. Just be honest about the intent.
Co-typing to describe a genuine purchasable package is reasonable. Co-typing purely to work around the self-serving reviews rule is the kind of implementation that guideline is designed to prevent.
Can Service Schema Include Reviews?
Yes, and this trips people up. The Service supports both aggregateRating and review properties, so the markup validates cleanly in the Schema Markup Validator. .
What it won’t do is produce star ratings in Google Search, because Service isn’t a review-eligible type in Google’s documentation. Validating is not the same as qualifying.
That doesn’t make it pointless. Review data on a Service entity can provide additional machine-readable context about the service and the reviews associated with it. It may also be useful to systems that consume structured web information, but it does not guarantee a particular Google Search or AI-generated result.
Correct vs Incorrect Implementation
Incorrect. Product markup on a quote-based service, with a rating copied from a third-party platform:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Emergency Plumbing Services",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "127"
}
}
No offer, no single-product focus, and a rating sourced from elsewhere. Expect invalid items and no stars.
Correct. Service markup that describes the offering accurately:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Emergency Plumbing",
"serviceType": "Emergency plumbing repair",
"provider": {
"@type": "Plumber",
"name": "Riverside Plumbing Co.",
"telephone": "+1-555-0142",
"address": {
"@type": "PostalAddress",
"streetAddress": "412 Mill St",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
}
},
"areaServed": { "@type": "City", "name": "Austin" }
}
Common Mistakes That Block Review Rich Results
When review markup fails on a service page, it’s rarely a syntax problem. The JSON-LD usually validates fine, but the page either isn’t eligible in the first place, or the markup doesn’t match what’s actually on it. These are the patterns that come up most often:
- Invisible review content: Marking up ratings a visitor can’t actually see on the page.
- Borrowed ratings: Importing averages from Google, Yelp, or Trustpilot into your own markup.
- Wrong page scope: Applying Product markup to a services index page instead of one specific offering.
- Incomplete offers: Missing price or availability, which surfaces as invalid items in Search Console.
- Conflicting entities: Two competing types describing the same thing on one URL.
- Ineligible expectations: Waiting on stars for self-controlled reviews that never qualified.
Best Practices for Review Markup on Service Pages
Most review markup problems on service sites are decisions made early, not bugs found late. Getting the type selection and page scope right from the start prevents nearly every issue in the previous section:
-
Match the type to the page
-
Keep one clean block
Mark up only visible content
Validate, then wait.
-
Stay consistent at scale
Use Service for the individual offering and LocalBusiness or Organization for the business entity itself, with the business referenced as the provider. When one page tries to be both at once, search engines have to guess what the primary subject is, and guesses rarely favor you.
Put all entities in a single JSON-LD script rather than scattering them across plugins, theme templates, and embedded widgets. Duplicate or competing markup is one of the most common causes of conflicting signals on service sites.
If a visitor can’t see the review and its rating on the page, it doesn’t belong in your schema. This is an explicit Google requirement, not a stylistic preference, and it applies to aggregate ratings just as much as individual reviews.
Run the page through the Rich Results Test to catch syntax and required-property errors, then monitor Search Console for two to three weeks. Validation confirms the markup parses; only Search Console tells you whether Google is acting on it.

Across dozens of service pages, type selection and property completeness drift quickly, especially when different people build different templates. A tool like JSON Schema App generates and validates markup from a single source of truth, so one bad pattern doesn’t replicate across the whole site.
Review stars are not the only search feature available to service pages, and in most cases they’re the least attainable one. Other rich snippet types on Google tend to be a better use of implementation effort.
Conclusion
The question has a clear answer once you separate the two rulebooks. Schema.org’s vocabulary allows Product for services. Google’s rich result guidelines assume a purchasable retail item, and Service was never on the review-eligible list to begin with.
So stop chasing stars that were never available. Use Service for the offering, LocalBusiness or Organization for the business, and Product only when something is genuinely productized. Start by auditing one service page: check whether its current type honestly matches what’s on it.
FAQs
Q1: Can service pages use Product schema without penalty?
If the page genuinely sells a fixed-price, single offering, yes. If it’s a general service page with variable pricing, the markup misrepresents the page, which is the kind of issue that can trigger a structured data manual action.
Q2: Does Service schema produce rich results in Google?
Not directly. Service isn’t tied to a Google rich result. Its value is in entity clarity: helping search and AI systems understand what you do, for whom, and where.
Q3: Why don’t my review stars show even though the schema validates?
Almost always, the self-serving reviews rule. Reviews you collect and control about your own business are excluded from the star feature on LocalBusiness and Organization markup, no matter how clean the JSON-LD is.
Q4: Can I use my Google Business Profile rating in schema markup?
No. Google prohibits aggregating ratings from other websites. Your Google Business Profile rating already appears in local results and Maps on its own.
Q5: Is it acceptable to mark an entity as both Service and Product?
It’s valid schema.org. Whether it’s appropriate depends on the page. If the offering is genuinely purchasable at a set price, co-typing is defensible. If it’s a workaround for review eligibility, it isn’t.
Q6: Which schema type should a local service business start with?
LocalBusiness or its closest subtype on the homepage and location pages, then Service on individual service pages, with the business referenced as provider.
Wix Schema
Squarespace Schema
BigCommerce Schema
Shopify Schema
Webflow Schema
GoHighlevel Schema
Duda Schema