Local business schema markup for service businesses: what to add and what Google uses

Get a free quote

Websites start at $5,000. Quotes are free; a few details are enough.

Your email or phone number

Rather talk? Call (616) 580-0996.

Which schema.org types a plumber, roofer or other service business should use, what Google supports today, how to state areas served without publishing a hidden address, and how to test the markup.

Written by Aiden (Web development and SEO, Business Jet Fuel). Updated November 8, 2026.

Prefer to talk? Call (616) 580-0996

Local business schema markup is a short block of code, written in the schema.org vocabulary, that tells search engines plainly what your business is, how to reach you and where you work. For most service businesses it comes down to three pieces: one LocalBusiness block using the most specific type that fits your trade, breadcrumb markup on inner pages, and, if you want it, Service markup on each service page.

Set your expectations before you start. Google’s structured data guidelines say it doesn’t guarantee your markup will show up in results, even when it’s correct. Good markup removes guesswork about your business. It doesn’t buy a special listing. It’s one small part of the search work described on our SEO and AI visibility page.

What structured data is, in plain terms

Google describes structured data as a standard format for giving information about a page and classifying its content, so it doesn’t have to guess. It recommends JSON-LD: a block of text inside a <script type="application/ld+json"> tag that visitors never see.

Three rules from Google’s guidelines matter most for a small business:

  • The markup must match the page. Don’t mark up anything that isn’t visible to the people reading the page.
  • Fill in the required properties for the feature you’re aiming at.
  • Use the most specific type schema.org offers for what you are.

Get a quote

Which schema.org types fit a service business

LocalBusiness and its subtypes

LocalBusiness is the main type, and it has many more specific subtypes. For the trades, HomeAndConstructionBusiness holds Electrician, GeneralContractor, HVACBusiness, HousePainter, Locksmith, MovingCompany, Plumber and RoofingContractor. Google’s local business documentation asks you to use the most specific subtype and allows several types as a list, so a company that does both plumbing and heating can use ["Plumber", "HVACBusiness"]. If nothing matches your trade, plain LocalBusiness is fine.

You’ll see ProfessionalService in a lot of examples. schema.org still lists it, but its own ProfessionalService page says: “The general ProfessionalService type for local businesses was deprecated due to confusion with Service.” A specific subtype, or LocalBusiness itself, is the cleaner choice.

Organization

LocalBusiness is a kind of Organization, so a service business needs one block, not two. Google’s Organization documentation has no required properties, suggests putting the block on the home page or an about page, and points local businesses to the most specific LocalBusiness subtype. Two Organization properties are worth adding to your LocalBusiness block: logo, and sameAs, a list of your profiles on other sites.

Service

Service describes one thing you do, such as water heater replacement, with serviceType, areaServed and a provider that points back to your business. Google has no search feature for it; it isn’t in Google’s search gallery. It’s still valid vocabulary that any search engine or AI tool can read. Add it if your service pages are solid, and don’t expect anything to change in how they look.

Breadcrumb markup states where a page sits in your site, such as Home, then Services, then Drain cleaning. Google’s breadcrumb documentation requires at least two items, each with a position and a name, plus the page address for every item but the last. Google’s changelog notes that breadcrumb trails now appear only in desktop results.

FAQPage, and why to stop counting on it

FAQ markup used to produce question dropdowns under a result. In 2023 Google said it would show them only for well-known, authoritative government and health websites. Its documentation changelog then says the FAQ rich result stopped appearing in Google Search on May 7, 2026, and the FAQ documentation was removed in June 2026. FAQPage is still part of schema.org, and Google’s notice doesn’t tell sites to remove it. Just don’t add it expecting a bigger listing.

Get a quote

What Google actually supports and shows

Google’s search gallery lists the features it can show from markup. For a service business, the relevant ones are Local business, Organization and Breadcrumb. For a local business, Google says the markup can feed details such as hours and contact information in Search and Maps, and its local business feature requires two properties: name and address. Recommended ones include telephone (with country and area code), url, openingHoursSpecification, geo and priceRange.

Two limits trip people up:

  • No stars from your own reviews. Google’s local business documentation says review and rating properties are for sites that collect reviews about other local businesses. Marking up reviews of yourself won’t earn stars.
  • The profile still runs the map. For a service business, the listing on Google Maps is your Google Business Profile. Markup on your site supports it. It doesn’t replace it.

Stating areas served and hiding an address, honestly

areaServed is the property for where you work. It belongs on your business block and on each Service block, and it accepts plain text or a place, such as a City or an AdministrativeArea for a county. List the same areas your website and your Google Business Profile show, and no more. Padding it with towns you don’t serve is the markup version of a fake location page. Our guide to service area pages for contractors covers the pages that should match it.

The address takes more care. Google’s local business feature requires an address, but its guidelines also say not to mark up what visitors can’t see. If you work from home and hide your street address on your profile (our guide to setting up a service area business profile walks through that), you have two honest options:

  1. Town, state and country only. If the site says “Based in Yourtown, Michigan,” the markup can say the same and nothing more.
  2. No address at all. Rely on areaServed and your phone number.

Either may mean Google doesn’t use the markup for its local business feature. That’s an acceptable trade. Never fill the gap with a rented mailbox or an office you don’t work from. Google’s Business Profile guidelines don’t accept remote mailboxes or addresses the business doesn’t operate from, and the markup should tell the same story as the profile.

Get a quote

A short example

Here’s an example for a made-up business. Every name, number and town is a placeholder: swap in your own, or leave a line out if your page doesn’t show it.

{
  "@context": "https://schema.org",
  "@type": ["Plumber", "HVACBusiness"],
  "@id": "https://www.example.com/#business",
  "name": "Example Plumbing and Heating",
  "url": "https://www.example.com/",
  "telephone": "+1-555-555-0100",
  "logo": "https://www.example.com/logo.png",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Yourtown",
    "addressRegion": "MI",
    "addressCountry": "US"
  },
  "areaServed": [
    { "@type": "AdministrativeArea", "name": "Your County, MI" },
    { "@type": "City", "name": "Nearby Town, MI" }
  ],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "07:00:00",
    "closes": "17:00:00"
  }],
  "sameAs": ["https://www.facebook.com/example"]
}

The @id gives the business a fixed name inside your markup. A Service block on a service page can then say "provider": { "@id": "https://www.example.com/#business" } instead of repeating everything.

How to test it

  1. Google’s Rich Results Test. Paste a live address, or choose Code and paste the block. It shows which Google features the page can get, with errors and warnings for each. It tests as a smartphone by default. Fix every error. Read each warning and add the missing property only if the page really shows it.
  2. The Schema Markup Validator. Google describes it as checking all schema.org markup without Google-specific warnings. Use it for types the Rich Results Test doesn’t cover, such as Service, and to catch a misspelled type or property.
  3. Read it against the page. Same name, same phone number, same hours, same areas, and nothing in the markup a visitor can’t find on the page.
  4. Check again after launch. Search Console’s URL Inspection tool shows what Google found on the live page, which catches markup that never made it out of the test copy.

Recheck whenever your phone number, hours or service area changes. Stale markup is a common source of mismatched details. For the wider list of things AI assistants read, see our guide on how to show up in AI answers.

Get a quote

If you’d rather hand it off

Many service businesses can write this block themselves with the example above and the two test tools. The work that takes longer is keeping it true: one business block, service pages that match it, and an area list that agrees with your profile. If you want that handled as part of a full search setup, our SEO and AI visibility page explains how we approach it. Send us your site address and trade through our contact page to talk it through.

Questions people ask

Does schema markup make my business rank higher?

Google doesn't describe it as a ranking boost. It helps Google understand who you are and what a page is about, and it can make a page eligible for some search features. Google says it doesn't guarantee your markup will show up in results at all.

Should I still add FAQ schema to my service pages?

Don't add it expecting the old question dropdowns. Google's changelog says FAQ rich results stopped appearing in Google Search on May 7, 2026. Keep the questions on the page, because customers read them.

I hide my street address on Google. What goes in the address field?

Only what your website shows. If the site says you're based in a town, list the town, state and country and leave the street out. Use areaServed for the places you work.

Which tool should I use to test my markup?

Use both free ones. Google's Rich Results Test shows which Google features a page can get and flags errors in them. The Schema Markup Validator checks all schema.org markup, including types Google has no feature for, such as Service.

Want to know where you stand in search?

Send us your website address and the three searches you most want to show up for. We will look at what is holding the site back and tell you what we would fix first.

  1. We read your message and look at your current site, listings or profiles.
  2. We reply with a few questions, or a time to talk.
  3. You get a written proposal with one-time and monthly costs listed separately.

Tell us about your project

Websites start at $5,000. Quotes are free; a few details are enough.

Your email or phone number

Rather talk? Call (616) 580-0996.