Describe the services your business offers as Service JSON-LD: what it is, who provides it, where you serve and what it costs. Add packages, link the provider to your business schema, then copy the code into your service page. Free, no sign-up, and nothing leaves your browser.
Listings for this specific service. Put your business profiles in your Organization schema instead.
Service schema is structured data, based on the schema.org Service type, that describes a service a business offers: what it is, who provides it, where it is available and what it costs. You add it as JSON-LD to the page about that service.
It turns a service page into clear facts that search engines and AI systems can read without guessing: this clinic offers teeth whitening, in these cities, from this price. That is useful for any business whose pages describe services rather than products.
Service is about the offering. The business behind it is described separately with Organization or LocalBusiness schema, and the two are joined through the provider property.
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Teeth Whitening",
"serviceType": "Cosmetic dentistry",
"provider": {
"@type": "MedicalBusiness",
"@id": "https://www.example.com/#business",
"name": "Smile Dental Clinic"
},
"areaServed": [
{ "@type": "Place", "name": "Mumbai" },
{ "@type": "Place", "name": "Thane" }
],
"offers": {
"@type": "Offer",
"price": 2999,
"priceCurrency": "INR"
}
}No. Google has no rich result for the Service type, so the markup will not add stars, prices or other features to your listing, and the Rich Results Test will report that no rich results were found. That is expected, not an error.
Service markup still earns its place. It states your offering, location and pricing in a format search engines and AI systems can use directly, and it connects each service page to the business entity behind it. Use the Schema.org validator to check it.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "LegalService",
"@id": "https://www.example.com/#business",
"name": "Sharma & Associates",
"url": "https://www.example.com/"
},
{
"@type": "Service",
"name": "Family Law Consultation",
"provider": {
"@id": "https://www.example.com/#business"
}
}
]
}These three are often mixed up. One describes the offering, one labels it, and one describes the business that delivers it.
The offering
A schema.org type for what you do for customers. It is always the main type in this generator.
"@type": "Service"A label inside Service
A property, not a type. It holds a short category, such as Cosmetic dentistry or Tax filing.
"serviceType": "Tax filing"The business
A kind of LocalBusiness, for firms such as agencies and consultancies. Use it as the provider, not the service.
"provider": {"@type": …}Since there is no Google rich result, no property is formally required. These are the ones that make the markup useful.
| Property | What to add | Priority |
|---|---|---|
name | The service name, matching the page heading | Essential |
provider | The business or person who delivers it, linked by @id | Essential |
serviceType, description | A category and a short summary | Recommended |
areaServed | The cities, regions or countries you cover | Recommended |
offers | A starting price and currency, if shown on the page | Recommended |
hasOfferCatalog | Packages or sub-services with their own prices | If it applies |
audience, image | Who the service is for, and a representative image | Optional |
If a service comes in tiers, such as Basic, Standard and Premium, list them in hasOfferCatalog. Each package becomes an Offer with its own name and price, inside an OfferCatalog named after the service.
Add packages under “Packages or sub-services” in the generator. For a package without a fixed price, leave the price blank and the generator outputs the package without one.
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Website Design packages",
"itemListElement": [
{
"@type": "Offer",
"name": "Starter",
"price": 25000,
"priceCurrency": "INR"
},
{
"@type": "Offer",
"name": "Business",
"price": 60000,
"priceCurrency": "INR"
},
{
"@type": "Offer",
"name": "Enterprise"
}
]
}The generator above writes the code. These four steps take it live.
Use the page heading, and add a short service type.
Choose the business type and add your website, so the @id matches your business schema.
List the places you serve, and a price only if the page shows it.
Add the code to the service page’s head, then check it in the Schema.org validator.
Use one Service block per service page. The provider’s full details, such as address, logo and opening hours, belong in your Organization or LocalBusiness schema, usually on the homepage or contact page. Linking by @id avoids repeating them on every service page.
Short answers on rich results, types, providers and packages.
Service schema describes a service a business offers, including what it is, who provides it, where it is available and what it costs. It helps search engines and AI systems understand service pages accurately.
No. Google has no rich result for the Service type, so the Rich Results Test will report no rich results. The markup still makes your service, area and pricing clear to search engines and AI systems.
None are formally required, because there is no Google rich result. Always include name and provider, and add serviceType, description, areaServed and a price if the page shows one.
Service describes the offering. ProfessionalService is a kind of LocalBusiness that describes the firm delivering it, such as an agency or consultancy. Use ProfessionalService as the provider of a Service.
No. serviceType is a property inside Service that holds a short category label, such as Cosmetic dentistry. The type is always Service.
Give your Organization or LocalBusiness schema an @id, such as https://www.example.com/#business, and use the same @id in the service’s provider. This generator builds it from your provider website.
Use hasOfferCatalog with an OfferCatalog that lists each package as an Offer with a name and price. Add packages under Packages or sub-services and the generator writes it for you.
You can add them, but Google does not show stars for reviews a business publishes about its own services. Only mark up reviews that are genuinely shown on the page.
Google says AI features need no special markup. Service schema still gives search engines clear facts about what you offer and where, which supports accurate understanding. It does not guarantee being cited.
Yes. It is completely free, with no sign-up and no limit. Everything runs in your browser, so your details are never uploaded to a server.
Service pages work best alongside your business and page structure markup.
Search Savvy builds service pages that rank, adds the right structured data and connects every page to one clear business entity.