Skip to content
AI Search Score Independent AI-readiness audits for WordPress.

How to add Service schema so AI search understands what you offer

Last updated:

If your page sells or describes a service, AI Search Score checks for a Service (or Product) schema block. Without it, AI engines can read your words but have no structured statement of what you actually offer — which makes you harder to cite accurately. This is one of the most common gaps on service-business sites.

Why this matters

Generative engines like Google AI Overviews, ChatGPT and Perplexity lean on structured data to understand entities and offerings with confidence. A Service block tells them, unambiguously, “this business provides X.” It pairs with your Organization entity to form a small, machine-readable picture of your business — exactly the kind of clarity that gets quoted rather than skipped.

How to fix it

Add a Service schema block describing what you offer, linked to your business entity. Keep it in its own JSON-LD script block (don’t merge everything into one @graph). In WordPress you can place it via your code-snippets plugin (e.g. WPCode) in the site header, or in a Custom HTML block. Replace the example values with your own:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://example.com/#service",
  "serviceType": "Your service category",
  "name": "Your service name",
  "description": "A clear one-sentence description of what you provide and for whom.",
  "provider": { "@id": "https://example.com/#organization" },
  "areaServed": "Where you serve (city, region, or Worldwide)",
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "What we offer",
    "itemListElement": [
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Service tier one", "description": "What it includes." } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Service tier two", "description": "What it includes." } }
    ]
  }
}
</script>

Notes:

  • provider should reference your existing Organization/LocalBusiness @id, so the two link up.
  • Leave prices out of the schema unless you’ll keep them current — stale prices in schema are worse than none. List the offerings by name.
  • This works alongside any SEO plugin (Slim SEO, Yoast, Rank Math). It doesn’t replace them; it adds the one block they may not generate for you.

How to check it worked

Re-scan the page with AI Search Score. “Service or Product schema present” should turn green. Also confirm “All JSON-LD parses as valid” stays green — if it flips, you have a typo (a stray comma or smart-quote); paste the block through a JSON validator to find it.

Prefer this done for you? See our services.