30-second summary
- A contractor is marked up with GeneralContractor or HomeAndConstructionBusiness: trades, service area, contact details.
- Done well, it helps you get cited by ChatGPT for 'a reliable contractor to renovate a bathroom near Montreal'.
- You can reflect trust signals (RBQ licence, certifications) — only if they are true and displayed.
- Absolute rule: only mark up what is true and visible. No false signal.
This guide expands on the fourth lever of our pillar article on the Local Pack. It is the most technical, but also the one that prepares the future: as search shifts toward AI answers, contractors whose data is structured take a head start.
The right type: GeneralContractor (or HomeAndConstructionBusiness)
The schema.org vocabulary offers dedicated types: GeneralContractor for a general contractor, and more broadly HomeAndConstructionBusiness for a building company. This is more accurate than a generic type (LocalBusiness), because it clearly states your trade.
To this company markup, you add the useful properties: the services and trades genuinely offered, the service area (areaServed), contact details, and optionally proof elements (average rating, licence) — only if they are real and displayed.
The properties that matter for a contractor
| Element | What it describes |
|---|---|
| name | The exact company name (consistent with your NAP). |
| areaServed | The service area (cities and sectors genuinely covered). |
| makesOffer / hasOfferCatalog | The trades and services offered (kitchen renovation, bathroom, roofing…). |
| telephone / url | The phone and the site address. |
| openingHours | The office hours. |
| aggregateRating | The average rating — only if it is real and displayed. |
What it looks like in code
The markup takes the form of a JSON-LD block placed in the page. Simplified example (adapt to your real information):
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "GeneralContractor",
"name": "Your company name",
"url": "https://your-company.ca",
"telephone": "+1-514-000-0000",
"areaServed": ["Montreal", "Laval", "South Shore"],
"makesOffer": [
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Bathroom renovation" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Roof replacement" } }
]
}
</script>
Each value must reflect the reality of your company and match what is shown on the page. This code is a starting point, not a copy-paste: its value comes from accuracy.
Rich results: an asset, not a guarantee
Clean markup makes your information eligible for certain rich displays in Google. But eligible does not mean guaranteed: Google decides alone, based on page quality and data consistency. Beware of anyone promising 'guaranteed stars'. This principle is the same for all businesses — we detail it on the restaurant side.
Does your company speak the language of Google and AI? Get a free audit of your markup and visibility — delivered as a PDF report within 24 hours.
See our services for construction →Getting cited by AI: tomorrow's visibility
More and more clients no longer type keywords: they ask. 'A reliable contractor to renovate a bathroom near Montreal', 'who can redo a roof on the South Shore' — to ChatGPT, to Gemini, or in Google's generated answers. These systems rely on clear, structured information.
A company whose site exposes consistent GeneralContractor Schema provides exactly the data these AIs need to understand it and, where relevant, cite it (company type, trades, service area, trust signals). It is not a guarantee — no one can promise that — but a total absence of structure makes a company much harder to interpret. This is GEO (generative engine optimization): ground still little occupied by contractors.
Mistakes never to make
- Marking up a rating, an area or a certification absent from the page.
- Inventing reviews or a rating. Forbidden by Google, risky for your reputation.
- Displaying a wrong RBQ licence number: misleading and verifiable by the client.
- Not testing: validation tools exist; check before and after publishing.
Frequently asked questions — Contractor Schema and AI
The schema.org vocabulary offers suitable types: GeneralContractor (general contractor) and, more broadly, HomeAndConstructionBusiness, which precisely describe a building company. This is more accurate than a generic type like LocalBusiness, because it clearly states your trade to Google and AIs. To this company markup, you add the useful properties: the services and trades genuinely offered, the service area (areaServed), contact details and, if you wish, proof elements like the average rating — only if it is real and displayed. The point is to choose the type matching your dominant activity and fill it in accurately.
No, and you should be wary of any guarantee. Markup makes your information eligible for certain rich displays, but Google alone decides whether to show them, based on page quality, data consistency and many other factors. Clean markup that is faithful to the visible content puts the odds in your favour, without guaranteeing anything. Conversely, markup describing information absent from the page (a rating, an area or a certification that is not there) may be ignored, or even deemed misleading. For a trust sector like construction, the rule is clear: only mark up what is true and visible.
AI assistants build their recommendations from clear, structured information. When a client asks for 'a reliable contractor to renovate a bathroom near Montreal', the AI relies on sources that unambiguously describe the type of company, the trades offered, the service area and the trust signals. A company whose site exposes consistent GeneralContractor Schema provides exactly that data, which makes it interpretable and, where relevant, citable. It is not a guarantee of being named, but a total absence of structure makes a company much harder for an AI to understand. It is still little-occupied ground among contractors — an advantage to take early.
You can highlight your RBQ licence and your certifications in your site content, and Schema can reflect this trust information, provided it is true and displayed on the page. Never mark up a certification you don't have or a wrong licence number: it is misleading and risky. The goal of markup is to amplify a reality, not dress it up. Used well, it helps Google and AIs understand that you are a licensed, serious player — valuable in a sector where the client above all wants to avoid nasty surprises. Honesty and consistency come first, as for all your details.
Yes, but only if they are real and displayed on the page. Review markup must never invent a rating or include reviews absent from the site. Google explicitly forbids marking up fake reviews, and it can lead to a penalty. The rule applies to all Schema: what is marked up must correspond exactly to what the visitor sees, whether it is a rating, a service area or a licence. For a contractor, whose reputation is the main asset, this honesty is also the best long-term protection: a single false signal spotted can cost far more than the small gain hoped for.
Go further
Schema complements the more 'human' levers of local visibility:
- Rank in Google's top 3 (Local Pack) — the pillar guide
- Optimize your Google Business Profile
- Get more Google reviews and reply
- Citations and NAP consistency
- Pages by trade and by neighbourhood
- All guides for contractors
Is your company ready to be understood by search engines and AI alike? Get a free audit of your markup and local visibility — delivered as a personalized PDF report within 24 hours.
Get My Free Audit →