TL;DR: Roofing PPC means paying per click on Google for searches like “roof replacement”. Hire-intent roofing clicks run roughly $15 to $85 at the top of the page (US, September 2026); research searches cost less but rarely book. Most wasted spend comes from research and job-seeker clicks, missed calls, and an account that never learns which leads signed.
- Google Keyword Planner puts hire-intent roofing clicks at roughly $15 to $85 at the top of the page (US, September 2026). One widely read guide still says $0.11 to $0.50.
- The same topic costs a third as much when the searcher is researching: “roof replacement” runs $15.00 to $73.29, “roof replacement cost” $4.71 to $22.94.
- Location matters: Phoenix’s high-end bid is 1.9 times Dallas’s across the main homeowner searches.
- Most wasted roofing PPC spend comes from research and job-seeker clicks, missed calls, and an account that never learns which leads signed.
One of the most widely read roofing PPC guides online tells roofers a click costs between $0.11 and $0.50. Google Keyword Planner, Google’s own tool, says a click on “roof replacement” runs $15.00 to $73.29 to hold the top of the page. That’s not a rounding error. A Google Ads budget planned on the first number is gone by the 12th of the month.
Roofing PPC (short for roofing pay per click) is pay-per-click advertising for roofers: paying Google, through Google Ads, to put your company at the top of Google Search results when a homeowner searches for a roofer, and paying only when someone clicks. It works when three things line up: the right searches, a phone that gets answered, and an account that knows which leads turned into signed roofs.
Here’s what it really costs, how to set it up, and how to tell if yours is leaking.
What roofing PPC costs per click, by Google’s own numbers
These are Google’s top-of-page bid ranges from Google Keyword Planner, pulled for the whole US in September 2026. The low end is roughly what it takes to show near the top on a quiet day. The high end is what the most aggressive advertisers are paying.
| What the homeowner searches | US searches / month | Top-of-page bid range |
|---|---|---|
| roofing companies near me | 165,000 | $16.09 to $84.48 |
| roofers near me | 165,000 | $14.27 to $74.07 |
| roof repair near me | 90,500 | $14.89 to $71.23 |
| roof replacement | 33,100 | $15.00 to $73.29 |
| emergency roof repair | 8,100 | $16.68 to $85.00 |
| storm damage roof repair | 3,600 | $9.80 to $56.52 |
| commercial roofing contractor | 2,900 | $14.94 to $82.74 |
| hail damage roof repair | 1,000 | $9.79 to $57.31 |
| roof replacement cost | 18,100 | $4.71 to $22.94 |
| how much does a new roof cost | 8,100 | $3.42 to $13.03 |
Swipe the table sideways to see every column.
Look at the bottom two rows. They’re the same topic as “roof replacement”, and they cost a third as much. Advertisers bid less there because the person searching is still pricing the job, not hiring for it.

That gap is where most roofing advertising budgets are won or lost, and most owners asking about Google Ads for roofing companies never see it laid out. A realistic planning figure for hire-intent roofing clicks is somewhere in the $15 to $85 range. Where you land inside it depends on your market and how well your account is built. (For the full budget picture beyond clicks, see what roofing marketing actually costs.)
One honest caveat. A top-of-page bid is Google’s estimate, not your bill. Your real cost per click depends on who else is in the auction that hour and on your Quality Score, which Google grades partly on the page your ad sends people to. A better landing page can make the same click cheaper.
Why the same roofing click costs more in Phoenix than in Dallas
Averaged across the main homeowner searches, the top-of-page ranges by city look like this (Google Keyword Planner, September 2026):
| City | Low bid (avg) | High bid (avg) |
|---|---|---|
| Dallas | $7.64 | $33.73 |
| Boston | $9.30 | $49.86 |
| Oklahoma City | $10.73 | $51.24 |
| Atlanta | $12.80 | $51.32 |
| Tampa | $17.70 | $56.71 |
| Denver | $19.87 | $58.83 |
| Seattle | $25.25 | $60.49 |
| Phoenix | $27.31 | $64.65 |
Swipe the table sideways to see every column.
Phoenix’s high-end bid is 1.9 times Dallas’s. So when someone quotes you a national “average roofing CPC”, ask which city it came from. A budget that buys 150 clicks in Dallas might buy 80 in Phoenix.
Storm weeks move these numbers too. When a hailstorm hits, more roofers switch their ads on at once and bids climb for a while. Plan for that instead of being surprised by it.
Hire searches vs research searches: the split that decides your cost per lead
Here’s the part most roofing ads get wrong. Cheap clicks feel like a win. They usually aren’t.
Compare what people type when they’re ready to hire with what they type when they’re not:
| Search | Top-of-page bid | Who is searching |
|---|---|---|
| roof replacement | $15.00 to $73.29 | Homeowner ready to get quotes |
| roof shingles | $0.56 to $11.35 | DIYers, material shoppers |
| roofing jobs | $0.27 to $6.62 | People looking for work |
| how to fix a roof leak | $2.84 to $13.42 | Someone with a bucket and a ladder |
Swipe the table sideways to see every column.
A $3 click from someone who wants a roofing job costs you $3 and brings you nothing. Twenty of those a week is a real number by the end of the month, and it looks cheap on the dashboard the entire time.
So roofing company ads need two lists working together: the searches you want, and the ones you’ll never pay for. The “never” list covers job seekers, DIY and how-to searches, material and price shoppers, and people outside your service area. If you do insurance work, keep claim searches. If you don’t, block them.
Building that list properly is ongoing work. New junk searches show up every week.
How to set up roofing PPC that books inspections
Most advice on PPC for roofing companies stops at “pick keywords and write ads”. Good PPC for roofers is mostly about order: get these right, in this sequence, and the keywords get easier.
Split campaigns by what the job is worth
A $900 roof leak repair and a $15,000 replacement should never share a budget. Give replacement, repair and storm work their own campaigns. Then set the location to where you actually send crews, and choose “presence” (people in your area) rather than “presence or interest”. The second option shows your ads to people who only searched about your city, which isn’t the same as living there.
Write ads a homeowner would actually call from
Google’s responsive search ads let you load up to 15 headlines and it mixes them. Here are a few roofing ad examples of headlines that tend to earn the click:
- “Roof Replacement in Plano, Free Inspection”
- “Hail Damage? Same-Week Roof Inspections”
- “Licensed Roofer, 20 Years in Tarrant County”
The best roofing ads name a real town, give a reason to call now, and show some proof you’re legit. Generic lines like “Quality Roofing Services” lose to all three.
Send the click to a page about that one service
The ad says roof replacement, so the page says roof replacement. Phone number at the top, a short form, reviews, photos of your own crew. Not your homepage.
When contractors say they tried ads and it was wasted money, this is often where the money went. The ad did its job. The page didn’t.
Track before you let Google bid for you
Count calls over 60 seconds and real form fills as leads, and nothing softer. Smart Bidding and broad match can work well for roofers, but only once the conversions they’re learning from are real. Feed them junk and they’ll go find more junk, very efficiently.
The same goes for Performance Max. It spreads spend across Search, Maps, YouTube and display, and on a lead-gen account with no job data it’s very good at buying cheap form fills. On Google’s own Ads community forum, one of its Diamond Product Experts put it bluntly: “PMax is usually a poor choice for lead gen.” Hold it back until your tracking can tell a real lead from spam.
What a qualified roofing lead is, and how Google learns it
Not every lead is a lead. In roofing, the usual junk looks like this:
- Spam form fills and bots
- Other roofers and suppliers pitching you
- Homeowners outside your service area
- “Just want a ballpark” calls that won’t book an inspection
- Insurance-claim shoppers, if claims aren’t your work
Spam has tells. Phone numbers with area codes that don’t exist, bursts of submissions overnight, the same odd wording across forms. A captcha helps, but it doesn’t stop the account from buying the traffic that produces them.
The bigger cost is time. Every junk lead is a call your office makes, or a drive your estimator takes, for nothing.
Google can’t see any of that on its own. It only knows a form was filled. To make roofing Google Ads bid toward signed roofs instead of form fills, you send the outcomes back: which leads booked an inspection, which ones signed.
That’s called offline conversion import (Google’s current version is enhanced conversions for leads). Your CRM, whether that’s AccuLynx, JobNimbus or a spreadsheet, holds the answer. The account just needs to receive it, matched back to the click through Google’s click ID (the GCLID) or the lead’s email and phone. Once it does, the bidding stops rewarding the cheapest lead and starts favoring the searches that produce jobs.
A short qualifying question on your form helps too, something like “repair or full replacement?”
And one thing shared-lead sites can’t give you: a lead from your own ads called you, and only you. Nobody else is racing you to the same homeowner.
A missed call is a click you paid for twice
You paid for the click. Then the phone rang out, and that homeowner called the next roofer on the page.
Check two things. First, does your ad schedule match the hours someone actually answers? If nobody picks up after 6 p.m., either get an answering service or pull ads back in the evening. Second, listen to a sample of recorded calls from last month. Count how many went to voicemail. That number is money you’ve already spent.
This is the cheapest fix in roofing PPC. It doesn’t touch the ads at all.
A 15-minute check to see if your roofing PPC is leaking money
You don’t need an agency to run this. Open your Google Ads account and go through it in order:
- Search terms report, last 30 days. Sort by cost. Anything about jobs, DIY, materials or towns you don’t serve is leaking.
- Locations report. Look at where clicks actually came from (user location), not just what you targeted.
- Conversion actions. What counts as a lead? If page views, button clicks or 10-second calls are in there, your numbers are inflated.
- Duplicate conversions. One person filling a form twice shouldn’t count as two leads.
- Call answer rate. From your call tracking, what share of ad calls reached a person?
- Performance Max insights, if you run it. Check the search terms and placements it reports.
- Your landing page on a phone. Load it on mobile data. Can you call in one tap?

If three or more of these turn up problems, the account needs work before it needs more budget. There’s a longer version in our Google Ads audit checklist.
Hiring a roofing PPC agency: five questions worth asking
If you’d rather hand it off, a roofing PPC agency should be able to answer these without squirming:
- Who owns the account, the website and the tracking numbers? All of it should be yours. Some pay-per-lead offers build your site and Google Business Profile for free, then keep them. If you leave, your history and data should leave with you.
- Do you report booked jobs, or just leads and clicks? Clicks are easy to grow. Jobs are what you pay for.
- What’s the contract? Month to month, or locked in for a year?
- Who actually runs my account day to day? A senior strategist, or someone in their first year?
- What will you change in the first 30 days? A good roofing PPC company can tell you from an audit, before you sign.
KLEXA answers these the same way for every account. The account stays in your name, the work runs month to month, and reporting is tied to calls and booked jobs rather than clicks. That’s how roofing PPC management should work whoever you hire, and it’s how our Google Ads for roofers service is set up.
If you’re comparing options, our list of the best Google Ads agencies for roofing contractors lays out the trade-offs, including where each one isn’t a fit.
When roofing PPC is the wrong move right now
You’ll hear roofers say Google Ads “just burns cash”. Sometimes it does, and it’s usually for one of these reasons. Hold off, or fix this first, if nobody can answer the phone during business hours, if you have no call or form tracking, or if your crews are already booked out for the season.
That last one has an upside. PPC is the one lead source you can turn down in a day with a budget cap, and turn back up when the schedule opens.
None of those mean Google Ads won’t work for you. They mean the money will leak until they’re fixed. If you’re unsure where you stand, do Google Ads work for roofing walks through the conditions.
Running a roofing company? See our roofing marketing offer: Google Ads with no setup cost and no management fee until your first booked call. For organic rankings and the map results, see SEO for roofers.
Questions roofers ask about PPC
How much should a roofing company spend on PPC each month?
Work backward from leads. If your average click costs $40 and one in ten clicks becomes a call or form (an assumption for the example, not a benchmark), ten leads a month takes about 100 clicks, or roughly $4,000. At the other end, $500 a month buys somewhere between 6 and 33 clicks at the hire-intent bid ranges above, which is thin for a real test. Plug your own numbers into the Google Ads budget calculator.
Is Local Services Ads better than Google Ads for roofers?
They do different jobs, and most roofers do best running both. Local Services Ads charge per lead, sit above the regular ads, and need a verified Google Business Profile first. Their volume is limited by how Google ranks you there. Search ads reach the searches LSA doesn’t, and give you control over keywords, ads and landing pages. There’s more in our guide on how to get roofing leads.
How long before roofing PPC produces leads?
First calls usually come within a week or two of going live, because you’re showing up for people who are already searching. Cost per lead settles once Google has a few weeks of real conversion data to learn from.
Is roofing pay per click better than SEO?
Neither replaces the other. PPC buys you a spot today. SEO earns you one over months and costs less per lead once it’s there. Most growing roofers run PPC while SEO builds.
Should roofers pause Google Ads in winter?
Usually not completely. Drop the budget and keep your best replacement searches running. A full pause throws away what the account has learned, and restarting costs time in spring when you need leads fastest.
Want a second pair of eyes on your account?
KLEXA runs a Free Google Ads Audit for roofers. We’ll look at your search terms, tracking and budget and show you where money is leaking, whether or not you hire us.

