Service schema generator

JSON-LD Service markup with provider, area served and offers.

FreeRuns in your browserNo signupUpdated 2026-11-05

Only mark up what the page shows. If you do not list a price on the page, leave the price empty.

Status

Valid Service

Checked against schema.org/Service

Areas served

3

3 sub-services in the catalogue

service-schema.html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Website design and development",
  "serviceType": "Web design",
  "description": "Design and build of fast, search-ready company websites on Next.js or WordPress, with a CMS your team can edit.",
  "url": "https://www.example.com/services/web-design",
  "provider": {
    "@type": "ProfessionalService",
    "name": "Example Co",
    "url": "https://www.example.com",
    "@id": "https://www.example.com/#organization",
    "telephone": "+971 4 000 0000"
  },
  "areaServed": [
    {
      "@type": "City",
      "name": "Dubai"
    },
    {
      "@type": "City",
      "name": "Abu Dhabi"
    },
    {
      "@type": "Country",
      "name": "United Arab Emirates"
    }
  ],
  "offers": {
    "@type": "Offer",
    "description": "Quoted per project after a scoping call.",
    "url": "https://www.example.com/services/web-design"
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Website design and development",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Website redesign"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Landing pages"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Website maintenance"
        }
      }
    ]
  }
}
</script>

Google has no rich result for Service markup. It still describes the service, its provider and its area in a form search engines and AI tools can read.

About this tool

How it works and how to read the result.

Need this done for you?

Technical SEO & performance

Faster pages, clean structure and better visibility in search.

See the service

What it does

A Service schema generator writes JSON-LD that describes one service your business provides, using the schema.org Service type. It covers the properties that matter for a service page: name, service type, description and URL, the provider with its website and phone number, the places you serve, an optional offer and an optional catalogue of sub-services. The code updates as you type, wrapped in a script tag you can paste into the page, and the panel above it flags anything that would make the markup wrong, such as a price written with a currency symbol.

How to use it

  1. Enter the service name, a short service type and the page URL.
  2. Write one or two sentences of description that match the page.
  3. Fill in the provider: your business name, website and phone number.
  4. List the areas you serve, one per line. Start a line with City:, State: or Country: to set its type.
  5. Add sub-services if the page lists them, and an offer if you want to describe how you price.
  6. Copy the script block into the page.

How to read the result

With the defaults, the Status stat reads "Valid Service" and Areas served shows 3, with 3 sub-services in the catalogue. The output is a Service named "Website design and development" with serviceType "Web design", provided by a ProfessionalService called Example Co. areaServed is a list of two City entries, Dubai and Abu Dhabi, and one Country entry. The offer has a description but no price, because the example business quotes per project. hasOfferCatalog lists the three sub-services, each as an Offer of a Service.

The provider block has an @id built from the provider website, ending in /#organization. Use the same @id in your Organization or LocalBusiness markup so search engines treat both as one company.

A red "Fix" item means the markup would be wrong as written, for example a price of "AED 1,500". An amber "Check" item is advice, such as a URL without https://. Once pasted, test the page in the Schema Markup Validator; it should show one Service with no errors.

For the company itself, use the local business schema generator or the organization schema generator. We plan and test structured data across whole sites as part of our technical SEO service.

Questions

Frequently asked.

Does Service schema give me a rich result in Google?

No. Service is not one of the types in Google's search gallery, so it will not change how your result looks. It is still valid schema.org markup that states what you offer, who provides it and where, in a form search engines and AI tools can read without guessing from your page copy.

Should I use Service or LocalBusiness?

Both, on different pages. LocalBusiness or Organization describes the company and belongs on the home or contact page. Service describes one thing you sell and belongs on that service's page, with the business as its provider. The @id in the provider block lets the two pieces of markup point at the same company.

Should I include a price?

Only if the same price appears on the page. Structured data has to match what visitors can see. If you quote per project, leave the price empty and describe how pricing works in the offer description instead. A price also needs a three-letter currency code such as INR, AED or GBP.

Your next move

Like what you see? Tell us about it.

A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.

India · Working with clients worldwide

Sohail, Founder, replies within 1 working day (Mon–Sat, IST). Free and no obligation.