0:00 Intro
0:22 Typical roofing cost per lead ranges
1:31 Residential roof replacement leads
2:25 Storm damage and insurance restoration leads
3:18 Commercial roofing leads
4:13 How your market density and competition affect cost per lead
5:13 The difference between a click, a call, and a qualified lead
5:59 Why your close rate matters more than your cost per lead
6:56 Calculating your maximum allowable cost per lead
8:04 Local Services Ads versus Search Ads
9:01 How seasonal demand swings affect what you pay per lead
9:55 Red flags that your Google Ads cost per lead is too high
10:46 What to track beyond cost per lead
Full transcript
0:00 Intro
Here’s a straight answer. Residential replacement leads run $50 -150, storm restoration $80 -300, and commercial $200 -600. Whether that’s overpaying depends entirely on your job value, your close rate, and your market, and I’m going to walk you through all three.
0:22 Typical roofing cost per lead ranges
Before anything else let us level set on what a lead costs. Roofing is one of the most expensive verticals in Google Ads. You compete against national lead aggregators and large regional contractors. Storm chasing crews also flood markets after a hail event. That competition drives up cost per click significantly. Higher cost per click then drives up cost per lead. Here is the ballpark based on what I see in this space. Residential replacement runs about $50 per lead on the low end. The high end of that range reaches $150. Storm restoration and insurance work starts around $80. That range can climb as high as $300. Commercial roofing starts at $200. The high end of commercial reaches $600. These figures reflect real keyword costs and conversion rates. They are typical for a competitive roofing market. Your actual number lands somewhere inside those ranges. Three factors determine exactly where you land. Job type is the first factor to consider. Market conditions are the second factor. How well your ads and landing page convert is third. We will work through each one.
1:31 Residential roof replacement leads
Residential replacement is the bread and butter campaign for most roofing contractors. Homeowner needs a new roof, types and roof replacement costs or roofing company near me. Seize your ad, calls or fills out a form. In a mid -sized market a well -run campaign can produce leads in the $50 to $80 range. In a dense competitive market like a major metro expect to pay $100 to $150 per lead. Sometimes more, the keywords driving these leads are expensive. Roofing company near me and roof replacement costs can run $8 to $25 per click depending on market. If your landing page converts at 10%, that’s $1 lead for every 10 clicks at $15 per click. That’s $150 per lead. At $10 per click with a 12% conversion rate, that’s $83 per lead. Small improvements in conversion rate have a bigger impact on your cost per lead than almost anything else you can do.
2:25 Storm damage and insurance restoration leads
Stormwork changes the math completely. After a significant hail or wind event, search volume spikes overnight. Everyone in the market is bidding on hail damage roof repair, insurance roof claim, storm damage roofing contractor. That spike in competition drives up cost per click fast. In a storm impacted market, cost per lead for insurance restoration work can run $150 to $300. But here’s why contractors still run these campaigns aggressively. Average job value on a full insurance replacement runs $40,000 to $70,000 or more in many markets. At that job value, paying $250 for a qualified lead and closing one in five still puts you at a customer acquisition cost under $1,500 on a $50,000 job. That math works. The commercial is its own world.
3:18 Commercial roofing leads
The keywords are less searched, but the competition is fierce because the jobs are massive. Commercial roofing contractor, flat roof replacement, TPO roofing installation, these keywords can cost $25 to $60 per click in a competitive market. Conversion rates on commercial leads tend to be lower too, because the buyer is often a property manager or facilities director doing research before they’re ready to call. So cost per lead runs higher, $200 to $600 is a realistic range. But a commercial re roof on a warehouse or retail strip can be a $150,000 to $500,000 job. Spending $500 to acquire a lead that closes on a $200,000 project is not a problem. It’s a business model. The issue is when contractors apply residential thinking to commercial campaigns and panic at the cost per lead,
4:13 How your market density and competition affect cost per lead
where you operate matters as much as what type of work you’re chasing. A roofing company in a midsize market with low competition can run effective campaigns in the $50 to $90 per lead range. That same company in a high density metro competing against 10 other contractors all running aggressive budgets might pay two to three times that for identical leads. Google ads is an auction. More bidders means higher prices, a few factors that drive up your market cost, number of active roofing advertisers in your area, presence of national lead aggregators like home advisor or Angi who buy leads in bulk and inflate click prices, recent storm activity that floods a market with temporary competitors season, which we’ll get to. If you’re unsure how competitive your market is, run a search impression share report and Google ads. If your impression share is below 30% and your costs are high, you’re being outbid heavily.
5:13 The difference between a click, a call, and a qualified lead
This is where a lot of roofing companies get confused about what they’re actually paying for. A click is someone who saw your ad and visited your site. Most don’t call. That’s normal. A call is someone who reached out, but not every call is a lead. Wrong number, existing customer, competitor, checking your prices, someone looking for a repair on a 15 year old mobile home. These are calls, not leads. A qualified lead is someone in your service area with a real project who has the budget or insurance coverage to move forward. Your cost per lead number means very little. If you’re counting all calls as leads, if you get 20 calls and 12 are unqualified, your real cost per qualified lead is not your total spend divided by 20. It’s your total spend divided by eight. That changes everything. Track qualified leads separately.
5:59 Why your close rate matters more than your cost per lead
Most roofing companies don’t and they misread their own performance. Here’s a question I ask every roofing contractor I work with. What’s your close rate on booked estimates? If you’re closing one in three, your cost per sold job is three times your cost per lead. If you’re closing one in five, it’s five times. Picture a shop doing 40 leads a month at $100 per lead. That’s $4,000 in ad spend. If they close one in four, that’s 10 sold jobs costing $400 each in acquisition cost. On a $12,000 residential replacement, that’s a solid return. Now, put that same $4,000 into a campaign that generates 40 leads, but the sales process is weak and they close one in eight, five sold jobs, $800 each in acquisition cost, same ad spend, same cost per lead, very different outcome. Your cost per lead is an input. Your close rate is what determines the output.
6:56 Calculating your maximum allowable cost per lead
This is the number you need to know before you set a budget. Here’s how the math works for a typical roofing company. Start with your average job revenue. Let’s say $12,000 for a residential replacement. Multiply by your gross margin. In roofing, that’s often 30 to 40%. So let’s use 35%. That’s $4,200 in gross profit per job. Decide what percentage of gross profit you can spend on acquisition. 20% is a reasonable starting point. That’s $840. That’s your maximum allowable cost per acquired customer. Now, divide by your close rate. If you close one in four qualified leads, divide 840 by four. That’s $210 as your maximum allowable cost per lead. If you’re paying $120 per lead and closing one in four, you have room to scale. If you’re paying $250 per lead and closing one in six, you’re underwater. Do this math for each job type you run campaigns for, residential, storm, commercial, all have different numbers.
8:04 Local Services Ads versus Search Ads
Roofers have two main Google options, Local Services Ads and standard search ads. Local Services Ads also called LSA’s show at the very top above regular ads and you pay per lead rather than per click. For roofing, LSA lead costs typically run in the $70 to $150 range, but it varies by market and Google’s own pricing algorithm. The upside, you’re not paying for clicks that don’t convert. The downside, less control over targeting and lead quality can be inconsistent. Standard search ads give you more control, better keyword targeting, and the ability to split campaigns by job type. In my experience, running both simultaneously often works better than choosing one or the other. LSA’s capture the top of page branded trust clicks. Search ads capture high intent keyword searches that LSA sometimes miss. The combined cost per lead across both channels is usually worth tracking separately, so you know where your best leads are actually coming from.
9:01 How seasonal demand swings affect what you pay per lead
Roofing is one of the most seasonal businesses in home services. Spring and early summer, demand rises, homeowners start thinking about repairs and replacements. Late summer through fall, peak season in most markets, high demand, high competition, highest cost per lead, winter, demand drops significantly in cold climates. Some contractors pause campaigns and cost per lead can fall 30 to 50%. That seasonal cost swing matters for budgeting. If your average cost per lead in October is $140, the same campaign in January might produce leads at $80. A smart approach is to hold budget steady or increase it in winter when costs are lower and competition is lighter rather than pausing campaigns when it gets cold. The leads are fewer but cheaper and you’re maintaining your quality score and account history so you don’t start from scratch in the spring.
9:55 Red flags that your Google Ads cost per lead is too high
Here are the warning signs I look for. Cost per lead climbing month over month with no corresponding increase in job value or close rate. Click through rate below 2% on search campaigns usually assign your ads aren’t relevant to the keywords triggering them. Conversion rate below 5 % on your landing page. Industry ballpark for a focused roofing landing page is 7 to 12%. Below 5 usually means the page isn’t matching the ad’s promise. High impression share on broad match keywords you haven’t explicitly added. Google’s matching can send your ad’s to irrelevant searches driving up cost per lead. Spending more than 15% of your budget on branded keywords when you have zero serious local competitors running on your name. A lot of agencies let these problems run because pausing to fix them means explaining why performance dipped. Watch these numbers yourself.
10:46 What to track beyond cost per lead
Cost per lead is a useful number but it doesn’t tell you if you’re making money. Here’s what else to track. Cost per qualified lead filter out the junk calls cost per booked estimate. How many leads actually turn into someone on the roof taking measurements. Cost per sold job. Your true customer acquisition cost revenue per campaign. Which campaign type residential storm commercial is actually driving revenue lifetime value. A customer who calls you for a repair today might be your replacement job in three years and refer to neighbors. If your CRM and your ad platform aren’t connected you’re flying partially blind. At minimum track which campaign source a lead came from when you enter it into your system. That alone will tell you more than any dashboard metric Google reports automatically. Here are three things that actually move the number without cutting your budget. One, improve your landing page conversion rate. This is the single highest leverage change most roofers can make. A landing page converting at six percent versus one converting at 12 percent cuts your cost per lead in half with zero change to ad spend or bids. Faster load time a clear headline matching your ad one phone number above the fold. Three to five proof points like years in business and reviews in a simple form. That’s the formula. Two, tighten your keyword match types. Running broad match on keywords like roofing can drain budget on irrelevant searches. Use phrase match and exact match for your highest value keywords. Add negative keywords aggressively. Roofing jobs, roofing salary, DIY roof repair, cheap roofing materials. Three, use call tracking with recorded calls. Listen to your calls. When you hear patterns and unqualified leads, you can add negative keywords. Adjust your ad copy to filter out bad fits or change your landing page to set better expectations. Most roofing companies running Google ads are not doing all three of these. If you do, your cost per lead will come down. If you want to know exactly what’s driving your current cost per lead up, get a free visibility teardown at sco .PushLeads .com slash audit or call 828 -348 -7686. We’ll look at your actual account and tell you what’s fixable.
Key Takeaways
Residential roofing leads from Google Ads run $50 to $150, storm restoration $80 to $300, and commercial $200 to $600. Whether any of those numbers makes sense for your business depends on your average job value, your close rate, and how competitive your local market is. Before cutting budgets or panicking at the cost per lead, run the maximum allowable cost per lead calculation first. That math tells you exactly what you can afford to spend and still make money.
- Residential replacement leads typically cost $50 to $150, storm leads $80 to $300, and commercial leads $200 to $600 in a competitive market.
- Your close rate multiplies your cost per lead into your true customer acquisition cost, so a weak sales process kills a profitable campaign.
- Improving landing page conversion rate from 6% to 12% cuts your cost per lead in half without touching your ad spend.
- Local Services Ads and standard search ads work better together than either does alone for most roofing companies.
- Winter campaigns produce leads 30 to 50% cheaper in many markets, making them worth running even when volume drops.
- Track cost per qualified lead, cost per booked estimate, and cost per sold job, not just raw cost per lead.
- Tightening keyword match types and adding negative keywords aggressively is one of the fastest ways to stop bleeding budget on irrelevant clicks.
What Roofing Leads from Google Ads Actually Cost in the Real World
Residential replacement leads from Google Ads run $50 to $150, storm restoration and insurance leads run $80 to $300, and commercial roofing leads run $200 to $600. Those ranges are not worst-case scenarios. They reflect actual keyword costs and realistic conversion rates in competitive roofing markets, and your number will land somewhere inside them based on three things: the type of work you are chasing, how saturated your local market is, and how well your ads and landing page convert visitors into calls.
Roofing is one of the most expensive verticals in Google Ads. You are bidding against national lead aggregators, large regional contractors, and after any major hail or wind event, an influx of storm-chasing crews who flood your market overnight. All of that competition drives up cost per click, and higher cost per click directly drives up cost per lead.
The good news is that roofing job values are large enough to absorb significant acquisition costs when you run the math correctly. The problem I see repeatedly is contractors looking at a $200 cost per lead on storm work and panicking, without ever calculating what they can actually afford to spend on a $50,000 insurance replacement job. That is the wrong reaction, and this post is going to show you the right way to think about these numbers from the ground up.
Want more customers from Google & AI search?
Get a free SEO audit of your site — see exactly what to fix first.
Why Residential Replacement Campaigns Land Where They Do
Residential replacement leads in a mid-size market with a well-run campaign cost roughly $50 to $80 per lead, and in a dense competitive metro that range climbs to $100 to $150 or beyond. The keywords driving these leads, phrases like “roof replacement cost” and “roofing company near me,” can run $8 to $25 per click depending on the market.
The math is straightforward once you see it laid out. At $15 per click with a 10% landing page conversion rate, you are paying $150 per lead. At $10 per click with a 12% conversion rate, your cost per lead drops to $83. That gap is not driven by bidding strategy. It is driven almost entirely by the landing page. Small improvements in conversion rate have a larger impact on cost per lead than almost any other lever you can pull, which is why I always look at the landing page before touching bids.
What keywords are roofing homeowners actually searching?
Homeowners searching for a new roof use high-intent transactional phrases like “roof replacement cost,” “roofing company near me,” “reroof estimate,” and “how much does a new roof cost.” These phrases signal they are ready to buy or very close to it. That high purchase intent is exactly why the clicks are expensive. Broad informational queries like “types of roofing materials” attract researchers who are not ready to call, and bidding on them wastes budget on clicks that rarely convert into leads.
How much does a bad landing page actually cost me per month?
If your landing page converts at 6% instead of 12%, you are paying twice as much per lead for identical ad spend. On a $3,000 monthly budget generating 200 clicks at $15 each, a 6% conversion rate gives you 12 leads at $250 each. A 12% conversion rate gives you 24 leads at $125 each. That difference, $125 per lead, adds up to $1,500 in wasted spend every single month. Fixing the page, not the bids, is the highest-leverage move most roofing companies can make immediately.
What does a roofing landing page need to convert well?
A focused roofing landing page should convert at 7% to 12% according to what I see across campaigns. The formula is not complicated: a fast load time, a headline that matches the exact ad the visitor clicked, one phone number visible above the fold, three to five trust signals like years in business and review counts, and a simple form asking for name, phone, and job description. Every extra field you add reduces form completions. Every second of load time you add reduces conversions. Keep it tight.
Storm Restoration and Insurance Work Changes the Math Completely
Storm restoration leads cost $80 to $300 per lead during active campaigns, and after a major hail or wind event that range can push toward the high end fast because every roofing contractor in the region is suddenly bidding on the same handful of keywords. Despite that cost, insurance restoration campaigns remain some of the most aggressively funded campaigns I manage for roofing clients, because the job values justify it completely.
A full insurance replacement on a residential home runs $40,000 to $70,000 or more in many markets. If you are paying $250 per qualified lead and closing one in five, your customer acquisition cost is $1,250 on a $50,000 job. That math works. The problem is not the cost per lead. The problem is when contractors chase storm work without a clear sales process for insurance claims and their close rate collapses, which is when that $250 per lead becomes genuinely painful.
For more context on how paid ads compare to organic channels for this type of work, I covered the tradeoffs in depth in a post on roofing SEO versus paid ads, which is worth reading before you decide where to allocate your budget.
Why does cost per lead spike so fast after a hail event?
After a significant hail or wind event, search volume for terms like “hail damage roof repair,” “insurance roof claim,” and “storm damage roofing contractor” spikes overnight. Every local roofing company, every storm-chasing crew driving in from out of state, and every national lead aggregator starts bidding on those keywords simultaneously. Google Ads is an auction. More bidders means higher prices. What was a $12 click yesterday can become a $30 click within 48 hours of a storm, which compresses your conversion math fast.
Should I run Google Ads for storm leads year-round or only after events?
Running storm-specific campaigns year-round with modest budgets and then scaling aggressively after an event is a smarter approach than starting from scratch. Accounts with existing quality scores and campaign history ramp faster than new campaigns, and Google rewards established accounts with better ad positions at lower costs. If you pause completely between events, you lose that history and start over competitively every time, which costs more and takes longer to produce results when you need them most.
What close rate do I need on storm leads to make the math work?
At a $250 cost per lead for storm restoration work, closing one in five qualified leads gives you a $1,250 customer acquisition cost. On a $50,000 insurance replacement with a 35% gross margin, your gross profit is $17,500. Even spending $1,250 of that on acquisition leaves you well above a healthy return. Where the math breaks down is when close rates fall to one in eight or one in ten, which often signals a sales process problem rather than a lead quality problem. Track your close rate by lead source to see clearly where the issue lives.
Commercial Roofing Leads Are Expensive for a Reason
Commercial roofing leads cost $200 to $600 per lead, and that range is accurate even though it makes most residential roofing contractors uncomfortable when they first see it. The keywords, phrases like “commercial roofing contractor,” “flat roof replacement,” and “TPO roofing installation,” can cost $25 to $60 per click in a competitive market, and the buyer behavior on commercial projects extends the sales cycle significantly.
A property manager or facilities director researching commercial roofing is rarely ready to call on the first visit. They are comparing options, reviewing specs, and building a case for a capital expenditure. That means conversion rates on commercial landing pages tend to run lower than residential, which pushes cost per lead higher even when click costs were equal. When you understand that dynamic, the $200 to $600 range makes sense.
The perspective shift that matters: a commercial reroof on a warehouse or retail strip can be a $150,000 to $500,000 project. Spending $500 to acquire a lead that closes on a $200,000 job is not a problem. It is a business model. The mistake is applying residential thinking, where $150 feels expensive, to commercial campaigns where the job values are entirely different.
Why are commercial roofing conversion rates lower than residential?
Commercial buyers are institutional decision-makers, not individual homeowners with an urgent problem. A property manager responding to a storm claim moves quickly. The same property manager planning a capital roofing project may research for three to six months before requesting bids. That extended decision timeline means your first ad click rarely produces a call, which lowers overall conversion rates and raises cost per lead. Building remarketing campaigns that follow these prospects through that research period is one of the most effective ways to lower final cost per lead on commercial work.
How do I structure a commercial roofing campaign differently from residential?
Commercial campaigns need separate landing pages, separate keyword groups, and separate conversion tracking from residential campaigns. The landing page for commercial work should speak directly to property managers and building owners, referencing project types like TPO, EPDM, and built-up roofing systems, not asphalt shingles. Lead forms on commercial pages should capture company name and property type, not just name and phone, so your sales team can prioritize follow-up. Mixing commercial and residential traffic into the same campaign or the same landing page produces mediocre results for both.
How Market Density and Local Competition Affect What You Pay
A roofing company in a mid-size market with limited competition can run effective campaigns at $50 to $90 per lead, while the same company operating in a high-density metro competing against ten other contractors running aggressive budgets might pay two to three times that for identical leads. Where you operate matters as much as what type of work you are chasing, and the difference is not something better ads alone can overcome.
Several factors drive up market-level costs specifically: the number of active roofing advertisers in your area, the presence of national lead aggregators like HomeAdvisor and Angi who buy clicks in bulk and inflate prices across the entire market, recent storm activity that floods a market with temporary competitors, and seasonality, which we will cover shortly.
If you are unsure how competitive your local market is, run a search impression share report inside Google Ads. If your impression share is below 30% and your costs are high, you are being outbid heavily. That tells you the problem is budget and bid strategy, not ad quality. If your impression share is above 60% but your cost per lead is still high, the problem is more likely conversion rate or lead quality filtering, which is fixable with account structure changes rather than more spend.
How do I find out if national lead aggregators are driving up my Google Ads costs?
Run an auction insights report inside your Google Ads account for your top roofing keywords. This report shows you exactly who else is bidding on the same searches, their impression share, and their overlap rate with your ads. If HomeAdvisor, Angi, or Thumbtack appears at the top of that list with high impression share, they are a primary driver of your click costs. You cannot outspend them on volume, but you can out-convert them by sending traffic to a landing page built for a single call to action rather than their lead marketplace model.
Should I pause Google Ads in a low-competition market and rely on SEO instead?
In a genuinely low-competition local market, organic search and Google Business Profile can produce leads at a significantly lower cost per acquisition than paid ads once they are established. The tradeoff is time. SEO takes months to build, and paid ads produce calls within days of launch. The most reliable approach I have seen for roofing companies in lower-competition markets is running both simultaneously, using paid ads to generate immediate revenue while SEO compounds over time. I explain how to think through that decision in detail in a post about roofing marketing tactics ranked by effectiveness and actual return.
The Difference Between a Click, a Call, and a Qualified Lead
A click is someone who saw your ad and visited your site. Most do not call, and that is completely normal. A call is someone who reached out, but not every call is a lead. Wrong numbers, existing customers, competitors checking your pricing, and people looking for a repair on a 15-year-old mobile home outside your service area are all calls. A qualified lead is someone in your service area with a real project who has the budget or insurance coverage to actually move forward.
Your cost per lead number means very little if you are counting all inbound calls as leads. If you receive 20 calls in a month and 12 of them are unqualified for any of those reasons, your real cost per qualified lead is not your total spend divided by 20. It is your total spend divided by 8. On a $2,000 budget, that is $100 per lead reported versus $250 per qualified lead actual. That difference completely changes how you evaluate whether your campaign is working.
Most roofing companies do not track qualified leads separately, so they misread their own performance consistently. This is one of the core points I make when reviewing campaign data with new clients, and it connects directly to the broader principle of focusing on SEM metrics that drive revenue rather than the surface numbers Google reports automatically.
How do I track which calls are actually qualified leads?
Call tracking software with recorded calls is the foundation. Set up a call tracking number that routes through your campaign and records conversations. Then designate someone, even yourself initially, to listen to calls and log which ones represent qualified projects. Tag each call in your CRM as qualified or unqualified and note the reason when it is not. After 60 to 90 days, you will have a clear picture of your actual qualified lead rate by campaign, by keyword group, and by time of day, and you can use that data to make real optimization decisions.
What percentage of roofing calls from Google Ads are actually qualified?
In my experience running roofing campaigns, qualified lead rates from Google Ads typically run 50% to 70% of total inbound calls when campaigns are well-structured with tight keyword match types and clear ad copy. Campaigns running broad match keywords with generic landing pages can drop below 40% qualified, meaning more than half of your spend is generating noise rather than real opportunities. Improving that qualification rate without reducing total call volume is one of the clearest signs of a well-managed account.
Calculating Your Maximum Allowable Cost Per Lead
Your maximum allowable cost per lead is calculated by multiplying your average job revenue by your gross margin, then multiplying that result by the percentage of gross profit you are willing to spend on acquisition, then dividing by your close rate on qualified leads. This number tells you exactly what you can afford to pay per lead and still run a profitable campaign.
Here is how the math works for a typical residential replacement scenario. Start with an average job revenue of $12,000. Multiply by a 35% gross margin to get $4,200 in gross profit per job. Decide that 20% of gross profit is an acceptable acquisition cost, which gives you $840 as your maximum cost per acquired customer. If you close one in four qualified leads, divide $840 by four. Your maximum allowable cost per lead is $210. If you are paying $120 per lead and closing one in four, you have significant room to scale. If you are paying $250 per lead and closing one in six, you are underwater regardless of how good the leads seem.
Run this calculation separately for each campaign type you run. Residential, storm, and commercial all produce different job values and different close rates, so they each have their own maximum allowable cost per lead. This is covered in depth in our PPC for contractors guide if you want a full walkthrough with examples across multiple trade types.
What gross margin should I use for roofing jobs when calculating this?
Gross margin in roofing typically runs 30% to 40% depending on job type, material costs in your market, and how much of the work you self-perform versus sub. Insurance restoration jobs often carry higher gross margins because the scope is set by the adjuster estimate rather than a competitive bid. Commercial jobs can vary widely based on material specifications. Use your actual historical average rather than an aspirational number, because the calculation is only useful if the inputs are honest. If you do not know your gross margin by job type, that is the first accounting problem to fix before optimizing ad spend.
How does close rate affect whether my Google Ads campaign is profitable?
Close rate is the multiplier that converts cost per lead into cost per sold job. At a $100 cost per lead, closing one in three gives you a $300 customer acquisition cost. Closing one in six gives you a $600 customer acquisition cost on identical leads from the same campaign. That difference on a $3,000 monthly budget is the difference between 10 sold jobs and 5 sold jobs, with no change to ad spend or lead quality. This is why I ask every roofing client about their close rate before discussing budgets. The ad platform cannot fix a sales process problem.
Local Services Ads Versus Standard Search Ads for Roofing
Running both Local Services Ads and standard search ads simultaneously typically outperforms either channel alone for roofing companies. LSAs appear at the very top of Google results above regular paid ads, and you pay per lead rather than per click, which removes some click-to-conversion risk. Standard search ads give you precise keyword targeting, campaign structure by job type, and full control over landing page experience that LSAs do not offer.
For roofing specifically, LSA lead costs tend to run $70 to $150 per lead, though Google’s pricing algorithm adjusts that by market and by how well your profile is optimized with reviews and license verification. The upside is that you are not paying for clicks that never convert. The downside is less control over which searches trigger your listing and lead quality can be inconsistent because the lead is captured inside Google’s interface rather than your own landing page.
The combined strategy I recommend: use LSAs to capture the high-trust branded clicks at the top of the page, particularly from homeowners who specifically want a Google Guaranteed contractor, while using search ads to capture high-intent keyword searches that LSAs sometimes miss or price inconsistently. Track cost per lead for each channel separately so you can see where your best leads are actually coming from and allocate budget accordingly.
How do I get my Local Services Ads to show for roofing in my area?
To qualify for roofing LSAs, you need to pass Google’s verification process, which includes a background check on the business owner, license verification matching your state’s contractor licensing requirements, and insurance verification. Once you pass, your profile needs strong review velocity to compete for top placement. Google’s LSA algorithm weights recent review counts heavily. A profile with 15 reviews accumulated over three years will typically rank below a competitor with 25 reviews earned in the last six months, even if the older reviews are higher rated.
Should I pause standard search ads if my LSA cost per lead is lower?
Not necessarily. LSA and search ads capture different behaviors. LSAs show at the top based on Google’s trust algorithm and your review count. Search ads show based on keyword match and bid. A homeowner searching “emergency roof repair tonight” may click a search ad because it speaks directly to their situation, while another homeowner searching “best roofers near me” clicks the LSA because the Google Guaranteed badge signals safety. If your search campaign is well-structured with tight keywords and a strong landing page, the two channels feed different parts of the demand pool rather than competing with each other.
How Seasonal Demand Swings Affect What You Pay Per Lead
Roofing lead costs from Google Ads can drop 30% to 50% in winter compared to peak season, making cold-weather campaigns one of the most underused opportunities in this market. Late summer through fall is peak season in most markets, which means peak competition, peak cost per click, and peak cost per lead. Spring demand rises steadily. Winter demand drops significantly in cold climates, and so does the number of contractors actively running campaigns.
That seasonal drop in competition is an opportunity most roofing companies ignore because they associate winter with slow business and pause campaigns to cut costs. The problem with pausing is that Google Ads accounts accumulate quality score history, conversion data, and audience signals over time. When you pause and restart, you lose momentum and often see a temporary performance dip while the account rebuilds its signal history. That means your spring campaign starts at a disadvantage compared to competitors who ran steady through winter.
A smarter approach is to hold budget steady or even increase it in winter when costs are lower and competition is lighter. You will generate fewer leads per month, but at $80 instead of $140 each. The leads you do get have less competition in your calendar. And when spring demand increases, your account is primed and your quality scores are strong, so you scale into the busy season from a position of strength rather than starting over.
When is the cheapest time of year to run roofing Google Ads?
January and February are typically the lowest-cost months for roofing Google Ads in most US markets. Homeowner demand genuinely drops in cold climates because replacing a roof in winter is not practical for most projects. Competitor spending drops sharply because most roofing contractors interpret slow demand as a reason to stop advertising. That combination, lower search volume but significantly fewer bidders, can produce cost per lead 30% to 50% below summer rates. For contractors focused on storm or commercial work that is not weather-dependent, those winter months can be genuinely productive at a fraction of the summer price.
How should I adjust my Google Ads budget month by month for roofing?
Rather than a flat monthly budget, build a seasonal budget plan that reflects demand curves in your specific market. Increase budgets in March through May as spring demand rises. Hold strong budgets through summer and fall peak season. Rather than pausing in November through February, reduce budgets modestly while keeping campaigns active to protect account history. If you operate in a market with mild winters or significant commercial work, the winter reduction can be smaller. The goal is never to drop to zero, because a live account that ramps up is always cheaper than a restarted account.
Red Flags That Your Google Ads Cost Per Lead Is Too High
A cost per lead climbing month over month with no corresponding increase in job value or close rate is the clearest sign that something specific inside the account is broken and needs to be fixed, not just accepted as market conditions. There are several specific warning signals that point to fixable problems rather than market-level price increases.
A click-through rate below 2% on search campaigns usually means your ads are not relevant to the keywords triggering them. Either the match types are too broad and your ads are showing for unrelated searches, or the ad copy does not speak clearly to what the person searched. A conversion rate below 5% on your landing page is another flag. Industry norms for a focused roofing landing page run 7% to 12%. Below 5% almost always means the page is not matching the promise the ad made, and visitors are bouncing rather than calling.
Spending more than 15% of your budget on branded keywords when you have no serious local competitors actively bidding on your company name is another common waste pattern. High impression share on broad match keywords you have not explicitly added to your account means Google is matching your ads to searches you never approved. Check your search terms report weekly and add negative keywords for anything irrelevant. These patterns compound quietly over months. For more on how to monitor this correctly, the resource on a multichannel contractor marketing system covers how to structure tracking across channels so nothing slips through.
What does a healthy click-through rate look like for roofing ads?
A healthy click-through rate for roofing search campaigns runs 4% to 8% on well-targeted keyword groups. Branded campaigns, where someone searched your company name specifically, will run much higher, sometimes 20% to 40%, because the intent is completely aligned. Non-branded residential replacement keyword groups running at 2% or below are underperforming and usually signal either poor ad relevance or a mismatch between match types and actual searches being triggered. Improving click-through rate also improves your Quality Score, which Google uses to determine your ad rank and effective cost per click.
How often should I check my search terms report for roofing campaigns?
Check your search terms report at minimum weekly, and in the first 30 days of a new campaign, review it daily. The search terms report shows you the actual queries that triggered your ads and produced clicks, which is often different from the keywords you bid on, particularly if you are using broad or phrase match. Irrelevant terms you catch early and add as negatives stop wasting budget immediately. Terms that perform well and are not in your keyword list should be added explicitly so you can bid more precisely on them.
What to Track Beyond Cost Per Lead
Cost per qualified lead, cost per booked estimate, and cost per sold job are the three numbers that actually tell you whether your Google Ads investment is generating revenue, and most roofing companies track none of them consistently. Raw cost per lead is a surface metric. It tells you what you paid to get someone to contact you. It does not tell you whether that contact became money in your account.
Cost per booked estimate closes the gap between a call and an actual on-site visit. If your cost per lead is $100 but only half of those leads agree to an estimate, your cost per booked estimate is $200. Cost per sold job is your true customer acquisition cost, and it is calculated by dividing total ad spend by total jobs closed from that campaign. That number, compared against your gross profit per job, tells you definitively whether the campaign is profitable.
Revenue by campaign type is the next layer. Residential, storm, and commercial campaigns will produce different revenue per dollar spent, and knowing which is your best return helps you allocate budget more intelligently over time. Lifetime value is the final consideration. A homeowner who calls you for a repair today might be a full replacement job in three years and refer two neighbors before that. If your CRM and your ad platform are not connected, you are missing that attribution entirely. At minimum, ask every new caller how they found you and log the campaign source when you enter them into your system. For a fuller picture of which metrics to prioritize, the guide on SEM metrics that drive revenue breaks this down in a way that connects ad spend directly to revenue outcomes.
Three things actually move cost per lead without cutting budget: improving landing page conversion rate, which is the single highest-leverage change most roofing companies can make; tightening keyword match types and adding negative keywords aggressively; and using call tracking with recorded calls to identify patterns in unqualified contacts and adjust messaging to filter them out. It is also worth comparing your approach against what others are spending by looking at the lead broker cost per acquisition data, which puts Google Ads costs in context against purchased lead programs. Most roofing companies running Google Ads are not doing all three of these things consistently. When they do, cost per lead comes down without reducing lead volume.
Frequently Asked Questions
What is a realistic cost per lead for a small roofing company in a mid-size market?
A well-run Google Ads campaign for a small roofing company in a mid-size market with moderate competition should produce residential replacement leads in the $50 to $90 range. Storm and insurance leads will run higher, often $100 to $200, because those keywords attract more competing bids. If you are paying significantly above those ranges in a mid-size market, the most common causes are a landing page converting below 7%, keyword match types that are too broad, or a campaign structure that does not separate job types.
Is $200 per lead too much to pay for a roofing lead?
Whether $200 per lead is too much depends entirely on your average job value and your close rate. On a $12,000 residential replacement with a 35% gross margin and a one-in-four close rate, your maximum allowable cost per lead is around $210, so $200 is right at the edge. On a storm restoration job averaging $50,000 with the same close rate, $200 per lead produces a customer acquisition cost under $1,000 on a $17,500 gross profit job. The number only makes sense in context of the job it is generating.
How long does it take for a new roofing Google Ads campaign to stabilize in cost per lead?
Most new roofing Google Ads campaigns need 60 to 90 days to stabilize as Google’s algorithm gathers conversion data, Quality Scores adjust to reflect actual performance, and negative keyword lists get built from real search term data. The first 30 days often produce higher cost per lead than the account will settle at because bids are more conservative and Quality Scores start low for new campaigns. Pulling the plug at 30 days based on early cost per lead data is one of the most common and costly mistakes roofing companies make with paid search.
Should roofing companies use broad match keywords in Google Ads?
Broad match keywords in roofing campaigns almost always inflate cost per lead by pulling in irrelevant searches like “roofing salary,” “DIY roof repair,” and “cheap roofing materials.” For most roofing companies, phrase match and exact match for your highest-value keywords produce better-qualified clicks at lower effective cost per lead. Broad match can be useful in limited situations, such as discovering new keyword variations when launching in a new market, but it should be monitored extremely closely with a large negative keyword list in place before you let it run.
Do roofing Local Services Ads produce better leads than standard search ads?
LSA leads are pre-qualified in the sense that the homeowner chose to contact you through a Google Guaranteed profile, which signals some level of trust verification. However, lead quality from LSAs can be inconsistent because Google controls the matching process rather than you. Standard search ads give you full control over which keywords trigger your ads, what the ad says, and where the click lands. In practice, the two channels attract slightly different buyer behaviors, and running both simultaneously tends to produce better overall results than relying on either alone.
What is the average close rate for roofing companies on Google Ads leads?
Roofing companies with strong sales processes typically close one in three to one in four qualified leads from Google Ads on residential replacement work, which translates to a 25% to 33% close rate. Storm restoration close rates can be higher when the sales team is experienced with insurance claims and the supplement process. Commercial close rates tend to be lower, often one in five to one in seven, because the sales cycle is longer and the buyer evaluates multiple bids more formally. Your close rate from paid leads may differ from referral leads because the relationship starting point is different.
How do I know if my Google Ads agency is managing my roofing campaign well?
Ask your agency for a monthly report that includes cost per qualified lead, not just cost per lead; search terms report showing what queries triggered your ads; conversion rate on your landing page; impression share; and Quality Scores by keyword group. A well-managed account has a search terms report with consistent negative keyword additions, landing page conversion rates above 7%, and cost per lead trending stable or downward over time as the account matures. If your agency cannot provide these numbers on request, that is a problem worth addressing directly.
Can I run Google Ads for roofing with a budget under $1,000 per month?
Running a roofing Google Ads campaign on less than $1,000 per month is possible in lower-competition markets but difficult in mid-to-large metros where cost per click on core keywords runs $10 to $25. At $1,000 per month in a competitive market, you might generate 50 to 80 clicks, which at a 10% conversion rate produces 5 to 8 leads. That is enough to test the channel but not enough to generate statistically reliable performance data or fill a production schedule. If budget is limited, focusing that spend on the highest-intent keywords rather than a broad campaign structure makes the most of the constraint.
Start Knowing Exactly What Your Roofing Leads Should Cost
The ranges in this post give you a framework, but your actual number depends on your market, your job types, your landing page, and most importantly your close rate. If you run the maximum allowable cost per lead calculation using your real job values and your real gross margin, you stop guessing at whether a campaign is profitable and start managing it with actual numbers.
Most roofing companies I talk to have never done that calculation. They know their cost per lead. They do not know their cost per sold job. And they have no clear line between what they can afford to spend and what they cannot. That gap is where campaigns go wrong, not because Google Ads does not work for roofing, but because the account is never held to the right standard.
If you want someone to look at your actual account, run the numbers with you, and tell you specifically what is driving your cost per lead up and what is fixable, that is exactly what we do at PushLeads. Reach out at pushleads.com/contact and we can start with a plain-spoken look at what your campaign is actually doing and what it should be doing instead.
Related reading from PushLeads
- PPC for Contractors: Google Ads That Actually Generate Leads
- Roofing SEO vs Google Ads: Which Gets More Leads
- What roofing marketing ideas actually get you calls?
- Multichannel Marketing for Contractors: Fill Your Pipeline
- is buying restoration leads from lead brokers ever worth it?
- SEM Metrics: The KPIs That Actually Drive Revenue
Keep Reading
Want more customers from Google & AI search?
Get a free SEO audit of your site — see exactly what to fix first.
Your path · Emergency Service Marketing for Home Service Contractors
Keep going: read these next
You’re hereWhat should a roofing company actually pay per lead from Google Ads? Up nextAI Search Optimization for Home Service Contractors: How to Get Cited by ChatGPT, Perplexity, and Google AI Overviews- After-Hours Lead Capture for Contractors: How to Stop Losing Emergency Calls at Night and on Weekends
Hurricane Contractor Marketing: How Roofing and Restoration Companies Win in Coastal Markets
Emergency Service Marketing for Home Service Contractors: How to Win High-Value Urgent Calls
Want this done for you?
Scan your site. See the gaps. Decide with numbers.
- Rankings, Google Business Profile and site-speed teardown
- Report lands in your inbox in about a minute
- No obligation · 4.9 from 67 Google reviews

