Schema markup generator for roofing companies
Roofing companies should use the RoofingContractor type, not plain LocalBusiness. Fill in the form and I’ll build valid JSON-LD you can paste into your site.
RoofingContractor JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "RoofingContractor",
"@id": "https://bridgelandroofing.example/#business",
"name": "Bridgeland Roofing Co.",
"description": "A Calgary roofing contractor replacing and repairing residential roofs, with a focus on hail damage.",
"url": "https://bridgelandroofing.example/",
"telephone": "+1-403-555-0142",
"email": "hello@bridgelandroofing.example",
"image": "https://bridgelandroofing.example/images/photo.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street SW",
"addressLocality": "Calgary",
"addressRegion": "AB",
"postalCode": "T2P 1J9",
"addressCountry": "CA"
},
"openingHours": [
"Mo-Fr 09:00-17:00"
],
"priceRange": "$",
"areaServed": [
"Calgary",
"Airdrie",
"Cochrane",
"Okotoks"
],
"knowsAbout": [
"Asphalt shingle roofing",
"Hail damage repair",
"Metal roofing",
"Insurance claim roofing"
],
"paymentAccepted": "E-transfer, Credit card, Insurance direct billing",
"slogan": "Hail-ready roofs, done on schedule.",
"naics": "238160",
"sameAs": [
"https://www.instagram.com/bridgelandroofingco",
"https://www.linkedin.com/company/bridgelandroofingco"
]
}
</script>Paste this into your page’s head, then test it with Google’s Rich Results Test and validator.schema.org. The example values are made up: replace every one.
Want this added to your roofing company’s website?
Send me your site and I’ll check your current structured data and send back corrected JSON-LD for it. Free.
The properties that matter for roofing companies
Type: RoofingContractor. Every property below is a real schema.org property.
| Property | Why it matters |
|---|---|
knowsAbout | Hail repair, shingles and metal are separate searches in Calgary. Listing them helps AI tools recommend you for the right job. |
areaServed | After a storm, people search for roofers near them. Name the communities and towns you serve. |
telephone | Roof leaks are urgent. A clear phone number in schema backs up the one on your page. |
sameAs | Link your Google Business Profile, Better Business Bureau listing and social accounts so your identity is easy to confirm. |
openingHours | Show when the office answers. If you take emergency calls, say so on the page as well. |
Common mistakes
Using a home address as a service-area roofer. Leave the street out and use areaServed.
Adding review stars from your own testimonials. Google won’t show self-serving review stars for a LocalBusiness.
Creating a separate business schema block for every city page. Keep one business markup; city pages should be genuinely useful content.
How to add it to your site
- Replace every example value in the form with your own details. They should match your Google Business Profile exactly.
- Copy the code and paste it into your page’s
<head>. Most site builders have a custom code field. On a hand-built site, it goes in the template. - Test the live page with Google’s Rich Results Test and validator.schema.org, and fix anything they flag.
- Add the same facts to the visible page. Structured data should describe what visitors can see. My website checklist for roofing companies covers the rest.
Schema for roofing companies: questions
Yes. It is a subtype of HomeAndConstructionBusiness made for roofing companies. It is more specific than LocalBusiness, so I use it for roofers.
Add them to knowsAbout and give hail repair its own clear page. That helps search engines and AI tools connect you to storm searches.
No. One honest business markup with the areas you really serve is the right approach. Fake local addresses can get a Google Business Profile suspended.
Keep reading
- nick@tavro.ca
- 587-439-9994
- Calgary, Alberta