gaash.ai

Roofing contractors

After the hail, the homeowner asks an assistant which roofer to call. An answer can only repeat what some site says.

A storm goes through and the next morning a homeowner types 'roofer near me who works with insurance claims' into a chat window. Or a leak shows up in February and the question is what a replacement costs and how soon. The assistant answers with names. Whether yours is one depends on the text on your pages.

A homeowner's question about a roofer asks for what the site can say in sentences: what you do after a storm, how you work with an insurance adjuster, what a replacement roughly costs in your area and in which materials, what the warranty covers and for how long, how soon you can come, where you work, and what customers wrote. An answer can repeat a fact; it cannot repeat a slideshow.

How your customers ask

What homeowners ask after the storm, and in February

“roofer near me who handles insurance claims for hail damage”
“how much does a roof replacement cost for a 2000 square foot house”
“emergency roof tarp service near me after a storm”
“metal roof vs shingles which lasts longer and who installs metal near me”
“how long does a roof replacement take and how soon can a roofer start”

The homeowner is choosing under pressure, and checking whether you are local

After a storm the homeowner has two fears: the leak getting worse and a stranger at the door. The questions follow from both. Do you handle insurance claims, will you meet the adjuster, can you tarp it today, and are you from here. The AI assistant can only find those words on the pages it retrieves, and a site that says 'storm damage specialists' in a banner and nothing about claims in text has not answered any of them.

The February call is the planned replacement: a price range, the materials you install, the manufacturer warranty against your workmanship warranty, how many days on the roof, how soon you can start. Every one of those is a sentence your estimator says at the kitchen table. If the site does not say them, the assistant cannot.

'Are you local' is the trust question of the trade, and it is answered by facts a machine can check against other pages: an address, the years at that address, the license number where your state or province issues one, the insurance you carry. 'Locally owned' is a phrase. An address is a fact.

What a roofer's site has to state to be named

The middle column is what your estimator says at the kitchen table. The right-hand column is the form a machine can read.

What a roofing contractor's site states, and the question each fact answers.
The homeowner asksWhat your site statesForm
Can you help with the claimHow you work with insurance: the inspection, the documentation, meeting the adjuster, what you handle and what you do notA page of text; no promise about what the insurer will pay
Can you come nowEmergency tarping and leak repair, the hours you answer, typical response time after a stormText; one emergency number, identical on every page
What will it costA replacement range for a typical house in your area by material, a repair range, and what moves eachText next to the service; priceRange in the markup
What materials, what warrantyThe materials you install; the manufacturer warranty term and your workmanship warranty term, in years, and what each excludesText per material; the warranty as a sentence, not a badge
How soon, and how longCurrent lead time, stated with the date; days on the roof for a typical replacementA dated sentence, updated when it changes
Are you local and legitimateAddress, years in the area, license number where your state or province issues one, insurance carriedText on the about page; RoofingContractor in JSON-LD with address and areaServed
Would I hire you againCustomer reviews quoted as text with the town and the jobQuoted text, with the town, the job and the platform

RoofingContractor is one of schema.org's LocalBusiness subtypes, carrying address, telephone, opening hours, areaServed and priceRange, the properties Google's local business documentation reads. Google's structured data introduction recommends JSON-LD and asks that structured data describe only what a visitor can see on the page.

In this trade reviews carry much of the trust, and across the whole sample they were the thing most often missing in a form a machine can read. Quote the real ones on the page, with the town, the job and the platform they came from. Google's review snippet rules give a roofer's own site no review stars for reviews of itself and say ratings from other websites are not to be aggregated, so the quotes carry the weight, not the review schema.

What the crawl found: the reviews exist, the machine cannot see them

In our audit of 9,483 small business websites (40 trades, 90 metros across the US, Canada, Europe and the UAE, late August to early September 2026), 64.7% of the sites showed no review signal a crawler can read: no rating markup, no review quoted in the page text. Only 8.9% carried rating schema. The figure is across all forty trades, and it describes a site whose reviews live on a platform rather than on its own pages.

43.1% were inconsistent about who and where they are across their own three main pages, 36.9% published more than one phone number, and 34.1% had no postal address a machine could parse. For a trade whose trust question is 'are you local', a missing address answers it the wrong way.

61.5% had no question-and-answer content of any kind. 7.2% sat behind bot protection that served our crawler a challenge page instead of the site, which blocks an assistant as completely as a robots.txt rule and without anyone deciding to.

When we put one buyer question per business to Claude, with web retrieval on, 14.9% of 9,240 businesses were named, and the businesses named were, on inspection, the ones whose sites carried answer-shaped text and a consistent identity. One question, one assistant, one day: a direction, not a rate.

What to fix first, before the next storm

  1. One business name, one address, one number, identical on every page, and the license number and insurance as a sentence on the about page.
  2. Reviews on the page as text, with the town, the job and the platform, and no platform rating in the markup.
  3. An insurance claims page in plain text: what you do, what you do not decide, how the process runs from inspection to final invoice.
  4. Replacement and repair ranges by material, with what moves them, and the warranty terms as sentences.
  5. Emergency service and current lead time, each as a dated sentence, with the hours the number is answered.
  6. RoofingContractor markup with address, hours, areaServed and priceRange, every value matching the page.
  7. Check what a crawler receives with the crawler access check, since a security plugin can block an assistant without telling you, then measure the same homeowner questions before and after, as our methodology describes.

What roofers ask

Publishing a price range invites lowball comparisons. Why do it?

Because an assistant asked what a roof costs can quote a roofer whose page carries a range, and has nothing to quote from one that says 'free estimate'. The range with its conditions (pitch, layers to tear off, material, access) is your estimator's phone answer, and a homeowner comparing it to a lowball number can see the conditions. A page with no number is not protected from comparison; it is left out of it.

Insurance work depends on the policy. What can we say without promising anything?

Say what you do: inspect, document, meet the adjuster, provide the estimate in the format insurers use, handle supplements if you do. Say what you do not decide: what the policy pays. That is a page of facts about your process, not a promise about an outcome, and it is the page that answers a homeowner's question about claims.

We are booked for months after a storm. Do we want more calls?

You want the right calls: full replacements in your area, in your materials, from homeowners who already know your lead time. The page shapes which questions you can be named for. A dated sentence that says you are booking six weeks out lets the assistant tell the homeowner that, instead of sending you the tarp call you cannot take.

Our reviews are on a platform, hundreds of them. Isn't that enough?

An answer drawn from your site has none of them to quote unless the site shows them. Quote a dozen on the page as text, with the reviewer's first name, the date, the platform, the town and the job, and keep platform ratings out of the markup. The platform keeps its hundreds; your page carries the ones a reader, and an answer, can quote.

Sources: our audit of 9,483 small-business sites, with its method · schema.org, LocalBusiness and its subtypes · schema.org, Review · schema.org, AggregateRating · Google, local business structured data · Google, introduction to structured data · Google, review snippet