On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

serviceType

serviceType · Not mentioned by Google

Appears in

What is it?

serviceType categorizes what kind of service a business or organization offers. It accepts free-form text ("Weekly home cleaning," "Emergency plumbing") or, for government services, a value from the GovernmentBenefitsType enumeration. This field lets search engines distinguish between different services offered by the same provider.

Why this matters for AEO

When a user asks "what types of cleaning services does ACME offer?" an AI answer engine scans Service entities for their serviceType values to build a list. Without this field, the engine must parse marketing copy to infer service categories, which produces less reliable answers and may miss specialized offerings.

What the specs say

Schema.org: Text or GovernmentBenefitsType. The type of service being offered, e.g. veterans' benefits, emergency relief, etc. schema.org/serviceType

Google: Not mentioned. No dedicated Google structured data page exists for Service. Google does not document rich result support for this property.

How to find your value

  • Home services — Service menu or pricing page
  • Professional services — Service offerings page
  • Government — Benefits portal
  • SaaS — Pricing tiers or product page
  • Healthcare — Department or specialty listing

Use the exact language your business uses on its website. Avoid generic terms like "consulting" when more specific alternatives exist.

Format and code

Type: Text (free-form string) or GovernmentBenefitsType (enumeration)

Free-form text (most common):

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Weekly home cleaning",
  "provider": {
    "@type": "LocalBusiness",
    "name": "ACME Home Cleaning"
  },
  "areaServed": {
    "@type": "State",
    "name": "Massachusetts"
  }
}

GovernmentBenefitsType enumeration:

{
  "@context": "https://schema.org",
  "@type": "GovernmentService",
  "name": "Veterans Affairs Emergency Mental Health",
  "serviceType": "Psychiatric Emergency Services",
  "provider": {
    "@type": "GovernmentOrganization",
    "name": "US Department of Veterans Affairs"
  }
}

GovernmentBenefitsType values:

  • BusinessSupport — Business support benefits
  • DisabilitySupport — Disability-related benefits
  • HealthCare — Healthcare benefits
  • OneTimePayments — One-time payment programs
  • PaidLeave — Paid leave benefits
  • ParentalSupport — Parental support benefits
  • UnemploymentSupport — Unemployment benefits

Webflow implementation

Static pages

Add the JSON-LD block in Page Settings > Custom Code > Footer Code for each service page:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Weekly home cleaning",
  "provider": {
    "@type": "LocalBusiness",
    "name": "ACME Home Cleaning"
  }
}
</script>

CMS template pages

Create a Plain Text field in your CMS collection (e.g., service-category). Reference it in the template embed:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "{{wf {"path":"service-category","type":"PlainText"} }}",
  "provider": {
    "@type": "LocalBusiness",
    "name": "{{wf {"path":"provider-name","type":"PlainText"} }}"
  }
}
</script>

An Option field works well here if services fall into a fixed set of categories. A plain text field is better for businesses with varied or evolving service types.

In Schema HQ

Schema pulls serviceType from CMS field and outputs it as a properly escaped string in published JSON-LD. For sites with multiple services, Schema HQ generates a separate Service entity per CMS item.

Real examples

Schema.org (source):

{
  "@context": "https://schema.org/",
  "@type": "Service",
  "serviceType": "Weekly home cleaning",
  "provider": {
    "@type": "LocalBusiness",
    "name": "ACME Home Cleaning"
  },
  "areaServed": {
    "@type": "State",
    "name": "Massachusetts"
  }
}

Schemantra (source):

{
  "@context": "https://schema.org",
  "@type": "GovernmentService",
  "name": "Veterans Affairs Emergency Mental Health",
  "serviceType": "Psychiatric Emergency Services",
  "provider": {
    "@type": "GovernmentOrganization",
    "name": "US Department of Veterans Affairs"
  }
}

Related fields

  • provider — the organization or person delivering the service
  • name — the name of the specific service offering
  • description — detailed description of what the service includes
  • areaServed — geographic area where the service is available

FAQ

Should serviceType match the page title or be more specific?

Use the most specific category that accurately describes the service. If the page title is "Home Cleaning Services" but the page describes weekly cleaning specifically, use "Weekly home cleaning" rather than the generic title.

Can a single Service entity have multiple serviceType values?

Schema.org does not define serviceType as accepting an array. To describe multiple service types, create separate Service entities for each type, each with its own serviceType value. This gives AI engines distinct categories to reference.

When should GovernmentBenefitsType values be used instead of free text?

Use GovernmentBenefitsType values when the service is a government benefit program and the type maps directly to one of the enumeration values. For all other services, including non-benefit government services, use free-form text.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us