A good cost per lead for roofing Google Ads usually falls between $18 and $35, but roofing has enough quirks to make that range almost useless on its own. Storm season, insurance claims, and wide swings in average job value all push your number around in ways a generic benchmark can’t explain. Before you decide whether your CPL is good or bad, you need to know what you’re actually counting, what kind of lead you’re paying for, and what that lead is worth to your business.
Most roofers who ask this question are staring at a dashboard number and comparing it to something they read online, without accounting for the fact that their competitor’s “good” CPL came from a calm retail month and their own came from a hailstorm week. That comparison tells you nothing useful. This article walks through what counts as a lead, why the number moves the way it does in roofing specifically, and how to tell whether your CPL is a real problem or just the cost of playing in a competitive trade.
What Actually Counts as a Lead Before You Judge the Cost
A lead is a phone call, a form fill, or a verified contact through Google’s Local Service Ads (LSA) program. It is not a click, and it is not an impression. If your reporting only tracks form submissions, you’re almost certainly undercounting your real lead volume, because phone calls make up 40 to 70 percent of leads in home services businesses. That’s not a niche stat for roofing specifically, it’s the pattern across the trades, and roofing tends to skew toward the phone-heavy end because homeowners dealing with a leak or storm damage want to talk to a person immediately.
This matters because CPL math changes completely depending on what you’re feeding into it. If your Google Ads account generated 40 form fills and 60 phone calls last month, but your tracking software only logged the form fills, your reported CPL will look roughly 2.5 times worse than your real cost per lead once calls are included. Before you touch bids or budgets, confirm that call tracking is actually wired into your account and that calls of a minimum duration (most agencies set this around 60 seconds) are counted as conversions, not just any inbound ring.
The second thing to separate is lead source. Local Service Ads and standard Search campaigns are priced and tracked differently. LSAs charge per verified lead and show up with the Google Guarantee badge, which tends to draw higher-intent, lower-shopping-around homeowners. Search campaigns charge per click, and you only get a lead if that click converts. Blending both into a single average CPL hides which channel is actually pulling weight. A roofer running both should look at LSA cost per lead and Search cost per lead as two separate numbers, not one blended figure, because the fix for an underperforming LSA program (profile completeness, review volume, response time) is completely different from the fix for an underperforming Search campaign (keywords, ad copy, landing pages).
The Real CPL Range for Roofing Google Ads Right Now
As of 2026, home services Google Ads CPL generally runs $18 to $35, and roofing typically sits at or above the top of that range. The reason is competitive pressure on cost per click. National roofing franchises with large ad budgets and storm-chasing crews that flood a market after severe weather both bid aggressively on the same core terms, “roof replacement,” “roof repair near me,” “emergency roof leak.” When several well-funded competitors chase the same keywords in the same zip codes, CPCs climb, and CPL climbs with them even if your conversion rate hasn’t changed at all.
Within roofing itself, there’s a meaningful split between retail and storm-driven demand. Retail roof replacement leads, homeowners planning a non-emergency reroof, tend to cost less to generate because the search volume is steadier and less panicked. Storm and insurance-claim leads compete in a compressed window where everyone in the affected area is bidding at once, which drives short-term CPL up regardless of how well your account is built.
If your CPL comes in outside the $18 to $35 range, treat that as a signal to investigate, not a verdict. A number above $35 during a normal retail month might point to weak negative keywords or an oversized service area. A number above $50 during an active storm week in your market might be completely normal given what every other roofer is bidding. Before you assume something is broken, pull your own tracked data by campaign type and time period and compare it against your own history, not against a number from a blog post that has no idea what your market looked like last month.
Why Storm Season and Insurance Claims Push Your Number Around
Severe weather creates a short, sharp spike in high-intent search volume. The moment a hailstorm or major wind event hits a region, homeowners start searching immediately, and so does every roofing contractor with an ad budget. That collision drives CPCs up fast, sometimes within hours of the event, and your CPL follows. This is not a sign your account is mismanaged. It’s the mechanical result of more advertisers bidding on the same finite pool of clicks at the same time.
The complicating factor is that insurance-claim leads often convert at different rates and different values than retail leads. A homeower filing an insurance claim after storm damage may take longer to close because they’re waiting on an adjuster, but once the claim is approved, the job value and close rate can make a higher CPL worth it. A $45 storm-season lead that closes at 30 percent with a $14,000 average claim job produces a very different cost-per-job outcome than a $22 retail lead that closes at 15 percent on an $8,000 reroof. You can’t judge either number without carrying it through to the booked job.
Retail-only or off-season markets behave more predictably. Without the urgency of storm damage, search volume is steadier, fewer competitors are bidding reactively, and CPL tends to settle into a calmer, more consistent range. If you operate in a market with distinct storm seasons, expect your CPL to look “worse” for a few weeks or months a year and don’t panic when it does. What you should track instead is whether your cost per booked job stays reasonable across both periods, since that’s the number that actually reflects profitability.
What’s Actually Driving Your CPL Up (or Down)
Three account-level issues explain most of the roofing CPL problems we see, and none of them are about the overall market being too competitive.
The first is service-area targeting that’s too wide. If your Google Ads campaigns target an entire metro area or county when you realistically only work within a 20-mile radius of your shop, you’re paying for clicks from homeowners you’ll never actually service, or that convert into leads your crews then have to disqualify. That inflates your true cost per usable lead even when the reported CPL looks fine, because the denominator includes leads you can’t act on.
The second is a thin or missing negative keyword list. Without negatives, your ads show up for searches like “how to install roofing shingles yourself,” “roofing jobs hiring near me,” or “roofing shingles wholesale supplier.” These clicks are cheap individually, which can make your CPC look attractive, but they almost never convert into a real lead, so they quietly drag your effective CPL up over time. Building and maintaining a negative keyword list is ongoing account maintenance, not a one-time setup task.
The third is landing page mismatch. If your ad promises a free inspection, financing options, or help navigating an insurance claim, and the homeowner clicks through to a generic company homepage with none of that messaging, your conversion rate drops even though your CPC hasn’t changed. A landing page that mirrors the ad’s specific promise, with a visible phone number and a short form, converts noticeably better than a homepage repurposed as a landing page. This is one of the fastest fixes available because it doesn’t require touching your bids or budget at all.
If your CPL is running high and you haven’t audited these three things in the last quarter, that’s the place to start before you assume the market itself is the problem.
How to Tell If Your CPL Is Actually a Problem
The only useful way to judge CPL is against your own job value and close rate, not against a generic number. A $30 lead is cheap if your average roof replacement runs $12,000 and you close one in four leads that call. That same $30 lead is expensive if your close rate sits at 5 percent because your sales process is weak or your estimators are slow to follow up. The CPL number by itself tells you what you paid Google. It doesn’t tell you what you made.
A useful sanity check on total spend, separate from CPL, is the 8 to 12 percent of revenue rule of thumb for ad budgets. If you’re spending well outside that range relative to your revenue goals, either your CPL needs attention or your budget is sized wrong for what you’re trying to accomplish. This is a budget-level check, not a per-lead check, but it catches a common mistake: roofers who fixate on lowering CPL by a few dollars while running a total budget that’s disconnected from their actual revenue targets.
Cost per lead is a means, not a result. The number that actually matters is cost per booked job, sometimes called cost per acquisition. To calculate it, take your total ad spend for a period and divide it by the number of jobs actually booked from those leads, not the number of leads generated. A roofer paying $28 per lead with a 20 percent close rate is paying roughly $140 per booked job. Whether that’s a good number depends entirely on your margins and average job value, which is a conversation only you can have with your own numbers.
What to Fix First If Your Numbers Are Off
Start with tracking, not bidding. Confirm that phone calls, form fills, and LSA leads are all captured accurately in your reporting before you change a single bid or budget setting. If your tracking is wrong, every decision you make based on that data will be wrong too, no matter how sound the logic behind it is.
Next, tighten your geography to match your actual service radius, and build out a negative keyword list if you haven’t touched one recently. These two fixes typically produce the fastest, most visible improvement in effective CPL because they eliminate spend that was never going to convert in the first place. Neither requires increasing your budget.
If you find that retail CPL looks fine most of the year but spikes hard during storm season, consider running separate campaigns for retail and storm/insurance-claim demand. Separating them lets you flex messaging, budget, and even landing pages independently, rather than letting one blended campaign average out two very different types of demand and obscure what’s actually happening in each. A roofer troubleshooting a broader lead gen slump should also look at whether the issue is isolated to Search campaigns or showing up across Local Service Ads too, since the fixes diverge from there.
The CPL Number That Actually Matters
A healthy roofing CPL isn’t a number that matches a benchmark you found online. It’s a number that produces booked jobs at a cost your margins can absorb, month after month, through both retail lulls and storm surges. Get your tracking right, get your targeting tight, and then judge the result against your own close rate and job value, not against a range that has no idea what market you operate in.
Clicks Geek has been running Google Ads for local service businesses since 2015 as a Google Premier Partner, with playbooks built for 298 different industries including roofing. Tired of spending money on marketing that doesn’t produce real revenue? We build lead systems that turn traffic into qualified leads and measurable sales growth. If you want to see what this would look like for your business, we’ll walk you through how it works and break down what’s realistic in your market.
Tired of spending money on marketing that doesn’t produce real revenue? We build lead systems that turn traffic into qualified leads and measurable sales growth. If you want to see what this would look like for your business, we’ll walk you through how it works and break down what’s realistic in your market.