Roofers find storm jobs by maintaining always-on Google LSA, paid Google Ads, and Google Business Profile presence before the storm hits. Within 2 hours of a hail event, raise LSA bids 50%, launch Google Ads emergency campaigns targeting affected ZIP codes, and post storm-area photos to GBP. Reactive-only marketing costs $110+/lead vs $45-$75.
I have had this same conversation with three different roofers in the last 18 months. Hail rolls through their territory at 4pm. By 8pm they are texting me asking if we can "turn on some ads real quick." By the time we have everything live, the homeowner who searched "roof damage near me" at 5:47pm has already booked a free inspection with the roofer who never turned theirs off.
Storm jobs do not go to the loudest roofer. They go to the fastest one.
This is the hour-by-hour clock I run when a hail event hits one of our roofing clients' service areas. Use it as a checklist. The numbers are not made up. They are pulled from the storm-response playbook we have refined across roughly 14 hail events in the last 24 months.
Why the First 72 Hours After a Hailstorm Decide Who Closes the Storm Jobs
Here is the thing nobody tells you when you start chasing storm work: the homeowner does not wait. Most roofers think they have a week. They have 72 hours.
Inside the first 72 hours after a hail event:
- Search volume for "roof damage," "hail damage roof," and "roofer near me" spikes 400-800% in the affected ZIP codes
- Out-of-state storm chasers start booking flights and hotels (you are competing with people whose entire business model is being faster than you)
- Insurance adjusters get backlogged within 5 days, so homeowners feel pressure to move FAST
- 60-70% of homeowners who eventually file a claim will have already booked an inspection with a roofer by hour 72
If you wait until day 4 to "turn on some ads," you have already lost the majority of the territory's storm jobs to the roofer who had always-on Google LSA, running Google Ads, and a fully optimized Google Business Profile before the storm hit.
The good news? You can still win some jobs reactively. The math just gets ugly. Reactive-only roofers pay $110+ per lead. Always-on roofers pay $45-$75. Same storm. Same homeowners. Different lead cost because one roofer was already in the search results when the homeowner pulled out their phone.
Hour 0-2: The Storm Just Hit. What to Do Right Now
The hail just stopped. Power is flickering. Your phone is already buzzing. Here is what happens in the next 2 hours.
Raise your LSA bid 50%. If you are normally bidding 6% above the recommended max, push it to 9-10%. LSAs reward fast responsiveness AND aggressive bidding when intent is high. Storm hours are the highest-intent hours of your year. Win the auction.
Launch your Google Ads emergency campaign. This is why "always-on" matters. The roofers who win storm jobs do not BUILD an emergency campaign at hour 0. They UNPAUSE one. Your emergency campaign should already exist as a draft with:
- Pre-written ad copy mentioning hail damage, free inspection, and same-day response
- A storm-specific landing page (not your homepage)
- ZIP-code targeting templates ready to go (you should know exactly which ZIPs got hit within 30 minutes via NOAA radar reports or HailTrace)
- Bid strategy set to Maximize Conversions with a $200-$500/day budget cap
Post to Google Business Profile. Take a phone photo of any local hail damage you see. Drop it as a GBP post with text like: "Hail just hit [neighborhood name]. We are doing free 24-point inspections through Friday. Call us." This shows up in your map pack listing and signals freshness to Google's algorithm.
Alert your call center / CSR team. Add evening and weekend hours for the next 5 days. Storm leads call after hours. The roofer who answers at 7pm wins the inspection.
Storm season hitting? Want a free audit of your storm-readiness setup? Take the 5-minute Marketing Scorecard →
Hour 2-12: The First Wave of "I Just Got Damage" Searches
By hour 2, homeowners are walking outside, looking at their cars, finding broken patio furniture, and pulling out their phones.
In hour 2-12, expect this:
- 4-6x increase in search volume for hail-related queries in your affected ZIPs
- Heavy mobile traffic (homeowners are outside, not at their desktops)
- A jump in "roof inspection near me" and "do I have hail damage" queries
- Facebook and Nextdoor posts blowing up with neighbors comparing damage
Your action list:
-
Verify your storm landing page is live and converting. This page should NOT be a generic "contact us" form. It should say: "Hail just hit [city]. Free 24-point roof inspection. Same-day response. Licensed, insured, [X] years in [city]." Mobile-first. Big phone number button at top. Simple form with 3 fields max.
-
Push 2-3 social posts. A short video walking through a hail-damaged shingle (educational, not salesy). A photo of your truck in the affected neighborhood. A reel of your owner explaining what to do BEFORE calling insurance. Real photos beat stock photos by 4-6x on engagement during storm windows.
-
Tighten geo-targeting. Pull radar reports from NOAA SPC or HailTrace. Identify the affected ZIPs. Layer your Google Ads campaign with exact ZIP targeting plus a 5-mile radius around the worst-hit areas. Do not waste spend on unaffected ZIPs.
-
Verify call tracking is firing. Every storm campaign needs a unique tracking number so you can measure cost-per-lead by source. If you cannot tell at hour 48 whether your $5,000 in ad spend produced 10 leads or 80 leads, you are flying blind.
I had a Dallas roofing client in March 2024 who skipped step 4. Spent $11,400 in 6 days, generated "lots of calls," and could not tell me how many came from ads vs. organic. That is malpractice. Do not do it.
Hour 12-48: The Insurance-Adjuster Window
Now things shift. Homeowners have done the panic search. They have pulled up the page. Some have already booked inspections. The next wave is calmer, more deliberate, and asking different questions.
In hour 12-48, the dominant search intent shifts to:
- "Do I file insurance claim for hail damage"
- "How long do I have to file hail claim"
- "Roof inspection before or after insurance adjuster"
- "Public adjuster vs roofer"
Your messaging needs to shift with it. The hour 0-12 message is "FREE INSPECTION CALL NOW." The hour 12-48 message is "We work with your insurance company. We document your claim properly. We do not chase the cheapest patch job."
Action list for this window:
-
Update your Google Ads ad copy. Swap one of your three rotating headlines from "Free hail inspection same day" to "Hail damage? We handle the insurance claim for you." Keep the urgency, add the trust.
-
Speed up your lead response time. This window is where slow roofers lose. The homeowner has called 3 roofers. The first to call back wins. We have an entire post on this (see how fast should roofers respond to leads) but the short version is: if you take more than 5 minutes to respond, your close rate drops 78%.
-
Optimize your intake form for mobile. 67% of storm-window form fills happen on mobile. If your form has more than 4 fields, kill the extra fields. Name, phone, address, brief description of damage. That is it.
-
Add live chat or SMS. A simple "Text us a photo of your roof and we'll tell you if it looks like hail damage" widget converts 3-4x better than a contact form during storm windows. Most homeowners would rather text than call when they are not sure if they actually have damage.
Hour 48-72: The Out-of-State Storm Chasers Arrive
By hour 48, white trucks with out-of-state plates are pulling into neighborhoods. Door-knockers are working the streets. Yard signs are popping up with company names nobody has heard of. This is where local roofers either win or get steamrolled.
The storm chasers have advantages. They are aggressive. They have full crews ready. They will pay for top placement on every ad platform. They are not afraid to spend $20K on ads in a weekend.
But you have ONE advantage they cannot buy: you are local. And in the hour 48-72 window, that matters more than anything.
How to position against them:
-
Lead with "local roofer" on every channel. Your Google Ads headlines, your GBP posts, your Facebook ads, your landing page above-the-fold copy. "Local [city] roofer since [year]" or "[X] years serving [city]" or "Family-owned in [city]."
-
Push reviews aggressively. This is why your always-on review request system matters. Roofers with 200+ Google reviews crush roofers with 38 reviews in storm windows. Homeowners are scared. They are vetting. They are reading review #47 to see if you actually showed up on time. Want to see this in action? See the TMC Roofing case study for how reviews compounded $3M to $8M in 12 months.
-
Ask GBP for a "What we did" post. Show your trucks, your crews, your neighborhood signage in the affected area. Visual proof that you are physically there.
-
Trust badges on the landing page. BBB. State license number. Manufacturer certifications (GAF Master Elite, CertainTeed SELECT ShingleMaster, Owens Corning Platinum Preferred). Insurance certificate. Storm chasers cannot fake these. You can.
-
A "Beware Storm Chasers" educational post or PDF. Put it on the storm landing page. Title it "5 Questions to Ask Any Roofer Who Knocks on Your Door This Week." Position yourself as the trusted advisor, not just another salesperson.
Want us to set up your always-on storm playbook before the next event? Book a 30-minute strategy call →.
What to Have in Place BEFORE the Storm (Always-On Storm Marketing Setup)
This is the part where the roofers reading this either nod and keep scrolling, or stop and realize they are screwed for the next event. If you do not have these in place BEFORE the storm hits, you are going to pay $110+/lead instead of $45-$75/lead. That is the cost of being reactive.
The always-on storm marketing checklist:
-
Google LSA running at 8-12% bid year-round. Not paused in slow months. Not "I'll turn it on for storm season." Always on. LSA reputation is built through consistent activity, response time, and review velocity. You cannot rebuild that from zero in 2 hours.
-
Google Ads account with a fully built emergency campaign in PAUSED state. Pre-built. Pre-approved. Pre-targeted. The only thing you do at hour 0 is unpause it and adjust the ZIP list. Building from scratch at hour 0 takes 4-6 hours. Unpausing takes 4 minutes.
-
Google Business Profile fully optimized. Primary category set to "Roofing Contractor." Secondary categories filled. 200+ photos. Posts every week. Q&A section answered. Services list complete. Service area set correctly.
-
200+ Google reviews minimum. This is the gating threshold. Below 200 reviews you will lose to storm chasers in your own backyard. Above 200 you become the obvious choice. Build to 200 BEFORE storm season starts.
-
Pre-built ad creative ready to push live. 4-6 ad variations written and approved. 3 landing page templates (one for hail, one for wind, one for general storm). Stock B-roll of your trucks and crews ready to drop into video ads.
-
ZIP-code targeting templates organized by region. Every market in your service area broken into ZIP groups so you can target Plano differently from Frisco differently from McKinney within 5 minutes of a storm hit.
-
Call tracking, GA4, and Google Ads conversion tracking 100% functional. Test it monthly. The roofer who cannot measure cost-per-lead during a storm is the roofer who burns through $20K of spend without knowing if it worked.
-
CSR team trained on storm scripts. Different intake script. Different urgency. Different qualifying questions. "Have you filed a claim yet?" matters more than "What's your budget?" in storm windows.
If you want help building this whole stack, that is exactly what we do at DG Agency. Storm-ready marketing infrastructure for roofing contractors. Pricing details are on the pricing page.
Reactive vs Always-On: Why Always-On Wins on Cost-Per-Lead
Let me show you the math, because this is the part most roofers do not understand until I sit them down with a spreadsheet.
Reactive-only roofer (turns ads on at hour 12):
- Average CPL across 90-day storm window: $110-$160
- Quality Score on Google Ads: low (no historical data, no relevance signals built up)
- LSA ranking: bottom of the box (no review velocity, no response history)
- Lost top-of-funnel demand for the first 12 hours (15-25% of all storm leads happen in those hours)
- Average leads in a moderate storm event: 40-60
Always-on roofer (ads, LSA, GBP running every day of the year):
- Average CPL across 90-day storm window: $45-$75
- Quality Score: high (months of data, high relevance signals)
- LSA ranking: top 3 (review velocity, fast response history, Google trusts you)
- Captured top-of-funnel demand from minute 1 of the storm
- Average leads in a moderate storm event: 100-180
Same storm. Same homeowners. Same affected ZIPs. The reactive roofer pays roughly 2-3x as much per lead AND captures 2-3x fewer leads.
If you want a deeper breakdown of where to spend, see LSA vs Google Ads for contractors. If you want to know what storm marketing typically costs, see how much roofing marketing should cost in 2026.
And if your website is taking your storm leads and dropping them, you have a different problem to fix first. Read why your roofing website is not converting.
Texas Roofers: Add These Regional Plays
Most of this playbook applies regardless of which state you are in. But if you are running a roofing company in Houston, Dallas, Austin, or San Antonio, you have a few state-specific moves worth knowing about: TWIA windstorm coverage areas, supplement education for adjusters who underpay, the Texas Department of Insurance roofing contractor registration rules, and the multi-storm-per-year cadence that lets you stack jobs differently than a one-storm-per-year market like Denver or Atlanta.
I wrote a separate playbook just for that: the Texas roofers storm restoration playbook. If you are a TX roofer, read that AFTER you have the universal 72-hour clock from this post nailed down.
Final Word and What to Do Tonight
The storm is coming. It always is. The question is whether you are going to be one of the roofers running back-of-the-envelope budgets at 9pm trying to figure out how to "turn on ads," or one of the roofers who unpauses an existing campaign in 4 minutes and goes back to working the phones.
Tonight's homework:
- Take the 5-minute Marketing Scorecard and see where your storm-readiness sits today.
- If your score is below 70, book a 30-minute strategy call and we will map out the always-on storm playbook for your specific market.
- Read the related posts on lead response, LSA vs Google Ads, and roofing-website conversion to fill in the gaps.
The roofers who win the next 5 years of storm work are the ones building always-on infrastructure right now. Not after the next storm. Right now.
Daniel