Common schema markup mistakes on roofing websites
Schema markup is the structured data that tells Google exactly what your business is, where it operates, and what it offers. Most roofing sites either skip it entirely or implement it wrong. Here is what typically goes wrong, and what correct schema looks like in 2026 now that several of the rich results people chased are gone.
What schema markup actually does
Schema markup is a block of structured data, usually JSON-LD, added to a page’s code that explicitly labels information for machines: your business type, service area, phone number, hours, and what each page is about.
It does not change what a visitor sees. It changes what Google understands. Without it, Google infers those details from unstructured text, which it does imperfectly at best. The same is increasingly true of AI answer engines, which lean on structured data to decide what a page is and whether it is worth citing.
That second audience matters more than it used to, because the first audience has been giving less back. Google has spent the last three years removing rich results, not adding them. Schema is still worth doing. The reason has just shifted from decorating your listing to being correctly understood.
Where it goes wrong
The six most common schema mistakes
01
Generic Organization instead of RoofingContractor
Using the broadest possible type wastes the chance to state plainly that you are a roofing business. RoofingContractor is a real schema.org type. Use it.
02
Copy-pasted schema with the wrong business details
Templates lifted from another site or an old version of your own carry over a stale address or phone number that contradicts what is visible on the page.
03
Broken JSON-LD syntax
One misplaced comma or bracket invalidates the whole block. Google reads none of it, even though the code looks present when you view source.
04
No service area defined
Without an explicit areaServed property, nothing structured tells Google which towns you actually cover beyond whatever gets mentioned in body copy.
05
Duplicate or conflicting blocks
An SEO plugin, a page builder, and a theme can each add their own markup to the same page. The result contradicts itself instead of clarifying anything.
06
Marking up your own reviews for stars
Google stopped showing review stars for a business marking up reviews of itself back in 2019. Plenty of roofing sites still carry AggregateRating markup that will never render.
Two rich results roofers still chase that no longer exist
This is worth its own section, because most schema advice written for contractors is still selling outcomes Google has already withdrawn.
FAQ dropdowns are gone. Google restricted them to government and health sites in 2023, then retired them completely in May 2026. The search appearance filter and Search Console reporting came out over the following months. No roofing site is getting FAQ dropdowns in search results, regardless of how clean the markup is.
Review stars on your own site are gone too. Since 2019, Google has treated reviews of a business hosted on that business’s own site as self-serving and ineligible for star display. This holds even when a third-party widget collects the reviews. The stars you see on roofing competitors in search results are coming from their Google Business Profile, not from schema on their website.
None of this means you should strip the markup out. FAQPage is still a valid schema.org type, Google has said unused structured data causes no harm, and AI answer engines parse it happily. It means you should stop paying anyone who promises you dropdowns and stars as a deliverable.
Free, no obligation
Find out what your schema is telling Google
The free audit reads your structured data and tells you what is broken, what is missing, and what is sitting there doing nothing.
The essentials
Which schema types a roofing site actually needs
RoofingContractor
Your core identity: name, address, phone, hours, service area, and the industry-specific type. Homepage at minimum. This is the one that matters most.
Service
Defines each thing you offer: replacement, repair, storm damage. Ties a specific page to a specific service and a specific area rather than leaving Google to guess.
BreadcrumbList
Underrated, and one of the few rich results still standing. It replaces the raw URL in your listing with a readable path and clarifies your site structure.
FAQPage
No longer earns a dropdown, but it is still the cleanest way to hand a question and its answer to an AI answer engine in a form it can quote. Only on pages with real visible FAQs.
Self-diagnosis
How to check your current schema in five minutes
| Tool | What it checks | What good looks like |
|---|---|---|
| Rich Results Test | Validates JSON-LD and eligibility | No errors, no warnings |
| Schema Markup Validator | Schema.org compliance, including types Google ignores | Correct types, clean properties |
| View page source | Whether the markup is present at all, and how many times | One ld+json block per type, not three |
| Search Console Enhancements | Live eligibility across your indexed pages | Items marked Valid, zero errors |
Run the first three on your homepage and one service page. That is the five minutes. If you find two competing LocalBusiness blocks with different phone numbers, you have found something worth fixing today.
Schema will not make a bad page rank. It will not rescue thin content, a slow site, or a market where you have no reviews and no links. What it does is make sure that a page already doing the work is understood accurately rather than approximately, by Google’s local systems and by the AI tools an increasing number of homeowners now ask first.
Common questions
Schema markup FAQ
No, it is not a ranking factor. It helps Google interpret your content accurately, which matters for local relevance, and it gives AI answer engines a clean structured version of what your pages say. Treat it as making your page legible, not as making it rank.
Organization is a generic type that could describe any company. RoofingContractor is a specific schema.org type under HomeAndConstructionBusiness that states your industry outright, which strengthens the relevance signal for roofing searches. There is no reason to use the generic one.
Yes, but not for the reason it was worth adding three years ago. Google retired FAQ rich results in May 2026, so it will not produce a dropdown in search. FAQPage remains a valid schema.org type, unused structured data does no harm, and it is a clean way to present question and answer pairs to AI answer engines that cite sources.
Because Google classifies reviews of a business hosted on that business’s own website as self-serving and has not displayed stars for them since 2019. That applies even when a third-party service collects the reviews. Star ratings you see next to competitors are coming from their Google Business Profile.
Basic LocalBusiness and FAQPage markup can be added through most SEO plugins or a JSON-LD generator with minimal technical knowledge. Site-wide implementations that stay correct as pages change usually want a developer, mostly to prevent the duplicate-block problem that plugins create.
Yes. Markup that contradicts the visible content on the page, or that claims things you do not offer, can cost you rich result eligibility and in serious cases draw a manual action for structured data spam. Broken syntax is less dangerous, it simply means Google ignores the block entirely.
Keep exploring
Related
Free audit, no retainer required
Get your schema checked, free
We review your structured data alongside every other ranking factor. One roofer per market, so check whether yours is still open.