Free Service Schema Generator

Generate valid Service JSON-LD structured data for each service you offer. Add the provider, service area, pricing, and a catalog of sub-services, then copy the markup. Free, no sign-up required.

Build Your Service Schema

The serviceWhat you are offering on this page. Mark up one service per page.

What a customer would call it. Required for valid Service markup.

The category of work in plain words. Free text, so use the term customers search for.

Who provides itThe business behind the service. This links the service to your company.

Pick the most specific type that fits your business, the same one you use in your local business markup.

Use exactly the same name as your local business markup and Google Business Profile.

Where you offer itThe towns, cities, or regions this service covers. One per row.

Pricing (optional)Only publish a price you will honor. A range is usually safer for custom work.

Leave this on quote on request if every job is priced individually.

Sub-services (optional)If this service breaks into smaller jobs, list them as a catalog.

Enter your service name above and your JSON-LD will build here automatically.

Generated JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service"
}
</script>

How to add it to your site

  1. Copy the code above.
  2. Paste it inside the <head> section of that service page. Give each service its own page and its own block.
  3. Validate it with the Google Rich Results Test or the Schema.org Validator.
  4. Keep the provider name identical to your local business markup, then request indexing in Google Search Console.

Build better service pages around your schema

Structured data explains the service to search engines. These free widgets convince the customer to book it.

Explore More Free Tools

Other free tools to help you optimize and grow.

How It Works

How to use this free service schema generator

No account needed, no sign-up, completely free. Fill in your service details, and valid JSON-LD structured data builds live, ready to copy into your page.

1

Describe the service

Name the service the way a customer would, add the service type in plain words, and write a short description of what the job actually involves.

2

Add the provider, area, and price

Link the business that performs the work, list the towns you cover, and add a fixed price or a range if you publish one. Everything you type builds the markup live.

3

Copy and validate

Copy the generated JSON-LD, paste it into the head of the service page, and confirm it with the Google Rich Results Test. No sign-up, completely free.

The Basics

What is service schema, and why does it matter?

Search engines read your service page, but structured data tells them exactly what they are looking at: which service, who performs it, where, and roughly what it costs.

The idea

One service's details → schema.org vocabulary → JSON-LD in your <head>

Result: a distinct, described service rather than one page listing everything

Service schema is structured data that describes work you perform, using the shared schema.org vocabulary. It is the counterpart to Product markup: Product is for a physical item you sell, Service is for a job you do. For service businesses, it is the type that actually fits what you offer.

The recommended format is JSON-LD: a small block of JSON placed in the head of the page. It lives separately from your visible content, so it is easy to add without touching your design. Service markup works best alongside LocalBusiness markup: the business block says who you are, and each service block says what you do and where you do it.

Structured data does not guarantee rankings or rich results. Google does not currently show a dedicated rich result for Service. What it does is make each of your services unambiguous to search engines and to AI assistants, which increasingly answer questions about who does what in a given area.

Pricing Choices

No price, fixed price, or a range

Pricing is optional, and how you handle it is a judgement call. Here is what each option actually commits you to.

OptionWhat it doesWhen to useRisk
No priceNo Offer is added at all. The markup describes the service without committing to a number.Custom work priced per job after a site visit.Safest
Fixed priceAdds an Offer with a single price and currency. Clear, but you are held to it.Standardized jobs with a genuine flat rate.Specific
Price rangeAdds a PriceSpecification with a minimum and maximum, so the number is honest about variation.Jobs that vary by size, access, or materials.Flexible

Based on the schema.org Service, Offer, and PriceSpecification types, 2026.

What It Can Unlock

What service schema can do for you

Structured data helps search engines understand each service you offer. Search features are never guaranteed, but the clarity compounds across your pages.

🧰

Each service understood on its own

Separate Service markup per page means search engines see distinct services rather than one blurry list of everything you do.

🗺️

Service area made explicit

areaServed states the towns and regions you cover, which matters when you travel to customers rather than trading from a shopfront.

🏢

Tied to the business behind it

The provider property links each service to your business, so your service pages and location markup describe one connected entity.

💵

Honest pricing signals

A fixed price or a range gives searchers a sense of cost, and a range keeps it truthful when jobs genuinely vary.

📋

Sub-services listed clearly

A catalog breaks a broad service into the individual jobs it covers, which describes your offer far more precisely.

🤖

AI answer clarity

When an AI assistant is asked who does this kind of work nearby, structured service data is easier to read and cite accurately.

Avoid These

Six service schema mistakes that cause problems

Structured data helps only when it is accurate and valid. Steer clear of these common errors.

🗂️

One page listing every service

A single page covering fifteen services cannot carry meaningful markup for any of them. Give each real service its own page and its own block.

One service per page
🏷️

Publishing a price you will not honor

A price in your markup is a public claim. If jobs genuinely vary, use a range or no price at all rather than a number you will renegotiate.

Only publish real prices
🔀

Provider name that does not match

The provider name should be identical to your local business markup and your Google Business Profile. Small differences split one business into two.

Keep the name consistent
🌍

Claiming an unrealistic service area

Listing fifty towns you would not actually drive to is not a coverage strategy. List the areas you genuinely serve.

Be honest about coverage
🔁

Confusing Service with Product

Service is for work you perform. Product is for a physical item you sell. Using Product for labour invites errors and misdescribes what you offer.

Match type to offer

Never validating

Always run your markup through the Rich Results Test and the Schema.org Validator. A single syntax slip can invalidate the whole block.

Validate before you ship

Get More From It

6 tips for effective service markup

Practical ways to make your schema work harder. All CommonNinja widgets mentioned are free to start.

01

Build a page per service

Service markup and good local SEO want the same thing: a real page for each service, with real content on it. The markup is the easy half.

02

Reuse your provider details exactly

Copy the business name, phone, and type from your local business markup, character for character. Consistency is the entire point of the provider link.

03

Answer booking questions on the page

Most people have two or three questions before they book. Answer them on the service page, and pair the answers with FAQ markup.

Try the FAQ widget
04

Show proof for this specific service

A review about the exact job on the page beats a generic five-star average. Put real reviews where the decision happens.

Try the Google Reviews widget
05

Use a range when jobs vary

A from-and-to range is more useful to a searcher than silence and more honest than a fixed price you will not hold to.

06

Break big services into a catalog

If a service covers several distinct jobs, list them with hasOfferCatalog. It describes your offer more precisely without inventing extra pages.

Glossary

Key service schema fields

A quick reference for the properties behind service markup.

FieldDefinitionExampleWhen It Matters
nameThe service as a customer would name it. This is the anchor for the whole block.Emergency Electrical RepairEvery service you mark up
serviceTypeThe category of work in plain words. Free text, so use the phrase people actually search for.Electrical repairEvery service you mark up
providerThe business performing the service, as a nested LocalBusiness or Organization. Ties the service to your company.Electrician + nameEvery service you mark up
areaServedThe places this service covers. Essential for mobile trades that travel to the customer.Columbia, MOAny service with a travel radius
offersPricing, as either a fixed price or a PriceSpecification with a minimum and maximum. Optional.Offer + priceServices with published pricing
hasOfferCatalogA list of the individual jobs this service covers, each as a nested Service inside an Offer.OfferCatalogBroad services with sub-services

FAQ

Service schema markup is structured data that describes work you perform, using the schema.org vocabulary. It states the service name, the type of work, who provides it, where you offer it, and optionally what it costs, in a machine-readable format. This generator creates valid Service JSON-LD you can copy straight into your page.
Product is for a physical item you sell. Service is for work you perform, such as a repair, a treatment, a consultation, or a clean. Service businesses often reach for Product because it is more familiar, but it misdescribes what is on offer. If you are selling labour and expertise rather than an object, Service is the right type.
For markup to mean anything, yes. A single page listing fifteen services cannot carry accurate Service markup for any one of them. The pattern that works is a real page per service with real content on it, each carrying its own Service block. The markup is the easy half of that job.
They complement each other. Your LocalBusiness markup says who and where you are; each Service block says what you do and where you do it, and links back to the business through the provider property. Use exactly the same business name and type in both so they clearly describe one connected entity.
Only if you will honor them. Pricing is optional. For standardized jobs, a fixed price is clear and useful. For work that varies by size, access, or materials, a from-and-to range is more honest and still helpful to someone comparing options. If every job is quoted after a site visit, leave pricing out entirely.
areaServed lists the towns, cities, or regions a service covers. It is particularly useful for mobile trades that travel to customers instead of trading from a shopfront, since it describes your real reach without inventing a location. It does not replace an address for businesses that do have premises customers visit.
Not currently. Google does not show a dedicated rich result for Service markup, so treat it as clarity rather than a search feature. Its value is in making each service unambiguous to search engines and to the AI assistants that answer questions about who does what in a given area.
Paste your page URL or the generated code into the Google Rich Results Test or the Schema.org Validator. Both are free and show errors and warnings. Validate after adding the markup, and again whenever your pricing, service area, or business details change.

Trusted by