• November 10, 2026
  • 20 min read
By, Dory Aine
Roofing PPC: roofing company owner on a roof taking a new customer call

Roofing and gutter companies paid more per lead than any other home service in LocaliQ’s 2025 home services report, so a sloppy roofing PPC account gets punished fast. Below: what roofing leads cost on search ads, how to work out what your own roofs can pay per lead, when storm and replacement searches peak, and how we’d set up $1,500, $5,000 and $15,000 a month.

The short answer: roofing PPC is paying Google for clicks from homeowners searching for roof work. In LocaliQ’s 2025 report, the median roofing and gutter lead cost $228.15. The median click was $10.70, and 3.70% of clicks became a call or form. It pays when you split campaigns by job type, block junk searches, track signed jobs and keep your cost per lead under what your roofs can afford.

Key takeaways
  • The median roofing and gutter lead cost $228.15 in LocaliQ’s 2025 data, about 2.5 times the home services median. Roofing PPC costs
  • Work out your own ceiling from job size, margin and close rate. Our example roofer could afford $189 a lead. Cost per lead math
  • Split the account into replacement, repair, storm and brand so cheap repair clicks don’t eat the replacement budget. Campaign split
  • Searches for “hail damage roof” peaked in March and April 2025, and “roof replacement” peaked in November. The roof calendar
  • Texas and Colorado laws ban ads that promise to pay, waive or rebate a homeowner’s insurance deductible on a roof claim. Storm ad rules
  • Block job seekers, material buyers and DIYers, and add plurals by hand. Negative keywords
  • Feed signed jobs back into Google Ads so you can see which keywords sell roofs. Tracking

Jump to the FAQ

What roofing PPC costs right now

Roofing PPC means you pay Google each time a homeowner clicks your ad after searching for a roofer. The median roofing and gutter lead cost $228.15 in LocaliQ’s 2025 report. That was the highest cost per lead of any home services category in the report, and more than double the home services median.

Here’s how roofing stacks up. LocaliQ’s home services report is the newest one we found with a roofing line. It looked at 3,211 US search campaigns that ran from April 2024 to March 2025. Its “averages” are medians, and each number is its own median, so they don’t multiply out exactly.

Metric (median)Roofing & GuttersAll home services
Cost per click$10.70$7.85
Click-through rate5.66%6.37%
Conversion rate (click to call or form)3.70%7.33%
Cost per lead$228.15$90.92
Source: LocaliQ 2025 Search Ad Benchmarks for Home Services.

The click price is only part of it. A roofing click costs about 36% more than the home services median. The big gap is the conversion rate. Only about 4 in 100 roofing clicks turn into a call or a form, about half the home services rate.

Our read on why: someone pricing a new roof is about to spend real money. They’re likely to click a few roofers, read reviews and compare bids before they call. A plumber at 2 a.m. gets the first call. A roofer gets one of several.

LocaliQ counts a lead as a call or a form. That’s not an inspection, and it’s not a signed contract. Your cost per signed roof will be a lot higher than $228, and that’s fine if the roof pays for it. The next section shows you how to check.

How much a roof can afford per lead

A $228 lead is cheap if you sell $30,000 roofs and too much if you mostly patch leaks. What other roofers pay is a yardstick. What decides it is what your own jobs can pay for one lead, and you can work that out in five minutes with numbers you already have.

You need four of them: your average job, your gross margin, how many leads turn into inspections and how many inspections you sign. Then decide how much of your gross profit you’re willing to spend to win a job.

A worked example

Say you’re a retail roofer and these are your numbers. They’re made up for the example, so swap in yours.

  1. Average replacement: $15,000.
  2. Gross margin of 35%, so $5,250 gross profit per roof.
  3. You’ll spend 20% of gross profit to get a job. That’s $1,050 per signed roof.
  4. 6 in 10 leads book an inspection, and you sign 3 in 10 inspections. So 18 of every 100 leads sign.
  5. Allowed cost per lead: $1,050 x 0.18 = $189.

That roofer can’t afford the $228 median as things stand. To get there, the close rate goes up, the ticket goes up or the leads get cheaper through better targeting.

Now run the same math on a bigger job. The 2025 Cost vs. Value Report puts its sample asphalt shingle replacement at $31,871. That’s a defined project spec, not an average of real invoices, but it shows how ticket size changes things. Same margin, same 20% and same close rates give you about $402 per lead. Cost vs. Value’s metal roof sample is $51,865, and the same math gives about $653 per lead.

Why the ceiling matters

Write this number down and keep it. It’s the line you judge everything against, including whoever runs your ads. If your cost per lead sits under it and leads close at your normal rate, the ads are paying. If it sits over it for two months, cut the weakest campaign, tighten negatives or fix how calls get answered before you add budget.

It also tells you which campaigns to fund first. A small leak repair rarely pays for a $189 lead. A full replacement can. That’s the reason we split the account by job type.

Cost per signed roof, held against what your roofs can afford, is how to judge every campaign and every agency.

Build the roofing PPC account around four jobs

A homeowner with water dripping into a bedroom and one pricing a new roof are not the same buyer. Put them in one campaign and Google spends the budget wherever leads come cheapest, and cheap leads are usually small repairs. So we split roofing accounts by the job: repair, replacement, storm and brand. Commercial gets its own campaign if you do that work.

Each campaign gets its own budget, its own ads and its own landing page. That way a storm rush or a pile of cheap repair clicks can’t drain the replacement budget.

CampaignSample keywordsUS searches a month (Ahrefs avg)Send clicks to
Replacementroof replacement, new roof cost, roof replacement near me105,000 (roof replacement), 27,000 (near me)Replacement page with financing (if you offer it) and inspection form
Repair and leaksroof repair near me, roof leak repair, emergency roof repair75,000, 21,000 and 9,800Repair page with a big phone button
Storm and insurancehail damage roof, storm damage roof repair3,000 and 14,000Storm page: free inspection, how claims work
Brandyour company name, with and without “roofing”Depends on youHomepage or contact page
Commercial (optional)commercial roofing contractors, flat roof repair3,600 (commercial roofing contractors)Commercial page with project photos
Volumes are Ahrefs 12-month US averages pulled in November 2026. Ahrefs’ 12-month average is its own estimate and won’t match the monthly 2025 numbers below. Your service area will see a small slice.

Where the money goes first

Replacement is the campaign that pays the bills, so it gets the biggest share. Repair is there for two reasons. Some repair calls turn into replacements once you’re on the roof, and repair leads are how a lot of homeowners first meet you.

Still, watch repair closely. One of the first things we check in a roofing account is whether repair is eating most of the spend while replacement starves.

Why brand gets its own line

Brand clicks are cheap and they convert well, because these people already know you. Mix them into the replacement campaign and the replacement numbers look better than they are. Keep brand separate so you can see what your ads really bring in from new customers.

Commercial is a different sale. A property manager may want a bid package, a maintenance plan or a roof survey. Those leads take longer to close, so form fills often matter more than calls. Keep homeowner words out of that campaign, and keep “commercial” out of the residential ones.

Follow the roof calendar, not a flat budget

Roof searches don’t hold steady all year. Hail damage searches spike in spring, leak and repair searches jump in summer, and replacement searches stay high through the fall. A flat daily budget buys weak clicks in the slow weeks and hits its cap when the phone should be ringing.

We pulled 2025 monthly US search volume from Ahrefs for four common roofing terms, one per job type. These are estimates, and your local weather will shift them, but the shape is clear.

  • “hail damage roof” peaked in March at 8,119 searches and fell to 1,767 in December. That’s about 4.6 times higher at the top.
  • “roof repair near me” went from 42,202 in January to 96,157 in July.
  • “roof leak repair” climbed from 11,040 in January to 29,185 in August.
  • “roof replacement” started at 48,799 in January and hit 127,653 in November, its high for the year.
The roof calendar: low month vs. peak month
US monthly searches in 2025. Each term peaks at a different time, so the budget should move with it.
hail damage roof 4.6x
Dec1,767
Mar peak8,119
roof leak repair 2.6x
Jan11,040
Aug peak29,185
roof repair near me 2.3x
Jan42,202
Jul peak96,157
roof replacement 2.6x
Jan48,799
Nov peak127,653
Source: Ahrefs Keywords Explorer, US monthly search volume estimates, Jan to Dec 2025. Bars scaled within each term.

Replacement interest didn’t fade after summer. It stayed above 109,000 a month from July through December and hit its high in November.

How we’d set the year

  • January and February: lean months. Keep brand and replacement on, trim repair, and fix landing pages while it’s quiet.
  • March to May: hail searches hit their 2025 high here. Have the storm campaign built and paused, ready to switch on.
  • June to August: repair and leak searches run high. Give repair more room, make sure every call gets answered, and start growing the replacement budget in July.
  • September to December: push replacement hardest. Its searches stayed high from July on and peaked in November in 2025.

Check your own area before you copy this. A Gulf Coast roofer lives by hurricane season, and a Denver roofer by hail. Pull last year’s calls by month. Then move budget a few weeks before your busy season starts, so the account has time to adjust before the rush.

Storm campaigns that stay legal

After a hail storm, it can feel like every roofer in three counties turns on ads at once. The ones who win move fast, show up only where the hail fell and keep their copy inside the deductible laws. In Texas and Colorado, one popular storm line is against the law.

Target the hit ZIP codes, and only the people there

Build the storm campaign ahead of time and leave it paused. When a storm hits, add the ZIP codes or a tight radius around the damage and switch it on the same day.

Then check one setting that’s easy to miss. Google’s location targeting includes people who’ve shown interest in a place by default, not only people who are there. For storm work, switch it to “Presence,” which reaches people in or regularly in the areas you picked. A homeowner two states away reading storm news isn’t your customer.

Watch what you promise about the deductible

Texas Business and Commerce Code 27.02 makes it an offense to advertise or promise that you’ll “pay, waive, absorb, or otherwise decline to charge or collect” a customer’s deductible on a job paid from a property insurance claim, without the insurer’s consent. It also covers rebates or credits that offset the deductible, or any other way of helping the customer skip it. It’s a Class B misdemeanor.

Colorado is close. Under C.R.S. 6-22-105 (as published by the Colorado Attorney General), a roofer paid from insurance proceeds “shall not advertise or promise to pay, waive, or rebate all or part of any insurance deductible” on a home roof claim.

Texas Insurance Code 4102.163 also says a contractor may not act as a public adjuster or advertise to adjust claims. That law doesn’t spell out what a contractor can say about a claim, so keep storm copy about the inspection and the photos, not the claim. Other states have their own rules, so check yours before you write a word of storm copy. This isn’t legal advice.

Skip lines like thisWrite this instead
We’ll cover your deductibleFree roof inspection after the storm
Free roof, insurance paysPhoto report of your storm damage
$1,000 sign credit toward your deductiblePhoto report of your roof in 24 hours (only if you can)
Get a new roof for nothingLocal crew, licensed and insured (only if you are)
Left column: wording that can run into deductible laws in states like Texas and Colorado.

Plenty of homeowners have heard the “free roof” pitch at the door. A local name, a fast inspection and a clear photo report stand out next to that.

When the storm searches die down, pause the campaign again and move that money back to replacement. You’ll want it there for the fall.

Negative keywords every roofer needs

When we check a roofing account for waste, we look first at three kinds of searchers: people buying shingles, people looking for roofing work and people fixing their own roof. None of them will sign a contract with you. Negative keywords tell Google not to show your ads on those searches.

These searches aren’t small, either. Ahrefs puts “metal roofing” at about 60,000 US searches a month and “roofing shingles” at about 12,000. Plenty of those people are shopping for material. “Roofing jobs” gets about 2,300, and most of those people want a job with you, not a bid from you.

The starter list

  • Work seekers: roofing jobs, roofer jobs, now hiring, careers, salary, apprentice, roofer pay, how to become a roofer.
  • Material buyers: panels, sheets, bundle, bundles, rolls, supply, supplies, wholesale, Home Depot, Lowes.
  • DIY: diy, yourself, kit, sealant, tar (skip it if you do flat or tar and gravel roofs), tape, caulk, YouTube.
  • Wrong job: car roof, RV roof, shed kit, dog house, roof rack.
  • Wrong place: cities and counties you don’t serve, and “near” plus any town outside your area.

Add both the singular and plural. Google’s help page says negative keywords “won’t match to close variants,” so you have to add synonyms and plural versions yourself. It does handle misspellings for you. One warning: if you install metal roofs, don’t block “metal roofing.” Block “panels” and “sheets” instead.

Read the search terms every week

A starter list won’t catch everything. Open the search terms report once a week, sort by cost and add a negative for anything that would never become a roof. Before you add a one-word negative, check the report to see what real buyers type with it. It’s one of the first reports we open in a roofing account, and the easiest place to find wasted spend.

Be careful with one thing. Don’t block “cost” or “price.” Someone searching “roof replacement cost” is usually pricing a real job, and Ahrefs shows about 19,000 of those searches a month. Send them to a page that answers the price question honestly, then asks for the inspection.

Negatives block the wrong searches. For tire kickers, we’d add a form on the replacement page that asks for the address and roof age. People who aren’t serious tend to skip it.

Ads and pages that book inspections

Once the right person sees your ad, the ad and the page decide whether they call. Roofing buyers want proof you’re local, licensed and easy to reach. So each campaign gets its own ad copy and its own page.

Headlines that match the search

Responsive search ads let you load up to 15 headlines and 4 descriptions. Each headline can be up to 30 characters, so keep town names short. Write them for the job the campaign covers. Here’s the kind of thing we’d test for a roofer, with your own facts filled in.

  • Repair: “Roof Leak? Same Day Repairs” (only if you really do same day), “Local Roof Repair in [Town]”, “Call Now for a Roof Inspection”.
  • Replacement: “Free Roof Replacement Quote”, “Financing Available” (only if it is), “[Number] Roofs Done in [County]” (only a number you can back up).
  • Storm: “Hail Damage Roof Inspection”, “Photo Report in 24 Hours” (only if you can), “Free Storm Damage Photos”.

Add a call asset to every search campaign so mobile users can tap to call. If you still run call-only ads, plan to move off them. Google stopped new call-only ads in February 2026, and existing ones stop showing in February 2027. We cover the switch to call assets in our HVAC PPC guide.

What the landing page needs

Don’t send ad clicks to your homepage. A homeowner who searched “roof leak repair” should land on a page about leaks, with your phone number at the top. Here’s what we put above the fold on a roofing page:

  • A headline that repeats the search, like “Roof Leak Repair in [Town]”.
  • A tap-to-call button and a short form with three or four fields.
  • Your star rating and review count, pulled from your real profile.
  • A real photo of your crew or truck. We skip stock photos of smiling models.
  • License number and the towns you serve.

Below that, answer the questions a homeowner asks on the phone: how long it takes, what happens at the inspection, whether you work with insurance. If you need a page built for this, here’s how we approach a roofing website that turns clicks into inspections.

Track signed roofs, not clicks

Clicks and calls are easy to count, and they can fool you. A 20-second call from someone selling solar isn’t a lead. Set Google up to count real calls, then feed back which leads became inspections and signed roofs.

Step 1: Count calls that are real conversations

Google can count a call as a conversion in two ways. It can use AI to review call recordings, or it can count calls that last longer than a minimum length you set. If you go with length, pick one that fits your real booking calls. Play back a few short calls from last month and see where real ones start.

Roofing office manager on a headset writing down a new roof lead from a call
Whoever answers the phone decides what your ad money buys. Log every lead so you can trace it to a signed roof.

Step 2: Track forms and website calls too

Lots of roofing buyers click the ad, read the page and call later from the website. Use a tracking number on the landing page and a thank you page for forms, so those leads count too. Otherwise your best campaign can look like your worst.

Step 3: Send back the jobs

This step takes the most work, and it’s the one that shows which keywords sell roofs. Mark each lead in your CRM as it moves: inspection booked, estimate sent, signed. Then send those stages back into Google Ads. If you don’t already import offline conversions, Google recommends starting with enhanced conversions for leads. It uses details from your form, like email, to match CRM leads back to ad clicks.

Now you can see which keyword sold a $15,000 roof, not just which one rang the phone.

Once signed jobs are flowing back every week, you can test telling Google to bid for inspections or signed roofs instead of calls. That pushes the account away from cheap repair calls and toward the leads that sign. Bidding this way needs steady conversion volume, so give it time and check Google’s guidance for your bid strategy before you switch.

Step 4: Answer the phone

None of this matters if calls ring out. A roofer on a roof can’t pick up, and the homeowner just calls the next ad. Run your numbers through our missed call calculator to see what unanswered calls cost you, then decide whether you need an office person, an answering service or our AI receptionist, Restoral, which answers calls and chats and books jobs onto your calendar.

Here’s what a weekly report should show you, in plain numbers: spend, calls over your minimum length, forms, inspections booked, jobs signed and cost per signed job, split by campaign.

Where Local Services Ads fit for roofers

Local Services Ads are the boxes with the Google Guaranteed badge that can show above regular search ads. You pay per lead, not per click. For most roofers they run next to search ads, not instead of them.

They’re also changing. Google says existing Local Services Ads campaigns “will be automatically migrated” to a Performance Max campaign type with pay-per-lead goals inside Google Ads. You still only pay for valid leads, such as calls and messages, and the ads keep showing on Search and Maps in the same spots.

The first phase started in August 2026 with select US home and storefront service businesses, and roofing is on that list. Google said service-area businesses without a storefront, which is most roofers, would follow in late 2026. That’s now, so check your account to see if yours has moved.

For a roofer, that means one login for both, and the same tracking rules apply. Review every lead you’re charged for, and don’t let a cheap pay-per-lead number hide a low close rate. We cover setup and verification in how Local Services Ads work for contractors.

What we’d do with $1,500, $5,000 or $15,000 a month

Budget decides how much of the account you can run well. Spread a small budget across five campaigns and none of them gets enough clicks to learn anything. Here’s how we’d spend each level.

First, a quick note on how Google spends. You set a daily budget, and Google can spend up to twice that on a busy day. Over a month, it won’t charge more than 30.4 times your daily budget. So divide your monthly number by 30.4 to get the daily setting.

To show what each level can buy, we ran the LocaliQ roofing medians: $10.70 a click and 3.70% of clicks turning into leads. Your market will be different, so treat these as rough starting points.

Monthly budgetDaily settingClicks at $10.70Leads at 3.70%Leads at $228 per lead
$1,500about $49about 140about 5about 7
$5,000about $164about 467about 17about 22
$15,000about $493about 1,400about 52about 66
Example math using LocaliQ 2025 Roofing & Gutters medians. The two lead columns differ because each median stands alone. Plan on the lower one. Not a forecast.

$1,500 a month: one job, done well

Run replacement and brand, and keep a storm campaign built and paused. Target your core towns with Presence, not your whole service map. Use call assets and one strong replacement page. Five to seven leads a month is thin, so answer every one on the first ring and follow up until it books or says no. If a storm hits, move money into the storm campaign for a couple of weeks, then move it back.

$5,000 a month: the full residential setup

Add repair. Keep storm built and paused, ready for the next hail day. Now you have enough leads to start sending back inspections and signed jobs. Shift budget by season using the calendar above, and review search terms every week.

$15,000 a month: scale and widen

Run everything. Commercial goes in if you do that work, and once signed jobs are flowing back from your CRM, test bidding for inspections instead of calls. Add remarketing so people who visited your replacement page see you again while they collect bids. At this level, a test on Microsoft Ads (Bing) can be worth a small slice too.

Whatever the level, hold it against the ceiling you worked out earlier. More budget doesn’t fix a lead cost that’s already over what your roofs can afford.

Roofing PPC questions we hear a lot

How much should a roofing company spend on Google Ads?

Start from the cost per lead your jobs can afford, not a round number. Multiply that by the leads you want each month, then check it against your crew’s capacity. At the LocaliQ roofing medians, $1,500 a month buys about five to seven leads. At $5,000 it’s about 17 to 22, which at our example 18% sign rate is three or four signed roofs a month.

What is a good cost per lead for roofing PPC?

A good cost per lead is one under your own ceiling. LocaliQ’s 2025 median for roofing and gutters was $228.15, which is a fair yardstick. But a crew selling $30,000 roofs can pay far more per lead than a repair shop. Judge it by cost per signed roof, too, since a lead is only a call or a form.

Is PPC or SEO better for roofers?

They do different jobs. PPC can bring calls the week you turn it on, and it stops the day you stop paying. SEO takes months to build, but the traffic doesn’t charge you per click. Most roofers we’d advise run PPC for steady leads while their roofing SEO grows underneath it.

How long does roofing PPC take to work?

Calls can start in the first week. Getting the account efficient takes longer, because you need search terms to add negatives and signed jobs to judge keywords. Plan on two to three months before you judge it on cost per signed roof, and longer for replacement, since those jobs take weeks to close.

Should roofers run Local Services Ads too?

Usually yes, next to search ads. You pay per lead instead of per click. Google is moving Local Services Ads into Google Ads as a pay-per-lead Performance Max campaign. It started in August 2026 with select US home and storefront service businesses, roofing included. Google said service-area businesses without a storefront would follow in late 2026, so check your account to see if yours has moved. Judge those leads by signed roofs, the same as search.

Should I run roofing PPC myself or hire someone?

You can run a small account yourself if you’ll read search terms every week and track signed jobs. Most owners don’t have that time in season. If you hire help, ask for reports with inspections and signed jobs by campaign, and make sure the ad account is in your name.

What to do this week

  1. Work out your allowed cost per lead from your last 20 jobs.
  2. Open your search terms report and add negatives for jobs, materials and DIY.
  3. Check your location setting. Switch campaigns to Presence so your ads aim at people in or regularly in your area, not people who just read about it.
  4. Read every storm ad for deductible promises, especially if you work in Texas or Colorado.
  5. Set up a call length conversion and start marking leads as booked or signed in your CRM.

Ads bring calls now. They work best as one piece of a bigger roofing marketing plan, next to roofing SEO, reviews and other ways to get roofing leads. We’re a Google Partner. We run Google Ads and Local Services Ads for contractors. Want us to look at your ads? Talk to us about Google Ads, or start with a free local SEO audit.

Roofing PPC That Books Roofs, Not Tire Kickers