The leaky bucket nobody warns you about
In a competitive market, a single roofing click can run $30–60. A $100 daily budget can disappear on two or three clicks with no call to show for it. And the leads that do land? Half are renters, bargain-hunters, or someone who wanted a $200 patch.
Here's the uncomfortable part: that's not a targeting accident. That's the system working exactly as designed.
It's not your ads. It's the signal.
Running standard Google Ads is like paying a door-knocker a commission for every name they bring back — without ever checking whether those people own a home, can afford a roof, or even need one. The canvasser here is Google's bidding algorithm. It quickly learns the easiest names to collect are the ones least likely to buy. So that's what it brings you.
Standard tracking stops at the form submit. Google never learns which of those leads signed a $20,000 contract and which one ghosted. To the algorithm, a junk lead and a clay-tile replacement look identical. It optimizes for the cheapest, easiest conversion — because that's the only thing you ever told it to count.
The fix most roofers miss: close the loop
The fix isn't another round of negative keywords. It's feeding outcomes back. When a lead books an inspection or signs a contract, you tell Google. Now the algorithm can see which keywords, ads, and neighborhoods produced real jobs — not just clicks — and it starts bidding toward homeowners who look like your actual buyers, and away from the ones who waste your time.
Google's modern version of this is called Enhanced Conversions for Leads. It matches your sold jobs back to ad clicks using hashed, privacy-safe customer data instead of fragile cookies.
Feed it two signals, not one
Google's bidding needs data — generally around 30+ conversions a month to optimize well. Most roofers don't close 30 jobs a month, especially starting out. So you feed the loop at two points:
- The early signal. When a homeowner finishes an instant quote on your site, that's a high-volume "qualified lead" event — enough to train the algorithm before anything closes.
- The value signal. When the job is booked or sold, you send the actual dollar value, so Google bids toward revenue, not just volume.
One gives the algorithm enough data to learn. The other tells it what a good outcome is actually worth.
Standard vs. closed-loop, side by side
What does a lead actually cost you?
A $124 lead isn't a $124 customer. See your real cost per booked job — and what a few more points of close rate is worth — in about 30 seconds.
Google's already rewarding this
In late 2025, Google rolled out an "Online Estimates" filter for local home-service searches. When a homeowner uses it, Google surfaces contractors who offer instant online pricing and quietly pushes down the ones who don't. The direction is clear: homeowners expect a number before a callback, and Google is building its results around that. An instant-quote funnel isn't just a better experience anymore — it's becoming a visibility requirement.
Quick answers
Why are my Google Ads roofing leads so bad?+
What is Enhanced Conversions for Leads?+
What changes on June 15, 2026?+
Do I need a CRM and a developer to set this up?+
Keep reading
For the mechanics behind the fix, see offline conversion tracking for roofers, in plain English — what it is, how to set it up, and the June 15 change.
WonFlo exists because too many good roofers pour money into ads and drown in junk leads — not because their ads are bad, but because nobody is telling Google what a good customer looks like.
If you want to see it work, walk through the funnel your homeowners would.
— The WonFlo team
Try the funnel →