Get named by ChatGPT and book more jobs. Your free demo site is held for20:00Claim it →
Contractor WebsitesFree demo site →

Home › Guides › What Schema Markup Should a Contractor Website Use? What to Add and Skip

What Schema Markup Should a Contractor Website Use?

Short answer: A contractor website should use one block of LocalBusiness schema, with the most specific type that fits the trade, plus name, phone, service area and links to profiles. Keep every fact matching the visible page. Skip fake reviews, hidden text and stuffed lists. Schema labels your facts. It does not rank you by itself.

Key facts
  • Google says you need no special markup or schema to appear in AI Overviews or AI Mode.
  • Google tells you to use the most specific LocalBusiness sub-type possible.
  • Google's LocalBusiness page requires name and address, and recommends telephone, url and openingHoursSpecification.
  • Service-area contractors should leave a home street address off the page and list towns with areaServed.
  • Google lets you list more than one type, but list only the trades you really do.
  • Schema is a label on the box; it does not make the contents better.

What is schema markup?

Schema markup is a small block of code on a page that labels facts so a machine can read them without guessing. It says "this is the business name," "this is the phone number," "this is a town we serve."

People never see it. Google, Bing and other systems read it. The labels come from a shared vocabulary at schema.org. The word "structured data" means the same thing. Most people use the two words for one job.

Google recommends JSON-LD, which is a block of text you paste into the page. It also says all three formats it supports are fine if the markup is valid. If your website builder or plugin offers a field for it, you can often do this without touching code.

Does schema help you rank on Google or in ChatGPT?

Less than most sellers claim. Be careful here, because a lot of people sell schema as a magic switch.

Google's own page on AI features says you do not need any special markup, AI text files or schema to show up in AI Overviews or AI Mode. It also lists "making sure your structured data matches the visible text on the page" as ordinary good practice.

Treat valid markup as a requirement for display features such as rich results, not as a promise of them.

So think of schema as a label on a box. A clear label helps a machine sort the box correctly. It does not make the contents better. What fills the box is your pages, your reviews, your Google Business Profile and your service list. If you are still working on those, start with our guide on what a contractor website should include.

Why bother then? It costs little, and it removes guesswork. If a machine reads your site and finds "Plumber, phone 555..., serves Salem and Bend" in clean labels, it has less room to get you wrong.

Which schema type should a contractor use?

Use the most specific type that fits. Google tells you to use the most specific LocalBusiness sub-type possible. Contractors sit under a group called HomeAndConstructionBusiness, which is inside LocalBusiness. See schema.org's GeneralContractor page for where that group sits.

Here is how to pick:

Your tradeSchema type to use
ElectricianElectrician
PlumberPlumber
RooferRoofingContractor
Heating and airHVACBusiness
PainterHousePainter
General contractor, remodelerGeneralContractor
Concrete, masonry, fencing, tree workThe closest type in the list at schema.org, or GeneralContractor if none fits

Schema.org's page confirms GeneralContractor is a LocalBusiness subtype. Look up the type name for your trade on schema.org before you use it. Names are case sensitive, and a typo means the label is ignored.

If you do two trades, Google lets you give more than one type as a list. Do not list six types to look big. List the ones you really do.

What should go inside your LocalBusiness schema?

Google's page says two properties are required, name and address, and lists others as recommended: telephone, url, openingHoursSpecification, geo and priceRange among them. Source: Google's LocalBusiness documentation.

For a contractor, a good set looks like this:

PropertyWhat to putNote
nameYour business name, exactly as customers know itMatch your Google Business Profile
telephoneThe number shown in your headerSame number everywhere
urlYour home page
addressYour address, if customers visit youSee the service area note below
areaServedThe towns or counties you serve, by nameReal places only
openingHoursSpecificationYour hoursAdd emergency hours only if true
sameAsLinks to your Google, Bing, Facebook and Yelp pagesOne link per real profile
imageA real photo of your work or crew
priceRangeOnly if you can state it honestlyOptional

What if you work at customers' homes and have no shop?

Many trades are service area businesses. Google defines one as a business that visits or delivers to customers directly but does not serve customers at its business address. Plumbers are the example it gives.

Google tells those businesses to remove the address from the Business Profile. Follow the same idea on your site. Do not publish your home address because a form asked for one. Use areaServed to list where you work, and leave your home street off the page.

Note that Google's LocalBusiness page lists address as a required property for rich results. That is a rule about eligibility for a display feature, not a reason to expose a home address. If you work from home, you can skip the rich result. Accurate markup with no home address is better than a wrong address.

areaServed is defined on schema.org as the geographic area where a service is provided, and it can be a place name as text. See the schema.org definition. Put in towns you really serve and have pages for. Our guide on service area pages explains how many is too many.

What is a simple example?

This is what a small roofer's block might look like. Change every value to match your own site.

`` <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "RoofingContractor", "name": "Example Roofing", "url": "https://www.example.com/", "telephone": "+1-555-555-0100", "areaServed": ["Salem", "Bend", "Eugene"], "sameAs": [ "https://www.facebook.com/example", "https://www.yelp.com/biz/example" ] } </script> ``

Those values, including the towns, are made up examples. Yours must be real. Paste the block into the head or body of your home page. Many website builders have a spot for custom code or a plugin that fills it in from a form.

What should you leave out?

This part matters more than the list above. Bad schema can cost you.

Fake or self-written reviews. Google's review snippet rules say that if the business being reviewed controls the reviews about itself, its pages that use LocalBusiness or Organization markup are ineligible for star results. That includes reviews pasted in by a widget. Do not add star ratings to your schema for your own reviews. Show real reviews on the page as plain text, and let your Google profile carry the stars.

Anything not visible on the page. Google's rules say not to mark up content that is not visible to readers. If your schema lists a service the page never mentions, remove it from one place or the other.

Wrong or stale facts. An old phone number in your markup is worse than no markup. Update both when anything changes.

Service areas you do not serve. Listing 60 towns in areaServed when you work in four is a claim that is false. It is also the same shape as the problem we cover in service area pages.

Marked-up FAQs for a rich result. Google's FAQ rich result has been dropped. Its documentation says the feature no longer appears in Google Search starting May 7, 2026. You can still write a Common questions section, because people and AI tools read it. Do not expect stars or dropdowns in the results.

What happens if you break the rules? Google says a structured data manual action means a page loses eligibility for rich results. Google says it does not change how the page ranks in web search. So the cost is the loss of display features, not a penalty on your whole site. Still, there is no gain in risking it.

How do you check that your schema works?

Follow these steps.

  1. Open the Rich Results Test from Google and paste in your page address.
  2. Check that the type reads as your trade, for example RoofingContractor.
  3. Look for errors, which are red. Fix those first.
  4. Look for warnings, which are yellow. Recommended properties you skipped show up here. Add the ones that are true for you.
  5. Read each value against your page. Name, phone and towns should match word for word.
  6. Open Google Search Console later and check for structured data reports. Our guide on Search Console for contractors shows where to look.

You can also run your page through the validator at schema.org. Either tool is fine. They answer one question: is the code written correctly? Neither tells you whether the facts are right. You do that part by reading.

Where does schema fit in the rest of the job?

It sits near the bottom of the list. Do these first:

Then add the schema block. Each trade has its own page needs. For example, electricians have a different set of jobs and license rules than roofers, which is why a roofer's website and an electrician's website read differently even when the code underneath looks alike.

If you would rather not do this yourself, see a free demo site built with the right type and clean markup.

Common questions

Do I need schema markup on my contractor website?

No site needs it to be indexed. Google says it needs no special schema to appear in its AI features. It is a low-cost way to state your name, phone and service area in a form machines read easily. Do it after your basics are done.

What is the best schema type for a contractor?

The most specific LocalBusiness subtype that fits your trade, such as Electrician, Plumber, RoofingContractor, HVACBusiness or HousePainter. Google tells site owners to use the most specific type available. If nothing fits, GeneralContractor is a reasonable fallback.

Can I add star ratings to my schema?

Not for your own reviews. Google's rules make pages ineligible for review stars when the reviewed business controls the reviews about itself, and that covers LocalBusiness markup. Show your reviews on the page as text, and keep your ratings on your Google Business Profile.

Do I put my home address in schema if I work from home?

No. Google tells service area businesses to hide the address on their Business Profile, and the same sense applies to your site. Use areaServed with the towns you cover. You lose eligibility for some local rich results, but you keep your privacy and your markup stays accurate.

Is schema markup the same as an FAQ page?

No. An FAQ page is text that people read. Schema is hidden labels. Google stopped showing FAQ rich results in 2026, but a good Common questions section still helps readers and AI tools find short answers.

Sources

About the author

Ansh Singh runs Contractor Websites. He builds websites for electricians, plumbers, roofers and other home service trades, and writes the guides on this site. More about Ansh Singh.

Want a site that does all this for you?

We build your new website free, before you pay, then work every week to get you named when homeowners ask Google and AI who to call. Get your free demo site.

Want AI to recommend your business? We build your new site free.

Get my free demo site →