01Why roofing is the hardest trade to get cited in
Start with the number that reframes the whole problem. In a baseline of 32 trade questions run across four engines between 31 August and 20 September 2026, ChatGPT cited a roofing company's own website in 17.8% of its 600 roofing answers, while at least 82% of those answers cited a directory, review site or "best of" list. For plumbing, 53.7% of ChatGPT answers cited the contractor's own site. For heating and cooling, 44%.
Roofing is not a weak trade with weak websites — most of the trade has spent a decade on search engine optimization for roofing professionals. It is a trade whose buying questions are phrased as comparisons, and ChatGPT answers comparisons with lists. A homeowner asking "who are the best roofing companies for roof repair or replacement?" has asked a question that directories are structurally built to answer and that a single company's website cannot answer about itself without sounding self-serving.
Share of ChatGPT answers citing the contractor's own website, by trade
The mirror image matters just as much. In the same dataset, Google AI Mode cited roofing company websites in 87.2% of roofing answers and displayed rated business cards in 92.7% of them. A second study of 60 US cities found that 100% of the AI Mode answers it captured cited the roofer's own site, alongside a Google Business Profile in 95%.
A roofing site that ranks, converts and gets cited by Google's AI surfaces can still be absent from ChatGPT — and the reverse is also true. These are separate retrieval systems with different source preferences, and treating "AI search" as one channel produces a plan that optimises the wrong layer.
So the question is not "how do I appear in AI search". It is "which engine is my customer using, and which layer does that engine read?"
Two more roofing-specific asymmetries follow from the data and shape everything after this section.
Directory share varies by border. HomeStars was cited in 40% of ChatGPT's Canadian answers and in none of its US answers, while Angi and Expertise.com were effectively absent from Canadian answers. A roofer working on both sides of the border needs two different listing audits.
Franchises barely register. Across ChatGPT, Gemini, Perplexity and Google AI Mode, only 0.9% of roofing answers named a national franchise brand, against 60.1% on the same research's pest-control question. Roofing recommendations go almost entirely to independent and regional companies. For an independent roofer that is good news: the incumbency advantage that exists in other trades does not exist here yet.
02The path from prompt to citation
Before the fixes, the mechanism. What happens between a homeowner typing a question and your company name appearing in the answer is a five-stage pipeline, and each stage discards most of what enters it.
Query fan-out
ChatGPT rewrites one conversational question into several shorter search queries. "Best roofer near me after hail" becomes something closer to "roofing companies [city]", "hail damage roof repair [city]", "roofing contractor reviews [city]".
Implication: your page must match one of the rewritten queries, not the original sentence.Retrieval from multiple sources
Those queries go to third-party search providers and to OpenAI's own crawler-built index. Published analysis of ChatGPT's traffic found it running its own crawl, cache and specialised indexes rather than depending solely on another engine's results.
Implication: you now have two index surfaces to satisfy, not one.Candidate assembly
A set of pages is fetched — your homepage, a directory profile, a review aggregator, a manufacturer's dealer locator, a Reddit thread. Average cited sources per answer have run about 4.7–4.9 since March 2026.
Implication: you are competing to be one of roughly five sources, and often against pages about you rather than by you.Selection and synthesis
A few sources are kept and the answer is written. Titles and openings that resemble the rewritten sub-query survive this cut more often; a page whose first screen states the entity, the service and the geography is easier to keep.
Implication: the extraction test in section eight matters more than word count — the same discipline set out in avoiding the wrong audience in roofing SEO.Attribution
Sources are cited — but a citation is not a mention. In one analysis, 61.7% of citations were "ghost" citations where the domain was used and the brand never named. You can be the source of an answer that sends the homeowner to a competitor's name.
Implication: measure mentions and citations separately, because only one produces a phone call.Everything in this article is an intervention at one of those five stages. The reason the order matters is dependency: work at stage four is wasted if stage two never fetched the page.
03ChatGPT's own index, and what it changes
For two years the working model of ChatGPT visibility was simple: rank in Bing, get cited. That model is now incomplete, and the correction is the most important technical change of 2026.
OpenAI's Web Search API exposes a parameter called external_web_access. Set it to true and the system fetches fresh pages from the live web; set it to false and it answers from what it has already crawled and cached. The existence of that second mode is the evidence: ChatGPT maintains an index of its own, populated by OAI-SearchBot and by pages fetched in-session by ChatGPT-User, and pages have been observed remaining retrievable from it more than thirty days after indexing.
Independent research published in September 2026 went further, documenting an internal retrieval system and specialised indexes, with an index in preview reported at roughly 3.2 billion pages. OpenAI has not confirmed the architecture publicly. Treat the direction as established and the specifics as reported.
| Agent | What it does | Consequence of blocking it |
|---|---|---|
OAI-SearchBot | Crawls and indexes pages for ChatGPT search answers | You are not shown in ChatGPT search answers at all. This is the one that decides eligibility |
ChatGPT-User | Fetches a specific page live when a user's question calls for it | You vanish from in-session lookups, and fresh pages stop entering the cache |
GPTBot | Collects content for model training | Training exclusion only — blocking it does not remove you from search answers |
There is a fourth condition that most roofing sites have never checked: OpenAI's documentation states that a site must allow its crawler and allow traffic from OpenAI's published IP ranges. In practice, the second half is where sites fail without knowing — a content delivery network or web application firewall configured to challenge unfamiliar traffic will block a verified crawler that is technically permitted in robots.txt. The configuration looks correct and the outcome is invisible.
Bing indexation still matters enormously — Seer Interactive found 87% of SearchGPT citations matched Bing's top results against 56% for Google — but it is no longer the whole path. You need Bing indexation and unblocked access for OpenAI's own crawler.
A roofer who has done neither has two problems, and the fix for each is in a different control panel. What that looks like when both are done is set out in our AI SEO case study.
04The five gates, with the tool that verifies each
This is the operational core. Each gate has a verification step, because "we think we did that" is how roofing accounts end up with a year of content and no citations.
Crawler permission
Confirm OAI-SearchBot, ChatGPT-User and GPTBot appear in robots.txt without a Disallow, and that no firewall rule, bot-protection preset or CDN challenge blocks them.
Bing indexation
Claim Bing Webmaster Tools — a separate product from Search Console with a separate index — submit the sitemap, add IndexNow for new URLs, and inspect each priority page individually.
Verify: URL Inspection in Bing Webmaster Tools should report indexed, not "discovered but not indexed". Common roofing failure: storm pages published in a hurry during claims season never getting discovered until the season is over.Directory and listing accuracy
The lists that supply at least 82% of roofing answers must carry your legal name, current phone, hours and service area — and must actually exist. Claimed but unclaimed profiles both get cited; a stale one damages you quietly.
Verify: run the four prompt classes in section twelve and record which domains are cited in your metro, then audit only those. Common roofing failure: an old tracking number still on Expertise or BBB from a previous agency.Homepage clarity
Two thirds of roofing site citations land on the homepage, so the homepage must state what you do, where you do it, and one verifiable fact — in the first screen, in the HTML.
Verify: fetch the homepage with a plain-text client and confirm the service, city list and the fact appear in the raw response. Common roofing failure: a hero video with the actual sentence rendered by JavaScript, or in an image.Passage specificity
The page must contain at least one sentence combining your company, a number and a scope, in a form that survives being lifted out of context.
Verify: paste the sentence alone to a colleague and ask what it claims and who said it. If either answer is unclear, rewrite it. Common roofing failure: every page says "quality craftsmanship" and the price lives in a PDF or a form.Note the ordering logic: gates one and two are binary and free. Gates three to five cost money and time. Doing them out of order is the single most common reason a roofing company spends a year on content and still gets named in nothing.
The lead-quality consequence of getting these five right is covered in full roof replacement leads from serious homeowners. For the fuller mechanics of gates two through five, including passage engineering and the citation datasets behind them, the roofer's GEO playbook goes deeper on the same funnel; this article is the routing decision version.
05The directory layer: which lists, in which country
For every other home-service trade this section would be a footnote. For roofing it is the main event, because directories supply the bulk of ChatGPT's roofing answers. The useful question is which ones, and the answer changes at the Canadian border.
| Source | Share of ChatGPT roofing answers | What to fix first |
|---|---|---|
| Expertise.com | 40.0% | Verification status, service list, and whether the profile exists at all in your metro |
| Angi / HomeAdvisor | 34.5% | Phone number, licence field, service categories, and whether the profile is shared-lead flagged |
| HomeStars Canada | 25.7% | Cited in 40% of Canadian answers and none of the US ones — the single most important Canadian fix |
| BBB | 20.8% | Accreditation status, complaint record, and the category tags — the top source in an independent Florida study |
| Perplexity's set | BBB 59.6% · Angi 47.9% | Different engine, same records; Perplexity cited own sites in only 64.0% of roofing answers |
Cheers Market Baseline, roofing questions, 31 August–20 September 2026. Perplexity figures from the same dataset. Shares are of answers, not of citations, and the two are not interchangeable.
This is the layer our roofing marketing agency programme audits first, before any page work begins. An independent study of 10 Florida metros in April 2026 found the same shape with a different leader: BBB was cited in 272 queries, ahead of Angi at 170 and Yelp at 160, and the authors attributed it to roofing's higher trust and fraud concern. Across five platforms and 1,981 businesses, not one roofing company appeared on all five. A separate analysis found 97.2% of the roofers it saw named appeared on only one platform.
If at least 82% of ChatGPT's roofing answers cite a list and 17.8% cite a roofer's site, then the marginal hour is better spent fixing four directory records than writing a fifth service page. That is not a pleasant conclusion for anyone selling content, and it is what the data says.
The exception is Google AI Mode, where the ratio inverts. Section eleven separates the two.
06The homepage concentration problem
When any of the four engines cited a roofing company's website, 67.7% of those citations went to the homepage. Blog posts drew 3.6%. The comparison is stark: for heating and cooling the homepage share is 45.8%, for plumbing 35.7%.
Read that twice, because it invalidates the standard content plan. A roofing company that publishes forty articles about ice dams, attic ventilation and insurance claims is investing almost the whole budget in the format that earns 3.6% of citations. The homepage earns two thirds.
This does not mean articles are worthless — they do different work in different engines, and Google AI Mode rewards page-level depth. It means the homepage is not a brochure. It is the cited document, and it should be built like one.
What a citable roofing homepage contains
- A plain-text entity sentence in the first screen. Company name, what it installs and repairs, and the cities or regions served — as selectable text, not baked into a hero image.
- A verifiable fact with a date. A price range, a warranty term, a crew count, an insurance-claim completion figure — one number, attributed to you, with a review date.
- A service-area list in HTML. Individual city names, not "the Greater Toronto Area" and not a map widget.
- Licence and credential text. Plate or licence number, manufacturer certifications, and years in operation, written out rather than shown as badge images.
- Ratings as text. Review count and average, stated. AI Mode displayed rated business cards in 92.7% of roofing answers, so the number is being read.
- Internal links to the five pages that matter. Cost, storm damage, insurance claims, materials, service areas — present in the HTML, not behind a menu script.
The vertical-specific marketing guides we publish follow the same principle in other trades: the page that gets quoted is the one that states something checkable, and it is usually closer to the homepage than the content calendar assumes.
07The manufacturer-programme layer
Roofing has a source layer no other home-service trade has: the shingle manufacturers. Gemini named a manufacturer contractor programme — GAF, Owens Corning, CertainTeed and the like — in 56.3% of its roofing answers. Google AI Mode named one in 31.3%. In the answers where Gemini's citations were captured, manufacturer and trade-body sites supplied 15.2% of citations.
Two consequences follow, and they cut in opposite directions.
As a risk: a certified contractor is competing with the certification itself. If a homeowner asks which system to install, the manufacturer's page will win and your role is to be attached to that system. Being an uncertified installer removes you from the layer that supplies half of Gemini's answers.
As an opportunity: the dealer-locator page is a third-party citation about you that you can partly influence and can verify. If your company is listed with a dead phone number or an old address on a manufacturer's locator, you have a citation working against you, and no amount of homepage copy overrides it.
Look yourself up in every manufacturer contractor locator you are certified by, in the way a homeowner would: city name, not company name. Verify the phone, the address and the service radius. Then do the same for the trade associations you belong to.
This takes an afternoon and it is the only gate in this article that nobody else in your market is likely to have done.
The same asymmetry appears on the commercial side of roofing, where manufacturer brand queries dominate informational prompts. Competing on "which shingle system" is a losing game for an independent; competing on "what does a hail-damage claim in [city] actually involve" is not, because the number and the process live in your claims file. That distinction is the same one that separates a paid roofing campaign that converts from one that buys research traffic, and it is why ChatGPT Ads for roofers has to be built around claim and cost prompts rather than brand or material prompts.
08Writing the passage that gets quoted
With the gates open and the listings clean, the remaining work is on the page — and the test is not readability, it is extractability. A passage gets used when a system can lift it, keep its meaning, and know who said it.
"Replacing a 2,000-square-foot asphalt shingle roof in Markham costs $9,800 to $16,400 including tear-off and disposal, based on [Company]'s 2026 installations; a hail-damage insurance claim in Ontario typically covers replacement minus the deductible when the damage is documented within the policy window."
A number with a unit, a scope bounded by size and geography, the company name bound to the claim, and a rule that lets the answer explain rather than merely list.
Compare that with the sentence roofing websites actually publish: "We provide quality roofing services with unmatched craftsmanship and customer care." There is nothing to extract, nothing to compare, and nothing attributable. The page is not penalised; there is simply no fact in it.
The five facts a roofing company owns
| Fact type | Where it lives | Why no competitor can copy it |
|---|---|---|
| Installed cost range by roof size | Your job files | Their range is different and they cannot cite yours |
| Insurance claim timeline | Your claims log | It is your market's actual adjuster behaviour, not a national average |
| Warranty terms in practice | Your service records | What you honour, not what the manufacturer prints |
| Materials you install and why | Your supplier relationship | A named system beats a generic "architectural shingle" |
| What you do not do | Your scheduling | The advice-shaped claim nobody else will make |
The strategy behind which of those five facts to lead with is discussed in the podcast episode on the future of advanced SEO for roofers in the AI era.
Two formatting notes that cost nothing. Put each fact in prose as well as in any table — tables get parsed, but a sentence with a subject and a verb is what an answer reuses when it needs to explain. And put the most important one above the gallery: published analysis of 1.2 million answers found 44.2% of ChatGPT citations traced to the first 30% of the page.
For the deeper structural treatment — chunking, heading semantics, the difference between a passage that survives extraction and one that does not — the roofing local SEO strategy collection covers the page-level work in more detail than is useful here.
09Roofing-specific structured data
Schema markup is not a citation lever. A controlled test of 1,885 pages adding JSON-LD against roughly 4,000 matched controls measured effects between −4.6% and +2.2% across three AI surfaces. What it does is remove ambiguity about who you are and what a number means — and roofing happens to have better vocabulary available than most trades.
This matters because schema.org has a dedicated roof type. Unlike window and door installation, which has no installer subtype, roofing can use RoofingContractor directly. Using it is a small, free specificity gain that most roofing sites skip.
{
"@context": "https://schema.org",
"@type": "RoofingContractor",
"name": "Example Roofing Ltd.",
"url": "https://example.com/",
"telephone": "+1-905-000-0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Markham",
"addressRegion": "ON",
"postalCode": "L3P 0A0",
"addressCountry": "CA"
},
"areaServed": [
{ "@type": "City", "name": "Markham" },
{ "@type": "City", "name": "Stouffville" },
{ "@type": "City", "name": "Richmond Hill" }
],
"hasCredential": {
"@type": "EducationalOccupationalCredential",
"name": "Licensed roofing contractor, Ontario",
"credentialCategory": "license"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.7,
"reviewCount": 214
},
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Asphalt shingle roof replacement",
"areaServed": "Markham, Ontario"
},
"priceSpecification": {
"@type": "PriceSpecification",
"priceCurrency": "CAD",
"minPrice": 9800,
"maxPrice": 16400,
"valueAddedTaxIncluded": false
}
},
"sameAs": [
"https://www.houzz.com/pro/example-roofing",
"https://www.gaf.com/en-us/roofing-contractors/commercial/canada/ontario/markham"
]
}
Three rules for implementing it without creating a liability. Ratings must match the visible page — markup that overstates reviews is the fastest way to get a manual action on a local business. Prices need a date somewhere on the page, because a price range that never changes reads as stale, and cited content ran roughly 25.7% fresher than organic results in one dataset. And sameAs is the highest-value field for a roofer, because it does the entity-disambiguation work: it tells the system that your site, your BBB profile, your HomeStars page, your manufacturer locator entry and your Google Business Profile are one business. Given that 97.2% of named roofers in one study appeared on only one AI platform, identity consolidation is worth more than additional pages.
If the entity work is where your site is weakest, that is the core of an AI SEO programme rather than a schema task. Validate with the schema.org validator at schema.org and the Rich Results test, and keep the markup and the visible page in sync in the same commit — the most common schema failure in contractor sites is markup that was correct two addresses ago.
10Reviews: what the data actually rewards
Roofers are told constantly that review volume drives AI visibility. The published numbers do not support the version of that claim being sold.
| Measure | Roofing | Heating and cooling, for contrast |
|---|---|---|
| Median Google reviews of a named company | 130 | 449 |
| Named companies with 1,000+ reviews | 4.1% | 30.8% |
| Answers naming a company with under 20 reviews | 23.6% | Not published in the same cut |
| Named companies showing under 4.0 stars | 0.6% | Not published in the same cut |
Two readings, both useful. The first is encouraging: a roofer with 130 reviews is at the median of what AI Mode actually names, so review volume is not the gate it is assumed to be, and nearly a quarter of answers name a company with fewer than twenty. The second is the real lesson: 94.4% of named companies were rated 4.0 or above, and almost none were below. The signal being read is not volume, it is the floor. A 3.9-star roofer is functionally excluded; a 4.4-star roofer with 90 reviews competes.
Stop buying review volume. Fix the floor, then fix the recency. A profile with 140 reviews and none since March looks dormant next to one with 90 reviews and four this month, and consumer research consistently weights recent reviews far more heavily than lifetime totals.
The operational move is unglamorous: ask at handover, ask for a sentence about the work rather than a star rating, and reply to every review including the bad ones, because the reply is readable text that describes how you behave.
That last point is underrated. Reviews are one of the few places a roofing company produces descriptive prose written by and about itself in public, in the customer's own words, at scale. A reply that says "we replaced fourteen squares after the August hailstorm and the leak at the chimney flashing turned out to be a step-flashing failure" is a citable fact in a way that "thanks for the kind words!" is not.
11One site, four engines: a routing table
The single most useful planning artefact in this discipline is a table that says, for each engine, which layer supplies its roofing answers — because the layers are not the same and effort is finite.
| Engine | What it leans on for roofing | Highest-leverage fix |
|---|---|---|
| ChatGPT | Directories and ranking lists dominant; roofer's own site in 17.8% | Listing accuracy on Expertise, Angi and — in Canada — HomeStars, plus BBB |
| Perplexity | Lists harder still: BBB in 59.6%, Angi in 47.9%; own site in 64.0% | Same records, weighted toward BBB and the aggregators |
| Google AI Mode | Company websites in 87.2%, rated cards in 92.7%, GBP in 95% | Homepage, Google Business Profile, review floor |
| Gemini | Manufacturer contractor programmes in 56.3%; manufacturer and trade sites in 15.2% of cited answers | Certification status and locator accuracy |
Three practical conclusions follow.
If your customers ask ChatGPT, the directory layer is the strategy. That sounds defeatist to anyone who sells websites, and it is simply what the citation data shows. It also happens to be cheap and fast, which is unusual for this channel.
If your customers use Google's AI surfaces, the website is the strategy — specifically the homepage, the business profile and the review floor. This is where the roofing SEO work of the last decade still pays, which is why we run the roofing SEO programme as the base layer rather than as a separate AI product.
If your market is certification-driven, the manufacturer layer is the strategy. Being absent from a locator that supplies half of Gemini's answers is a gap no on-page work closes.
And a caution that applies to all four rows: these are single-dataset shares from a specific 28-day window, on two questions. They describe a direction and a relative ranking, not a fixed percentage you can bank. A different question set would move every number in the table.
12Instrumentation you can run this week
Three instruments, two of them free and first-party. The point is to stop arguing about whether AI visibility exists and start measuring it in your own market.
1. Bing Webmaster Tools AI Performance report. Added on 10 February 2026 and free, it shows when AI answers cite your pages across Copilot, Bing's AI summaries and selected partner integrations. If this report is empty for a roofing site that ranks well in Bing, that is a finding.
2. Search Console's generative AI report. Launched 3 June 2026, showing impressions where pages appear as citations in AI Overviews, AI Mode and Discover's AI features. Coverage rolled out unevenly, so verify availability in your property before planning around it.
3. A monthly prompt panel — the only instrument that measures the thing your customer actually experiences. Twenty prompts, four classes, same order every month, logged rather than screenshotted.
# Roofing prompt panel — 20 prompts, 5 per class, city-modified
# Run logged out, in a private window, same day each month.
#
# Class A · Selection "who are the best roofing companies in [city]"
# "best roof repair company near me"
# Class B · Cost "what does a roof replacement cost in [city]"
# "how much is a roof repair vs replacement"
# Class C · Storm / claim "roofer for hail damage in [city]"
# "does insurance cover a roof replacement in [province]"
# Class D · Material/process "is a metal roof worth it in [province]"
# "how long does a roof replacement take"
#
# Log per prompt: named? | position | engine cited my domain? | which domains cited
Log the cited domains column first, not the mentions column. Four weeks of that log tells you which directories and which competitors' pages are supplying your market's answers — which is the input to the entire directory audit in section five. A roofing company that runs this panel for one month knows more about its AI visibility than most agencies will tell it.
Then connect it to money with two joins. Call tracking, so a call from a directory card or a brand search is attributable at all. And an intake source field — "how did you first hear about us?" with an AI assistant option — because brand follow-up after reading an answer arrives in analytics as ordinary organic traffic. Consumer research puts AI use for local business recommendations at 45% in BrightLocal's 2026 survey, up from 6% the year before; some of those people are already calling you and being credited to the wrong channel.
The measurement discipline that matters most: judge the panel monthly, the directories quarterly, and revenue semi-annually. Same-day repeats of the same question have been reported to overlap by only about 41% in domain terms, which means any single screenshot is noise and only a longitudinal log is evidence.
13Storm season: the demand spike problem
Roofing has a demand pattern the other trades do not: a weather event creates a two-week window in which thousands of homeowners ask the same question at once. That compresses every timescale in this article, and it breaks the usual sequencing.
The retrieval layer is live, so a page that is indexed can be cited within days. But indexation is not instantaneous, and a storm page published the morning after an event is competing with directory pages that have existed for a decade and are already the source the engine trusts. The asymmetry is complete: your page is new and unknown, the directory is old and citable, and the question being asked is a comparison question.
Storm and claim pages must exist, be indexed in Bing, and be listed in the sitemap before the first event — because their job is to already be in the candidate pool when demand spikes. Drafting them during the spike is a paid media job at that point, not an organic one.
Same for the directory records: the phone number that a homeowner dials in a panic on a Saturday is the one sitting on a listing you audited in April.
Three roofing-specific additions to the standard build:
- A dated claim-process page per market. Not "we handle insurance" — the actual sequence, the documents, the typical timeline in your province or state, and what the homeowner must do within the policy window. This is the page that gets quoted into storm prompts.
- Service-area pages that name the municipality in the first sentence, because "roofer near me" is resolved geographically and the city name is the extractable token.
- Emergency contact as text. Hours, after-hours line, and response window stated as a number. In an emergency query the answer is often the contact detail, and a contact detail that only exists inside a form is uncitable.
The interaction with paid media is worth stating plainly, because it is where the budget actually goes: during a spike, paid search and local services ads capture demand that organic cannot reach in time, while the organic work pays off in the following season. The high-intent roofing leads analysis sets out how those two layers are meant to hand off, and the booked-appointment SEO strategies cover the appointment-stage measurement that decides whether any of it worked.
14What does not work
- Publishing llms.txt. In an analysis of 137,210 domains, 97% of published llms.txt files received zero requests, and most of the traffic that did arrive came from SEO audit tools. Google's own guidance on the file, published in May 2026, was that it neither harms nor helps. Ship it for agent readiness if you want; it will not move citations. The evidence is collected in the llms.txt guide for roofers.
- Schema markup as a ranking lever. Between −4.6% and +2.2% in the best-controlled public test. Use it for entity disambiguation, which is a real gain, not for position.
- Content volume. In this trade specifically, blog posts drew 3.6% of site citations. Forty articles do not beat one accurate homepage and four correct listings.
- Blocking AI crawlers as a negotiating tactic. Blocking
GPTBotexcludes you from training only. BlockingOAI-SearchBotremoves you from answers entirely, which is a different decision with a different cost, and most sites that did it intended the first and got the second. - Google-only measurement. Search Console alone cannot see ChatGPT. If your entire reporting stack is Google, your roofing AI visibility is unmeasured, not absent.
- Guaranteed placement in AI answers. No one can promise a position inside a generative answer, and the 41% same-day domain overlap is the reason. Anyone offering that guarantee is selling something else.
- Buying reviews to clear a threshold. With 23.6% of named roofers holding under twenty reviews and 94.4% rated 4.0 or above, the threshold being tested is a floor, not a mountain. Undisclosed purchased reviews fail that floor the moment one is removed.
15The 90-day build
| Week | Work | Verified when |
|---|---|---|
| 1 | robots.txt and firewall audit for OAI-SearchBot, ChatGPT-User and GPTBot; OpenAI IP ranges allowed at the edge. | A plain-text fetch of your homepage returns the content, not a challenge page |
| 2 | Bing Webmaster Tools claimed, sitemap submitted, IndexNow implemented, priority pages inspected individually. Bing AI Performance report enabled. | Priority pages report indexed; the AI Performance report is live |
| 3 | Twenty-prompt panel built across the four classes, run once, logged with cited domains per prompt. | A baseline log naming the directories and competitors supplying your market |
| 4–5 | Directory audit limited to the domains the panel actually showed: name, address, phone, hours, service area, licence field, category tags. | Every cited listing matches the site exactly |
| 5 | Canadian or US split applied: HomeStars and YellowPages.ca for Canadian markets; Expertise and Angi for US markets. | No effort spent on a directory that is irrelevant to your country |
| 6–7 | Homepage rebuilt as a cited document: entity sentence, service-area list in HTML, one dated verifiable fact, licence text, ratings as text. | The homepage contains a sentence that could be quoted alone |
| 8 | RoofingContractor schema with areaServed, hasCredential, sameAs to every real profile, and a dated price range. | Validator passes and the markup matches the visible page |
| 9 | Manufacturer locator and trade-association records checked in every city you serve. | No dead number or old address on a locator page |
| 10–11 | Five fact pages: cost by roof size, storm damage, insurance claim process, materials, service areas. Each with one attributable number. | Each page passes the standalone-sentence test |
| 12 | Review floor and recency: handover ask script, reply to every review with descriptive detail. | Rating at or above 4.0 with reviews in the last 30 days |
| 13 | Panel re-run, compare cited domains and mentions against week three. Decide one variable to change. | A decision, not a dashboard |
What to expect at day ninety: the directory and homepage gates produce movement first, usually within three to six weeks, because they act on sources that are already being retrieved. Passage-level work on your own pages compounds more slowly, and in ChatGPT it may never beat the lists for selection queries — which is precisely why the routing table in section eleven exists.
16Sources and confidence
Every figure above traces to one of the following. Most of the trade-specific data comes from agencies and research vendors with a commercial interest in the conclusion, so it is labelled rather than presented as independent research.
| Source | What it supports | Confidence |
|---|---|---|
| Cheers Market Baseline, roofing analysis, verified 28 September 2026 | 600 ChatGPT roofing answers, 31 Aug–20 Sep 2026: roofer's own site in 17.8% vs 44.0% HVAC and 53.7% plumbing; ≥82% cited a directory or list; Expertise 40.0%, Angi/HomeAdvisor 34.5%, HomeStars 25.7%, BBB 20.8%; Google AI Mode own-site 87.2% and rated cards 92.7%; homepage share of site citations 67.7% and blog posts 3.6%; Perplexity BBB 59.6%, Angi 47.9%, own site 64.0%; HomeStars 40% of Canadian answers and none of the US ones; Gemini named manufacturer programmes in 56.3% and AI Mode 31.3%, manufacturer/trade sites 15.2% of Gemini citations; median 130 Google reviews for named roofers (HVAC 449), 4.1% with 1,000+, 23.6% of answers naming a roofer with under 20 reviews, 0.6% under 4.0 stars, base 2,426 rated appearances in 556 answers; national franchise named in 0.9% of roofing answers | Published vendor baseline, aggregate |
| KKV Labs Roofing AI Visibility Index, September 2026 | Google AI Mode, 60 US cities, 277 companies named, 4.6 per city (range 3–6); 100% of 20 captured answers cited the roofer's own site, 95% a Google Business Profile, 90% another directory, Angi 35%, Yelp 35%, Reddit 20%, Facebook 5% | Small citation sample (20 answers), vendor |
| Local Vitals Florida Roofing AI Visibility Study, April 2026 | 745 queries, 10 metros, 5 platforms, 1,981 businesses: BBB cited in 272 queries ahead of Angi 170 and Yelp 160; no roofing company appeared on all five platforms; 97.2% of named roofers appeared on only one platform | Vendor study |
| Routeless roofing research, July 2026 | 90 answers, 5 metros, 3 engines, 238 companies named; directories supplied 9.6–26.9% of citations depending on city; BBB cited 50 times | Vendor study, small n |
| Seer Interactive, February 2025 | 500+ SearchGPT citations: 87% matched Bing top results against 56% for Google | Observational, documented method |
| OpenAI documentation and Web Search API | OAI-SearchBot governs presence in ChatGPT search answers; a site must allow the crawler and traffic from published IP ranges; external_web_access exposes a cache-only mode; GPTBot and ChatGPT-User are separate agents | Primary |
| Independent index research, September 2026 | OpenAI operating its own crawl, cache and specialised indexes; index in preview reported around 3.2 billion pages. OpenAI has not publicly confirmed the architecture | Reported, unconfirmed by OpenAI |
| Promptwatch fan-out analysis, September 2026 | Average cited sources per ChatGPT answer of roughly 4.7–4.9 since March 2026; searches per response up from about 1.08 to 1.83; ChatGPT increasingly searches inside specific sites | Vendor analysis |
| Bing Webmaster Tools | AI Performance report added 10 February 2026: first-party visibility into AI answers citing your pages | Primary |
| Google Search Console | Generative AI performance report launched 3 June 2026, covering AI Overviews, AI Mode and Discover AI features; uneven rollout | Primary |
| BrightLocal 2026 Local Consumer Review Survey | 45% of consumers used AI tools for local business recommendations in the past year, up from 6% the year before | Long-running survey |
| Ahrefs | JSON-LD experiment: 1,885 pages against ~4,000 controls, −4.6% to +2.2% across three AI surfaces; llms.txt log analysis showing 97% of files received zero requests across 137,210 domains; cited content roughly 25.7% fresher than organic results | Published studies |
| Semrush ghost-citation analysis | 61.7% of citations were ghost citations where the domain was used but the brand was not named | Vendor, reported secondhand |
| Kevin Indig, 1.2M answers | 44.2% of ChatGPT citations traced to the first 30% of the page | Analyst study |
| Axios, October 2026 | 41% domain overlap on same-day repeats of identical questions | Reported research |
How this page is built for machine reading. The structure is deliberate: a summary block above the first section, a direct answer in the first hundred words, one idea per paragraph, an explicit question-and-answer module, defined terms at first use, and structured data for the article, the FAQ, the glossary and the procedure. Heading order and page semantics follow W3C HTML guidance, the markup vocabulary is the public schema.org standard, and every figure is inline SVG rather than a late-loaded image, keeping the page free of external requests and layout shift in line with the Core Web Vitals guidance.
Four caveats travel with the evidence. The roofing shares come from two questions in one 28-day window, so they describe direction and relative ranking rather than fixed rates. Most of the citation studies are US-weighted, and the Canadian directory set differs materially — which is why HomeStars is called out separately. The own-index research is reported rather than confirmed by OpenAI. And nothing in the literature tests whether a directory fix produces more booked roofing jobs; that chain is a reasonable inference, not a measured result, and it should be validated in your own market before it becomes a budget line.
17Questions we get asked
How can my roofing business appear in ChatGPT search results?
Five gates, in order: allow OpenAI's search crawler and its IP ranges; get indexed in Bing; make the directory records ChatGPT actually quotes accurate; state your service, service area and one verifiable fact on the homepage in plain HTML; and put a specific, attributable fact on the page. Roofing fails mostly at gate three, because at least 82% of ChatGPT's roofing answers cite a directory or list while only 17.8% cite a roofer's own site.
Why is roofing cited less often than plumbing or HVAC?
Because the buying question is a comparison. "Who are the best roofing companies near me" is a question directories are built to answer and a single company's site cannot answer about itself. ChatGPT cited a roofer's own site in 17.8% of roofing answers against 44.0% for heating and cooling and 53.7% for plumbing — in the same baseline, on the same days. It is a question-form effect, not a site-quality effect.
Do I need to be in Bing to appear in ChatGPT?
It helps substantially and no longer explains everything. Seer Interactive found 87% of SearchGPT citations matched Bing's top results, so Bing indexation is the single best proxy. But OpenAI also runs its own crawler and cache, so a page that is blocked from OAI-SearchBot or from OpenAI's IP ranges can be perfectly indexed in Bing and still never appear.
Which directories matter most for roofing?
For ChatGPT in the US, Expertise.com (cited in 40.0% of roofing answers), Angi or HomeAdvisor (34.5%) and BBB (20.8%). In Canada, HomeStars, cited in 40% of Canadian answers and none of the American ones. Perplexity leans harder on BBB (59.6%) and Angi (47.9%). An independent Florida study found BBB the single most-cited source for roofers, ahead of Angi and Yelp.
Should I write more blog posts or fix my listings first?
Listings first. When engines cited a roofing company's website, 67.7% of those citations went to the homepage and only 3.6% to blog posts. With directories supplying the majority of answers, four accurate listings do more for ChatGPT visibility than forty articles. Articles still earn their keep in Google AI Mode, which cited company websites in 87.2% of roofing answers.
How many reviews do I need?
Fewer than you have been told. The roofers Google AI Mode named had a median of 130 Google reviews, and 23.6% of those answers named a company with under twenty. What almost none of them had was a rating below 4.0 — 94.4% were at or above it. The signal being tested is the floor and the recency, not the lifetime count.
Does schema markup help me get cited?
Not as a ranking lever — the best-controlled public test measured effects between −4.6% and +2.2%. It helps in a different way: roofing has a dedicated RoofingContractor type, and fields like areaServed, hasCredential and sameAs tell the system that your site, your BBB profile, your HomeStars page and your manufacturer locator entry are one business. Given that 97.2% of named roofers appeared on only one AI platform, identity consolidation is the real gain.
How do I check whether ChatGPT recommends me right now?
Two ways. Ask ChatGPT a real customer question in a logged-out private window and record whether you are named, where, and which domains are cited — then repeat monthly with the same twenty prompts. And enable Bing Webmaster Tools' AI Performance report, added 10 February 2026, which shows first-party data on AI answers citing your pages. Search Console's generative AI report, launched 3 June 2026, covers the Google side.
How long does it take?
Directory and crawler-access fixes can show movement in three to six weeks, because they act on sources that are already being retrieved. Homepage and passage work compounds over a quarter. And a caution: because same-day repeats of one question overlap by only about 41% in domains, a single check is meaningless — the trend across a monthly log is the evidence.
Can anyone guarantee my roofing company will appear in ChatGPT?
No. Generative answers are not a fixed ranking, the source set shifts between identical prompts, and no vendor has visibility into the selection step. What can be guaranteed is the work: crawler access verified, Bing indexation verified, listings matching the site exactly, a homepage that states a quotable fact, and a monthly panel that shows whether any of it worked. Anyone selling placement inside an AI answer is selling something other than that.
18Glossary
- OAI-SearchBot
- OpenAI's crawler for ChatGPT search. Separate from GPTBot (training) and ChatGPT-User (live fetch). Sites that disallow it are not shown in ChatGPT search answers.
- ChatGPT-User
- The agent that fetches a specific page live when a user's question calls for it. Pages it fetches also enter the cached index.
- GPTBot
- OpenAI's training crawler. Blocking it affects training only, not search eligibility.
- IndexNow
- A protocol for notifying Bing and other participating engines when a URL is created or changed, shortening the gap between publishing and indexation.
- Query fan-out
- Rewriting one conversational question into several shorter search queries before retrieval.
- Candidate set
- The pages retrieved for a prompt before selection. Roughly five sources are cited in a typical ChatGPT answer.
- Ghost citation
- A source used in an answer whose brand is not named inside it. Reported at 61.7% of citations in one analysis.
- Mention
- Your company named inside the answer text, as opposed to your domain being cited. Only a mention produces a phone call.
- Homepage concentration
- The share of a trade's site citations that land on the homepage. Roofing measures 67.7%, the highest recorded.
- RoofingContractor
- The schema.org type for a roofing business. Unlike window and door installation, roofing has a dedicated subtype.
- sameAs
- The schema.org property that links a business entity to its other public profiles, used for identity consolidation across listings.
- Service-area page
- A page naming a municipality and the services provided there, structured so the geography is extractable as text.
- Prompt panel
- A fixed set of prompts asked in the same order monthly, producing a log of mentions, positions and cited domains instead of screenshots.
- AI Performance report
- Bing Webmaster Tools' first-party report, added 10 February 2026, showing when AI answers cite your pages.