Fundamentals · 9 min read · September 25, 2026 · Hafsa Tariq, gaash.ai
AI visibility for roofers: by job and town, with storm weeks kept apart
A roofing contractor is named for a particular job: a storm repair, a replacement, an inspection, a flat roof, a metal or slate roof. Read your AI visibility one job and one town at a time, and keep the weeks after a storm on a record of their own, because the names in those answers can include contractors who are not based in your area.
What counts as named, recommended or first for a roofing contractor?
Read each answer in full and give it up to three marks. Named: your company appears anywhere in it, under any form of its name a homeowner would recognize, even last in a list. Recommended: the answer puts you forward for the job that was asked about and gives a reason tied to that job, such as the material you install or the town you work from. First: yours is the first contractor the reader meets. Together those marks are your AI visibility for one line on one day.
Two roofing cases need care. An answer can name you for a job nobody asked about: the line asks who installs standing-seam metal, and the answer lists you for gutters. That is named, not recommended. An answer can also name you with a caution attached, such as "[company] is based in [other town]". That is a mention only, and the caution's exact words are worth keeping, so you can find the page that says the same thing about you.
The visibility score in our methodology takes the first mark only, as the share of the twelve questions that named the company, from 0 to 100, with first place reported beside it. For a roofer the split that matters is the job. A company that is first for slate repairs and missing from every shingle replacement line has a strong month and a weak one at the same time, and the headline number reports neither. Sort the answers by job first. Whether a mark ever turns into a phone call is a different count, taken at intake, and counting the inquiries that start with an assistant covers it.
The only large reading we have published is coarser than any of this. In the probe that went with our audit of 9,483 small business websites (40 trades, 90 metros in the US, Canada, Europe and the UAE, late August to early September 2026), one buyer question per business went to Claude with web retrieval on, and 14.9% of 9,240 businesses were named. It recorded names only: not the job, not where the named business was based, not its license. It is one Claude question per business on one day, a direction for the whole sample and not a rate for ChatGPT, Gemini or Perplexity.
A panel written by job, material and town
Write the lines from the work you want to be called for. Each line names one job, one material where the material changes who gets the call, and one town, typed the way a homeowner or a property manager would type it. Pick the towns from your job list rather than from a map: the town where you have done the most roofs, and a town where you want more of them. The brackets are yours to fill; none of these lines is a question we measured.
# Monthly lines: asked in the first week of every month, worded the same each time
M1 replacement asphalt shingle [town A] "who replaces asphalt shingle roofs in [town A] and what does it cost"
M2 replacement metal [town B] "standing seam metal roof installer in [town B]"
M3 repair slate [town A] "who repairs slate roofs in [town A]"
M4 flat roof [membrane] [town B] "commercial flat roof leak repair in [town B]"
M5 inspection any [town A] "roof inspection before buying a house in [town A]"
M6 gutters any [town B] "who replaces gutters in [town B]"
M7 your name any any "is [company] licensed and insured"
M8 your name any any "does [company] install [material]"
# Storm lines: asked only after a storm in your area, counted from its date
S1 storm repair any [town hit] "roofer for hail damage in [town hit]"
S2 emergency any [town hit] "emergency roof tarp in [town hit] today"
S3 inspection any [town hit] "roof inspection after the storm in [town hit]"
S4 commercial [membrane] [town hit] "storm damage inspection for [number] commercial roofs in [town hit]"Drop any job or material you do not take on, and keep the two lines with your company's name whatever else you cut. Twelve lines is the size of the panel we run for paying clients. How to put each prompt to four assistants, three runs each, and keep every answer word for word, is set out in setting up prompt monitoring.
Lines M4 and S4 speak for property managers and small commercial owners, who ask about several buildings or a membrane rather than one house. Tag them, so an answer that recommends you for houses is never read as one that names you for the roof of a strip of shops.
Four checks on each answer: the job, the addresses, the license and the source
The standard record stays as it is: the three marks, the other contractors named, and the answer pasted in full with its date, assistant and run. A roofer adds four checks.
- The job. The job the answer named you for, in its own words, beside the job the line asked about.
- The addresses. For every contractor named, yours included: does that company's own site say where it is based, as a street address or a town, and is that place inside the area the line asks about? Write yes, no or not stated.
- The license and the insurance. Whatever the answer says about your license (the number, the issuing authority, the class) and your insurance, set against the way your own pages state them. Mark each one right, wrong or not stated.
- The source. Every page the answer links or names as a source, and whose page it is: yours, a directory, a profile, another contractor. Over a few months this shows which of your pages carry which facts in which season.
| Named in the answer | Position | Its site says it is based | License facts in the answer | Page cited |
|---|---|---|---|---|
| [your company] | [second] | [street address in (town A)] | [number and authority, matching your about page] | [your storm page] |
| [contractor B] | [first] | [not stated] | [not stated] | [a directory listing] |
| [contractor C] | [third] | [a town (distance) outside the area] | ["licensed", no number] | [contractor C's own town page] |
For the address column, open each named contractor's own site and find where it says it is based: a street address, a town, or nothing. That is the whole check, and it is no verdict on the company or its work. In our audit, 34.1% of the sites had no postal address a machine could parse on any of the three pages we fetched (all 40 trades together; we publish no roofing cut), so "not stated" may be a frequent entry, possibly on your own row.
The license column compares an answer with your own pages, not with any rule. Where your jurisdiction licenses roofing contractors, your about page should carry the number and the issuing authority exactly as the authority writes them, and each answer is read against that sentence. An answer that calls you insured without saying what the insurance covers leaves a gap to note. One that gives a license number you do not hold is an error to trace, and the tracing starts on your own pages; when AI gets facts about your business wrong covers how.
Why storm lines are dated from the storm, not the month
A storm is an event, not a season. For a few weeks after hail or a windstorm, what homeowners in the towns it hit ask can change, and so can what is published about roofing there: new pages, new listings, contractors arriving for the work. A storm line answered in those weeks is not comparable with the same line in a quiet month, and folding the two into one monthly score mixes what the storm did to the answers with what your own work did.
So the storm lines get a log of their own. When a storm hits your area, write down its date and the towns it hit, then ask the storm lines on a schedule counted from that date, for example on [day 2], [day 7], [day 21] and [day 42], and keep the same schedule for every storm. Compare this storm's day 7 with the last storm's day 7. The monthly lines keep running on their own clock in the meantime.
The log shows how many days after a storm your company starts appearing in storm answers, if it does, and whether that gap shortens after you rewrite the pages they cite. Its who-else grid shows whether storm weeks name the same contractors as quiet months. The first storm has nothing to compare with, so it is the baseline for every storm after it.
Reading the address column after a storm
Suppose the storm answers name contractors whose sites state no address in your area, or one far outside it. The record has then told you something about the answers, not about those companies. We have not measured how often this happens, and our probe could not have: it recorded names, not addresses. The column is there so you can see whether it happens where you work, and how your share of voice in storm answers compares with the quiet months.
What you can change is on your own pages. Say where you are based in a sentence an answer can repeat: the street address of your office or yard, or, if you work from home and keep the address off your Business Profile as Google's guidelines tell a service-area business to, the town you are based in and how long you have worked from it. State your license and insurance as they were issued. The overview for roofing contractors lists what else a roofer's site states, and the page for storm weeks, written before the storm, is the storm damage page.
Two things to avoid. Do not answer a storm with a page per town that differs from the next only in the town's name: Google's spam policies give pages targeted at specific regions or cities that funnel users to one page as an example of doorway abuse. And do not argue with another contractor on your own site. What that company states about itself is its own to state; if you believe it is misstating a license, the authority that issues licenses where the work is done is the place to ask.
Common questions
How many lines should a roofing company's panel have?
Twelve is the size we run for paying clients, with the storm lines kept apart from the rest. A first pass on your own can start with six: two replacement lines, a repair line in your main material, an inspection line and the two lines with your company's name. Write the storm lines in a calm month, so the first storm has a log waiting for it.
Can the storm lines run every month instead of only after a storm?
Run them only after a storm in your area, counted from its date. Asked in a quiet month, a hail damage line is a question put when there is no damage to ask about, and its answers would sit in the log beside storm-week answers as if they measured the same thing. Between storms, the monthly lines carry the reading on their own.
An answer named a contractor from another state for our town. What should we do?
Record it in the address column exactly as the answer gave it, check that contractor's own site for where it says it is based, and leave it there. It is not something to report to the assistant or to argue on your site. If your concern is licensing, ask the authority that licenses contractors where the work is done. The part you control is your own address and license sentence.
We do residential and commercial roofs. Do we need two scores?
One score, two breakdowns. Tag each line with the buyer it speaks for, a homeowner or a property manager, and read the two groups apart before the combined number. The questions differ, one house against several buildings, a shingle replacement against a membrane repair, and so do the pages that answer them. A strong residential month can hide a commercial line that never names you.
Sources
The percentages are this site's own, from the audit and probe named below, across all 40 trades; no roofing-only figure is published. The panel lines and the who-else grid are bracketed templates, not questions or answers we recorded.
Sources: our audit of 9,483 small-business sites, with its method · how we measure: the question panel, the assistant and the score · Google Business Profile guidelines · Google Search Central, spam policies
Read on