Marketing local SEO

Schema markup for local service businesses

Which LocalBusiness and HomeAndConstructionBusiness types to use, the properties Google reads, the review star rule and how to test your markup.

Ava research teamPublished 7 min read

On this page
  1. What schema markup does for a contractor
  2. Choosing the right type
  3. The properties that matter
  4. The review star rule most contractors miss
  5. Adding and testing the markup
  6. Multi-location, multi-trade and service-area setups
  7. Example: one HVAC company's markup audit
  8. Common mistakes
  9. Frequently asked questions
  10. References

Key takeaways

  • Schema markup is a block of JSON-LD code that states your business facts in a form search engines read. It describes; it does not rank you on its own.
  • Google requires only name and address for LocalBusiness rich results and recommends telephone, URL, hours and geo coordinates[1]; use the most specific type, such as HVACBusiness or RoofingContractor.
  • Stars from reviews you collect and display yourself are not eligible on LocalBusiness pages[2], so do not add your own aggregate rating expecting stars.
  • Google says no special schema is needed for its AI features, but your markup must match the visible text on the page[3].

What schema markup does for a contractor

Schema markup is structured data: a short block of code, usually JSON-LD, that tells search engines who you are, where you are, how to call you and when you are open. It uses the shared vocabulary at schema.org, and Google documents which parts it reads for local businesses[1].

It is worth doing, but keep expectations realistic. Markup helps Google understand and display facts it already finds on your page. It does not replace a well-built Google Business Profile, reviews or useful service pages. Google's guidance on its AI features is blunt: there is no special schema.org structured data you need to add to appear in AI Overviews or AI Mode, and pages simply need to be indexed and eligible to show with a snippet[3]. The same page lists making sure structured data matches the visible text as a best practice[3].

Think of schema as the machine-readable copy of your master business record. If it agrees with your website, your profile and your directories, it reinforces them. If it contradicts them, it adds noise.

Choosing the right type

Google recommends using the most specific LocalBusiness subtype available[1]. On schema.org, HomeAndConstructionBusiness has these more specific types: Electrician, GeneralContractor, HVACBusiness, HousePainter, Locksmith, MovingCompany, Plumber and RoofingContractor. Several home service trades have no dedicated type, so pick the closest honest fit.

Matching home service trades to schema.org types
TradeSuggested @typeNotes
HVACHVACBusinessAdd Plumber as a second type only if you advertise plumbing
ElectricalElectricianSolar and generator work still fits under Electrician
RoofingRoofingContractorGutters and siding can go in the services you list on the page
Handyman, garage doorsHomeAndConstructionBusiness or GeneralContractorUse GeneralContractor only if that describes your work and licensing
Cleaning, pest control, landscaping, appliance repairLocalBusiness or HomeAndConstructionBusinessNo specific subtype; describe services on the page and in the description

If you genuinely run two trades, you can list more than one type in an array[1]. Do not stack types you do not offer to chase searches; the markup should describe the business a customer will actually reach.

The properties that matter

For LocalBusiness rich results, Google lists name and address as required, and recommends telephone, url, geo, openingHoursSpecification and priceRange among others[1]. Here is how to fill them for a service company.

  • name: the real business name, exactly as on your trucks and Google profile, with no keywords added.
  • address: a PostalAddress. If you hide your street address on Google because customers do not visit you, avoid publishing it in markup; city, state and ZIP with an areaServed list is a common approach, though it may limit some rich result features.
  • telephone: the main number, with country and area code, as Google asks[1]. Use the same number you publish on citations, not a tracking number.
  • url: the fully qualified URL of the location page or home page; Google says it must be a working link[1].
  • geo: latitude and longitude with at least five decimal places[1], for an office customers can visit.
  • openingHoursSpecification: office hours. For a 24-hour emergency line, Google's documented pattern is opens 00:00 and closes 23:59[1]; only use it if a person or service really answers around the clock.
  • areaServed: the cities, counties or ZIP codes you serve, matching your service-area pages.
  • priceRange: optional. Google says it must be under 100 characters[1]; many contractors leave it out rather than oversimplify pricing.
  • sameAs: links to your Google profile, Facebook page, BBB and trade directory listings, which ties your citations together.

The review star rule most contractors miss

Many website builders and plugins add an aggregate rating to the homepage markup, pulling in testimonials you chose to display. Google's review snippet guidelines say that if the business being reviewed controls the reviews about itself, its pages using LocalBusiness or any other Organization markup are ineligible for the star review feature[2]. The stars you see beside contractors in search come from Google's own reviews and from third-party platforms, not from self-hosted testimonials.

How often US adults read reviews before a first-time purchase
How often US adults read reviews before a first-time purchaseColumn chart. At least sometimes: 82%; Always or almost always: 40%; Ages 18 to 29, always or almost always: 53%.0%25%50%75%100%At least sometimes: 82%82%At least sometimesAlways or almost always: 40%40%Always or almost alwaysAges 18 to 29, always or almost always: 53%53%Ages 18 to 29, always oralmost alwaysHow often US adults read reviews before a first-time purchaseColumn chart. At least sometimes: 82%; Always or almost always: 40%; Ages 18 to 29, always or almost always: 53%.At least sometimesAt least sometimes: 82%82%Always or almost alwaysAlways or almost always: 40%40%Ages 18 to 29, always or almost alwaysAges 18 to 29, always or almost always: 53%53%

Source: Pew Research Center, 2016[4]

Show the data
ItemValue
At least sometimes82%
Always or almost always40%
Ages 18 to 29, always or almost always53%

Reviews still matter enormously; they just need to live where buyers trust them. Pew found that 82% of US adults at least sometimes read ratings or reviews before a first purchase, and 53% of 18- to 29-year-olds always or almost always do[4]. Put your effort into getting reviews on your Google profile and the review sites your customers use, and show a few on your site as plain text without star markup.

Adding and testing the markup

  1. Copy facts from your master record

    Name, address or service area, main phone, URL, hours and the social and directory links you control. Never type them fresh; copy them, so the markup cannot drift from your listings.

  2. Write one JSON-LD block per location page

    Place it in a script tag of type application/ld+json, which is the format Google's examples use[1]. A single-location company needs it on the home page or contact page; a multi-location company needs one per location page.

  3. Add Service details on service pages

    On an AC repair or panel upgrade page, a Service item with a name, a short description, provider set to your business and areaServed helps describe the page. Keep it to services that page actually covers.

  4. Test before and after publishing

    Run the page through Google's Rich Results Test and the Schema Markup Validator. Fix errors first, then warnings for properties you can honestly fill.

  5. Watch Search Console

    After Google recrawls the page, check the enhancements reports for errors. Recheck after any website redesign, because themes often overwrite or duplicate markup.

Multi-location, multi-trade and service-area setups

Single-office companies can stop at one block. Larger operations need a little more structure, because search engines should be able to tell each location apart and match it to the right Google profile.

  • Each staffed branch gets its own location page with its own markup: its address, its local phone number, its hours and the towns it serves. Do not repeat the head office details on every branch page.
  • Link the branches to the parent company with the parentOrganization or department properties, and keep the parent's own Organization markup on the home page.
  • A company that runs HVAC and plumbing under one name can use both types in one block. A company that runs separate brands for separate trades should mark up each brand on its own site or section.
  • Service-area pages for towns without an office describe the service in that town; they should not carry a LocalBusiness block with a fake address. Use Service markup with areaServed instead.
  • Keep a simple spreadsheet of every block on the site, which page it lives on and which Google profile it matches. Update it whenever a branch moves, opens or closes.

Example: one HVAC company's markup audit

Example (fictional): Copper Creek Comfort, a two-location HVAC company, found three conflicting blocks of markup on its homepage. The theme added a generic Organization block, a reviews plugin added an aggregate rating built from its own testimonials, and an old agency had hard-coded a LocalBusiness block with a phone number the company stopped using in a previous year.

The marketing manager removed the plugin's rating markup, deleted the old block and wrote one HVACBusiness block per location page, each with the location's own address, main number, hours and areaServed list of towns. The emergency line hours were set to around the clock only after confirming the after-hours service answered every night. The Rich Results Test then showed one clean item per page, and the phone number in search matched the Google profile.

Common mistakes

  • Marking up a tracking number that changes by visitor while the page shows another number.
  • Listing cities in areaServed that you do not actually serve, or that have no service-area page.
  • Claiming 24-hour hours in markup while the phone goes to voicemail after six.
  • Copying a competitor's or a template's markup and leaving their details in it.
  • Adding FAQ or review markup for content that is not visible on the page.
  • Forgetting to update markup after a move, rebrand or new phone system, which reintroduces old details search engines had already corrected.

Schema works best as the last step of a consistency project. Start with clean citations and NAP, then make sure each service page clearly describes the work, and finally add markup that states the same facts in code.

Frequently asked questions

Do I need schema markup to rank in the map pack?

No. Map results depend mainly on your Google Business Profile, relevance, distance and prominence. Markup helps search engines read your website's business details accurately, which supports consistency.

Which schema type should a roofing or HVAC company use?

Use the most specific type that fits: RoofingContractor, HVACBusiness, Electrician or Plumber. Trades without a dedicated type, such as cleaning or pest control, can use LocalBusiness or HomeAndConstructionBusiness.

Why don't my review stars show in Google search results?

Google does not show star snippets for LocalBusiness or Organization pages when the business controls the reviews about itself. Self-hosted testimonials will not produce stars; reviews on your Google profile and third-party sites do the work.

Should I add special markup for AI search?

Google says no special schema is needed for its AI features. Keep markup accurate, matching the visible page, and make sure your important content is available as text.

References

  1. Google Search Central (2026). Local business (LocalBusiness) structured data (opens in a new tab) ↑

  2. Google Search Central (2026). Review snippet (Review, AggregateRating) structured data (opens in a new tab) ↑

  3. Google Search Central (2026). AI features and your website (opens in a new tab) ↑

  4. Pew Research Center (2016). Online reviews and ratings (opens in a new tab) ↑

Book a demo

See Ava handle your calls.

Book a short demo. We’ll walk through your calls and workflow, and agree what Ava should take care of.

Book a demo