Most roofers don't have a leads problem. They have a rented-leads problem.
They're paying Angi or a "storm leads" vendor for the same homeowner four other roofers just got, racing to a phone that's already ringing off someone else's speed dial. Meanwhile their Google Business Profile has six photos from 2021.
I've spent ten years managing ad budgets for service businesses, 63+ clients since 2021, and here's the system I'd build for a roofing company today, ranked by leverage. Highest return on effort first. Paid ads last, on purpose.
First, the frame: bought leads are a bridge, not a business
Shared-lead vendors typically sell the same homeowner to multiple contractors, commonly described as up to four or five. On a roofing ticket, losing those footraces gets expensive fast, and the refund fights people report don't give you your afternoon back.
I'm not telling you never to buy leads. A new roofing company can use them as fuel while the real machine gets built. I'm telling you they're rent. What follows is how you build the demand you own, so the rent gets optional.
Move 1: Get your Google Business Profile done right (highest leverage, costs nothing)
When a homeowner has a leak, the first stop is Google, and the map pack eats most of that attention. Your GBP is the single highest-leverage free asset in roofing, and most profiles I audit are half-finished.
Here's the 30-day milestone I give every client:
- Every field complete: services, service areas, hours, description written for a homeowner, not a search engine.
- 20 real photos. Crews on roofs, before-and-afters, drone shots if you've got them. Phone photos beat stock photos every time.
- 10 posts. Finished jobs, storm-prep tips, financing options. One or two a week is plenty.
That's it. Thirty days, a few hours of work, and you're ahead of most roofers in your market who set their profile up once and forgot it existed.
Move 2: Build a review machine into every job
Reviews are the currency of local search, and roofing has a built-in advantage: every job ends with a homeowner standing in their driveway looking at a brand-new roof. That's the moment.
Make the ask a step in your job-close checklist, same as final inspection. The foreman or the owner asks in person, then texts the review link before leaving the driveway.
The ladder I use, hedged honestly because nobody can promise rankings:
- Around 10 reviews: generally enough to start testing Local Services Ads.
- Around 50: competitive in many markets.
- 100+: you're an authority, and everything else in this system works better.
A roofer doing 15 jobs a month who asks every customer can climb that ladder in months, not years. Scripts and timing are in my guide on how to get more Google reviews.
One more thing while we're here: reply to every review, good and bad, within a couple of days. It signals to homeowners that a real person runs this company, and a calm, professional reply to a bad review does more selling than ten five-star ratings. Angry replies do the opposite, so write them the next morning, not the same night.
Move 3: Turn on Local Services Ads once you have 10+ reviews
LSA puts you at the very top of the page, you pay per lead instead of per click, and the lead is yours alone. Nobody sold it to four other roofers.
Budget discipline matters more than budget size:
- Under 10 reviews: $10 a day. You're testing, not scaling.
- Cap at $50 a day until LSA reliably brings one or two qualified leads per day.
- Dispute junk leads promptly and answer every call live, because responsiveness affects how much LSA feeds you.
On roofing tickets, a $50-a-day LSA budget that produces even a couple of jobs a month is already interesting math. Run it for a quarter before you judge it.
Move 4: Build referral loops with adjacent trades
The most underpriced roofing lead source isn't online at all. It's the gutter guy, the solar installer, the painter, the home inspector, and the insurance adjuster who are standing on or near roofs all week.
Pick five adjacent businesses and make it formal:
- Meet face to face. Agree on what a good referral looks like in both directions.
- Make referring you effortless: a text template with your number, or a stack of cards in their truck.
- Reciprocate loudly. Send them work first. The trade who refers first wins the loop.
- Close the loop every time: "That homeowner you sent me signed yesterday. Thank you." People repeat what gets acknowledged.
Five active loops sending you one job a month each is sixty jobs a year at essentially zero marketing cost. Show me a lead vendor that beats that.
Move 5: Paid search, but only past the readiness gate
Google Ads works for roofers. It's also where roofers burn the most money, because they turn it on before the business is ready to convert what it buys.
Cost-per-lead reality: paid search leads run roughly $60 in cheaper trades like painting or pest control, up to around $300 for remodel and roofing. Yes, $300 per lead. On a roofing ticket, that's survivable. Close one $12,000 roof out of every eight $300 leads and you've paid $2,400 to collect $12,000, which is 5X and clears my 3X rule: over 3X collected revenue against all channel costs, keep it; not sure, pause and fix the system.
But that math only works if every lead gets caught and counted. So here's the gate. Don't spend a dollar on paid search until:
- You have around 50 reviews. Ads get clicked; reviews get believed. Thin proof makes every click more expensive.
- Every call gets answered, or texted back within 2 minutes. "Hey, this is Mike from Summit Roofing, gonna ring ya back shortly." Industry surveys suggest around 78% of callers won't leave a voicemail, and roughly 44% of contractors quit after one follow-up. At $300 a lead, a missed call is a $300 bill for nothing.
- Call tracking is live, so you know which dollars produce jobs and which produce noise. My call tracking guide covers the setup.
Pass all three, then read my Google Ads for contractors playbook before you launch. Fail any one, fix it first. The gate isn't bureaucracy, it's the difference between 5X and a bonfire.
What this looks like when it compounds
None of these moves is dramatic on its own. Together they compound: the GBP earns clicks, the reviews make the clicks convert, LSA rides the reviews, referrals fill the gaps, and paid search scales what's already working.
The best documented example I can give you isn't a roofer, so I won't pretend it is: a health startup we took from zero to 654 booked appointments in 90 days, running at 5.4x return on ad spend by day 60. Different industry, same system: owned presence, fast response, tracked dollars, then scale.
What I'd do
This week: finish your GBP and text a review link to your last ten happy customers. This month: hit the 20-photo, 10-post milestone and set up the review ask as a job-close step. This quarter: LSA at $10 to $50 a day, five referral loops, call tracking installed. Next quarter: if you've cleared 50 reviews and the phones are handled, turn on paid search and hold it to 3X.
Keep buying leads while you build if you have to. Just watch that line shrink every month, because that's the scoreboard.
If you'd rather do it yourself with a manual in hand, The No-Agency Kit (thenoagencykit.com) is my $27 field guide to this exact system.
And if you want it built with you, book a call and we'll map your next 90 days in 30 minutes.