Industry playbooks

Google ads for roofers: what works and what wastes money

Local Services Ads vs. Search ads for roofing — setup, keywords, negatives, budgets by season, and the tracking that keeps clicks honest.

Google ads can be the best money a roofing company spends or the fastest bonfire in the trade — and the difference is rarely the budget. It’s the setup. Roofing clicks cost $15–60 apiece in most metros, which means a loosely-built campaign doesn’t underperform, it hemorrhages.

This guide covers the two kinds of Google ads that matter for roofers — Local Services Ads and Search — in the order to turn them on, with the settings that separate booked roofs from burned budgets. (Where ads fit among all your lead sources is covered in the ranked list; this is the how-to.)

Start here: Local Services Ads (Google Guaranteed)

Those “Google Guaranteed” listings with the green check, sitting above even the regular ads? That’s LSA, and it should be the first paid channel every roofer turns on.

Why it fits roofing so well:

  • You pay per lead, not per click. A curious scroller costs you nothing; only actual contacts bill.
  • The badge fights the trade’s biggest enemy — distrust. Google’s screening (license, insurance, background checks) is visible to the homeowner at the exact moment they’re worried about chasers.
  • Your reviews do the ranking. LSA placement leans heavily on review count, rating, and responsiveness — the same review engine you’re building for SEO pays twice.

Setup, in brief: apply at Google’s Local Services portal → pass the screening (have license and insurance docs ready; background checks take days to weeks) → connect your Google Business Profile reviews → set your service types (repair, replacement, storm) and towns → set a weekly lead budget.

Running it well:

  • Answer instantly. LSA ranks responsive businesses higher and charges you for leads either way. Treat every LSA call like a paying customer holding money, because they are.
  • Dispute junk — wrong service, out of area, spam. Google credits legitimate disputes; roofers who never dispute overpay by 10–20%.
  • Don’t cap the budget during storms. The weeks you most want leads are the weeks a low cap turns you off.

For most roofers, LSA alone at $1,000–3,000/month produces steadier economics than any other paid channel. Max it before you spend a dollar on clicks.

Search ads: precision demand capture

Search ads are the classic results-page ads — you bid on searches, you pay per click. In roofing they’re powerful and unforgiving, so build tight:

The keywords that pay

Three buckets, in order of intent:

  1. Emergency/urgent: “roof leak repair,” “emergency roofer,” “roof tarp service.” The most expensive clicks and the fastest closes — someone’s ceiling is dripping now.
  2. Storm terms (seasonal gold): “hail damage roof repair,” “roof storm damage insurance,” “[town] hail damage.” Cheap-ish before storms, decisive during.
  3. Replacement research: “roof replacement cost,” “roofing companies [city].” Bigger jobs, longer decisions — these pay when your follow-up is disciplined.

Skip broad, ego, and bargain terms: “roofing” alone, “roof” anything without a qualifier, “free roof” (insurance-scheme shoppers), “roofing jobs” (job seekers).

Negative keywords: the cheapest fix in the account

Add these as negatives on day one and check the search-terms report weekly for more: jobs, hiring, salary, DIY, how to, shingles calculator, Home Depot, Lowe’s, materials, wholesale, tools, classes. Every one of those words is a click you’d have paid for and could never book. In most roofing accounts, a disciplined negative list saves 15–30% of spend — which is the margin between profitable and not.

Geography and schedule

  • Target your service towns only, and set location to “presence” (people in the area) — not “interest,” which bills you for out-of-state searchers reading about your town’s hail.
  • Bid up your best suburbs — the ones where your town pages and job history already win trust.
  • Run ads when you answer phones. A 9pm click that reaches voicemail is a wasted $40 — either staff after-hours response or schedule ads off.

Landing pages: the half most roofers skip

Every ad group lands on its matching page — the leak-repair ad on the repair page, the hail ad on the storm/insurance page, never the homepage. The page itself needs the anatomy from what a roofing website needs: tap-to-call header, proof, a short form. This one discipline commonly doubles conversion rate, which halves your cost per lead without touching bids.

A starter account structure you can copy

Structure sounds boring until you see what it saves. Group everything into three campaigns, each with tight ad groups, and both your budget control and your data stay clean:

Campaign 1: Emergency (highest priority, always on)

  • Ad group: leak repair — “roof leak repair,” “roof leaking [city],” “emergency roof repair”
  • Ad group: tarping — “roof tarp service,” “emergency roof cover”
  • Lands on: repair page (with the emergency section up top)

Campaign 2: Replacement (steady, research-phase)

  • Ad group: replacement — “roof replacement [city],” “new roof cost,” “roofing companies [city]”
  • Ad group: financing — “roof financing,” “roof payment plan”
  • Lands on: replacement page / financing page

Campaign 3: Storm (built now, paused until weather)

  • Ad group per storm type — “hail damage roof repair,” “wind damage roof,” “[town] hail damage”
  • Lands on: the storm/insurance page

Why the split matters: emergencies deserve the highest bids and a 24/7-ish schedule; replacement shoppers deserve steadier bids and remarketing; storm terms deserve a big budget for two weeks and silence otherwise. One mixed campaign can’t do all three — separate campaigns each get their own budget dial.

Writing ads that get the right clicks

You’re not writing to maximize clicks — every click costs $15–60. You’re writing to attract the homeowner you want and repel everyone else:

  • Headline formula: service + place + speed or proof. “Roof Leak Repair in Plano — Usually Fixed in 48 Hrs” / “Hail Damage? Free Inspection + Claim Help” / “Roof Replacement — 4.9★, 212 Reviews.”
  • Put a price signal in when you can. “Repairs From $400” pre-filters the bargain hunters before they spend your click money.
  • Say who you’re NOT for when it helps. “Residential only” saves you every commercial facilities manager’s click if you don’t want them.
  • Descriptions carry the trust facts: licensed & insured, years, warranty, “no door-knockers — inspection photos included with every quote.”
  • Use every extension Google offers: call button, location, sitelinks to your service pages, review count. Extensions are free real estate — a bigger ad at the same bid.

Write two or three ads per ad group and let Google rotate; check monthly and replace the loser.

The five ways roofers waste money on Google

The same leaks appear in almost every underperforming roofing account:

  1. “Interest” location targeting — paying for people reading about your town from three states away. Set presence-only.
  2. No negative keywords — quietly funding DIYers, job hunters, and shingle-price shoppers. (The list from earlier fixes it in ten minutes.)
  3. Everything lands on the homepage — the #1 conversion killer. Match ad to page, always.
  4. Broad match with no supervision — Google will happily match “roofer” to “roof rack for Subaru.” Check the search-terms report weekly and add negatives.
  5. Judging on clicks or even leads — the only number that decides anything is cost per booked job. A campaign with fewer, dearer leads that book is the winner over one with cheap leads that ghost.

Budgets by season

Roofing demand follows weather, and spend should follow demand:

  • Baseline (always on): enough to stay present on emergency + replacement terms — commonly $50–100/day depending on metro. Going fully dark resets your data and your presence.
  • Storm protocol: campaigns pre-built and paused — “hail damage [town]” ad groups with the storm/insurance landing page. The day after weather, flip on, add the hit towns, and raise caps. The roofers who do this buy the cheapest storm leads of the year; the ones who start building that week buy the dearest.
  • Spring/fall pushes: inspection and replacement offers when homeowners plan projects.

Tracking: the only three numbers that matter

Clicks and impressions are wallpaper. Wire these before scaling anything:

  1. Call tracking on ad traffic, so calls attribute to campaigns.
  2. Form tracking — every ad landing-page form tagged by source.
  3. Cost per booked job, by campaign, monthly. Leads that don’t book are expensive noise. One campaign at $180/booked-job and another at $900 look identical in Google’s dashboard — the booked-job sheet is where the truth lives. (It’s the same funnel math that governs every channel.)

Give any campaign 60–90 days and a few thousand dollars of data before judging — but audit the search-terms report and the speed-to-lead weekly from day one.

What about Performance Max and “smart” campaigns?

Google will push you — hard — toward its automated campaign types: Performance Max, Smart campaigns, broad-match-everything with “AI” bidding. The pitch is “let Google do the work.” Here’s the honest read for a local roofer:

Automation works when it has lots of conversion data to learn from. A national retailer with 5,000 sales a month feeds the machine well. A roofer with 30 leads a month doesn’t — the algorithm guesses, and its guesses spend your money learning. Performance Max also hides most of the search-terms detail, which removes exactly the lever (negatives, term-by-term control) that keeps roofing accounts profitable.

The practical rule: earn automation. Run the structured campaigns above until you have months of clean conversion data, then test automated bidding inside that structure (target-CPA on the emergency campaign, say) where you can compare it against a known baseline. Starting with full automation on a fresh account is how roofers end up spending $4,000 on clicks from three counties away with no idea why.

Your first month, week by week

Turning it all into a calendar:

Week 1 — plumbing before spending. Apply for LSA screening (it takes time — start now). Install call tracking and form tracking. Build the three-campaign structure above with ads and negatives loaded, everything paused. Confirm each landing page passes the phone test: fast, tap-to-call, proof visible.

Week 2 — LSA live. Budget on, instant-answer rule assigned to a named human, dispute habit explained to whoever answers. Leave Search paused unless crews are hungry — let the cheaper channel prove itself first.

Week 3 — Search live, emergency campaign only. Modest daily cap. Check the search-terms report twice this week and feed the negative list. Watch speed-to-lead like a hawk — the first leak is always response time, not settings.

Week 4 — read and adjust. You now have a month of LSA and two weeks of Search data. Compare cost per booked job (not lead) between them. Turn on the replacement campaign if capacity allows. Book a recurring 30-minute monthly slot for: search-terms review, negative additions, ad-copy loser swap, and the booked-job math.

From month two onward, the account needs that 30 minutes a month plus storm-day responses — not daily fiddling. Constant tinkering resets Google’s learning and usually hurts more than it helps. Build tight, then let it run.

The launch checklist

  1. LSA: screened, reviews connected, budget on, instant-answer rule in place
  2. Search: emergency + storm + replacement ad groups, tight geography, presence-only
  3. Negative list loaded day one; search-terms report reviewed weekly
  4. Every ad group → matching landing page with tap-to-call
  5. Call + form tracking live before the first dollar
  6. Storm campaigns built and paused, waiting for weather
  7. Monthly: cost per booked job by campaign; kill or fix the losers

Run that list and Google ads become what they should be for a roofer: a valve you open when crews need work and a force multiplier when storms hit — bolted onto the owned engine that keeps working when the ads are off.

Before you spend: make sure the destination converts. The free audit scores your site and Google profile in 60 seconds — fix what it finds first, and every ad dollar afterward works harder. Or have us build the whole foundation while you run the crews.

Common questions

How much do Google ads cost for roofers?

Roofing is one of the priciest trades on Google. Search clicks commonly run $15–60, and a lead often costs $100–400 in competitive metros. Local Services Ads leads typically run $75–300 but are pay-per-lead with a dispute process. The spread is exactly why tracking cost per booked job — not per click — decides whether ads make money.

What's better for roofers — Local Services Ads or regular Google ads?

Start with Local Services Ads. They sit above everything, you pay per lead instead of per click, and the Google Guaranteed badge carries trust roofing badly needs. Add Search ads once LSAs are maxed in your area or when you want storm-term coverage LSAs can't target as precisely.

Should roofers run ads year-round?

Keep a modest always-on budget so you never vanish, and multiply it when demand spikes — the first big storm, the spring inspection season. Storm weeks have the highest search volume and often the lowest cost per booked job of the year, but only for roofers whose campaigns were built before the rain.

Why are my roofing ads getting clicks but no calls?

Usually one of three leaks — the ad lands on your homepage instead of a matching service page, the page is slow or hard to call from a phone, or the keywords are too broad and you're paying for DIYers and job-seekers. Negative keywords and matched landing pages fix most of it.