Service and product schema markup is the piece that a lot of business owners miss. You set up your Organization or LocalBusiness schema, feel good about it, and then never tell search engines or AI tools anything about the actual services or products you sell. The fix is to give each of those pages its own schema markup, one that spells out exactly what you offer so search engines and AI can understand it and surface it.
This step builds on a foundation. Your Service and Product blocks point back to your main business schema, so that has to exist first. New to all this? Start with What Is Schema Markup? A Beginner’s Guide, then set up your foundational block. That’s usually Organization or something more specific, like LocalBusiness if you have a physical location or service area (the local business post walks through it). With that in place, you’re ready for this.
In this post, we’ll cover when to use the Service schema versus the Product schema, what each one can and can’t do for you, where each block goes on your site, and copy-paste prompts to generate the markup.
Service Schema vs. Product Schema: Which Do You Need?
The difference is simple. Service schema is for the intangible things you do, like a massage, a consultation, or a furnace repair. Product schema is for the tangible things people buy, like a bottle of shampoo or a pair of boots.
Most businesses need one or the other. Some need both. If you offer services and sell products, you don’t have to choose: you mark up each page for what it actually is, a Service block on your service pages and a Product block on your product pages. Either way, your foundational LocalBusiness or Organization schema doesn’t change at all. These new blocks just point back to it.
Service Schema for Your Service Pages
If you have service pages on your website, add a Service schema block to each one. The Service block has a provider property that points back to your LocalBusiness or Organization schema, so that foundational block has to exist first for the Service to connect to anything.
One honest note: Google doesn’t include Service in its structured data documentation. That doesn’t mean Google ignores it, but it isn’t turning Service blocks into rich results on the search page. So why bother? Because it still hands search engines and AI tools a clear, structured description of each thing you do.
Run the prompt below in the same chat where you created your LocalBusiness or Organization schema, so it can reuse those details:
Create individual Service schema markup for each of my main service pages. Each block will go on that service's own page.
Work in this order:
Step 1: Review my service pages and pull the name, a short description, and the page URL for each service. If you cannot open my website, tell me and I will paste them in.
Step 2: Show me the services you found and ask me to confirm the list and fill any gaps before writing code.
Step 3: After I confirm, generate the schema markup using these rules:
- Create one Service block per service, anchored to that service's own page.
- Only create a block for a service that has its own page. Skip any service that only appears on a combined services page.
- Set provider to reference my LocalBusiness or Organization (whichever I set up earlier) using its @id. Include the relevant type and id values. Do not retype my business details.
- For each service include: name, description, serviceType, url, areaServed, and provider.
- Use the general Service type, or a more specific Service subtype only if it is accurate and a real schema.org type. Confirm any type exists before using it.
- Do not include pricing unless I have a fixed, publicly listed price on my site.
- Output each block as its own valid JSON-LD <script type="application/ld+json"> block, labeled with the page it belongs on.
- After the code, list anything I should double-check before publishing.
As with your foundational schema, check each block in the Schema.org Markup Validator before adding it to your website.
Product Schema for Your Product Pages
If you sell products, instead of or alongside your services, Product schema works the same way. Each product page gets its own Product markup, just as each service page gets a Service block. Your foundational schema doesn’t change.
Here’s the part worth getting excited about. Product schema can earn some eye-catching rich results on the search page. Price, availability, and star ratings can show up right in Google’s search result, which is something Service schema usually can’t do. So if products are a real part of your business, this markup can pull more visible weight.
It also flips the review rule. You can’t star-rate your business as a whole, but if you have genuine customer reviews on a product page, Product schema can carry them and show those stars. The only catch is that they have to be real reviews from real customers, never invented ones.
One important shortcut: if you use e-commerce software, there’s a very good chance it already creates Product schema for you, so you might not have to do a thing. To check, run one of your product pages through Google’s Rich Results Test. If it reports a product, you’re all set. Just be sure to test an individual product page, not your homepage, because Product schema should only live on the relevant product page.
If you do need to add it yourself, here’s a prompt, built to run in the same chat as your foundational (Organization or LocalBusiness) schema:
Create individual Product schema for each of my main products. Each block goes on that product's own page.
Work in this order:
Step 1: Review my product pages and pull the name, a short description, image, price, availability, and the page URL for each product. If you cannot open my website, tell me and I will paste them in.
Step 2: Show me the products you found and ask me to confirm the list and fill any gaps, especially price and availability, before writing code.
Step 3: After I confirm, generate the schema using these rules:
- Create one Product block per product, anchored to that product's own page.
- Only create a block for a product that has its own page. Skip any product that only appears on a category or collection page.
- For each product include: name, description, image, url, and an offers block with price, priceCurrency, and availability.
- Reference my business as the brand or seller using my LocalBusiness or Organization @id from earlier where it fits. Do not retype my business details.
- Include aggregateRating or review ONLY if I have genuine customer reviews shown on that product page. Never invent ratings or reviews.
- Use the price and availability exactly as they appear on the page. Do not guess or use placeholder values.
- Output each block as its own valid JSON-LD <script type="application/ld+json"> block, labeled with the page it belongs on.
- After the code, list anything I should double-check before publishing.
Where These Blocks Go on Your Site
The rule is the same one that runs through this whole series: each page’s schema describes what that page is about.
Each individual service page gets its own Service block. So if you have three service pages, you’ll have three Service blocks, one living on each page. Products follow the same pattern, with each product page getting its own Product block. Don’t put these on your homepage, and don’t try to stuff every service or product onto a single combined page. Your foundational LocalBusiness or Organization block stays where it belongs, on the pages that describe your business as a whole.
As for getting the code onto your site, it depends on your website builder. If you’re on WordPress, an SEO plugin or your theme settings should have a spot to paste schema markup into the head of a specific page. Check your builder’s documentation so you add each block to the right page only, not the whole site.
Validate Before You Publish
Once you’ve got your code, check it again before it goes live. Run each block through the Schema.org Markup Validator and fix anything flagged as an error. A few warnings are usually fine, but errors mean something’s actually broken.
After you publish, you can test a product page with Google’s Rich Results Test to see what you’re eligible for. Remember that it won’t “see” your Service blocks, since Service doesn’t produce rich results, so don’t panic if those don’t show up there. The Schema.org validator is the better check for Service. If you have Google Search Console set up, keep a loose eye on its reports too. That’s it, no ongoing babysitting required, but if a service or product changes, update its schema to match.
Where to Go From Here
This post assumes you’ve got your foundation in place. If you don’t yet, here’s where to start:
- New to schema markup entirely? Begin with What Is Schema Markup? A Beginner’s Guide.
- Have a storefront or service area? Set up your LocalBusiness schema first.
- Run more than one location? Connect them the right way with the multiple locations guide.
Frequently Asked Questions
Service schema is for the intangible things you do, like a haircut or a consultation. Product schema is for the tangible things people buy. Mark up each page for what it actually is, and if you offer both, use both.
Yes. It won’t earn you a rich result, but it gives search engines and AI tools a clear, structured description of each service you offer, which helps them understand and surface what you do. It’s low-effort once your foundational schema is in place.
Often not. Most e-commerce software generates Product schema automatically. Test one of your product pages in Google’s Rich Results Test, and if it reports a product, you’re already covered.
Not through Service schema, which doesn’t produce rich results. Star ratings show up through Product schema, and only when you have genuine customer reviews on that product page. You also can’t star-rate your business as a whole.
From your foundational schema. Your Service block’s provider and your Product block’s brand or seller both point back to your LocalBusiness or Organization block using its ID, so you never have to retype your business details.
Your Next Small Step
You don’t have to mark up everything at once. Pick one service page or one product page, run the matching prompt, validate the result, and add it. Once you’ve done one, the rest are just copy, paste, and swap in the details.
If you’d like a guided path through the rest of your SEO with people who’ll cheer you on when you get stuck, come join us in the SEO Success Club. You’ve got this!
