Google Ads Cost Per Lead for HVAC, Plumbing & Roofing

What actually drives the cost up — and the five levers that bring it down before you spend another dollar.

Part of the Leveraged Owner 8-system framework

Google Ads is the most expensive lead source most contractors run — and the one with the biggest gap between "expensive" and "cheap" depending on how it's set up. Two roofing companies in the same county can pay wildly different costs per lead from the same platform. The difference is never the platform. It's the account.

What drives Google Ads cost per lead (the real list)

Cost per lead comes down to one formula: spend ÷ countable leads. Everything below moves one side of that equation.

  • Keyword competition in your market. Emergency keywords ("emergency plumber near me," "AC repair same day") convert fast and cost more per click. Competitor count in your city matters more than any national average.
  • Your Quality Score. Google rewards relevant ads and landing pages with lower click costs. An ad that matches the keyword and lands on a page built for that job pays less than a generic ad landing on your homepage.
  • Match types and negative keywords. Broad match without negative keywords is how "how to fix a leaky faucet myself" clicks eat your budget. DIY searches don't buy — they just cost you clicks.
  • Service-area targeting. Targeting a 50-mile radius when you only serve 20 means paying for calls you'll turn away. Tight geography is free money.
  • Landing page conversion rate. If 100 clicks produce 3 leads, you pay 33 clicks' worth per lead. If the same clicks produce 10 leads, your cost per lead drops by two-thirds. The page does more work than the bid.
  • Call answering. The clicks already happened — whether you pick up the phone or not. A click that becomes a missed call still cost you. 27% of inbound calls go unanswered (Invoca), and every one of those was paid for.

Why the cost keeps rising (and what you control)

Ad auctions get more expensive as more contractors bid. That's outside your control. What's inside your control: how much of your spend converts. Two levers move fastest:

  • Kill the wasted clicks. Open your search-terms report monthly. Add DIY, job-seeker, and parts-only searches as negative keywords. Tighten geo. This alone can cut a meaningful chunk of wasted spend with zero change in lead volume — because the clicks you cut were never going to buy.
  • Convert more of what's left. A dedicated landing page per service ("Furnace Replacement" gets its own page, not your homepage) with a visible phone number, a quote form above the fold, and after-hours text-back will convert clicks into leads at a much higher rate than a generic site page.

The five levers that lower cost per lead (in order of effort)

Run these before raising your budget:

  1. Negative keywords sweep (30 minutes, monthly). DIY terms, "jobs," "salary," "parts," wrong-trade terms. The cheapest win in the whole account.
  2. Tighten geo and hours. Only show ads where you actually dispatch, during hours you can answer — or route after-hours clicks to a page that captures the lead by text. Paying for 2am clicks you can't answer is a donation to Google.
  3. One landing page per service line. HVAC repair, HVAC replacement, plumbing repair, water heaters — each gets its own page with one job: convert the click into a call or form. Track calls per page.
  4. Answer every call — and text back the misses. Missed-call text-back automation means a click that rings through after hours still becomes a conversation. This is where paid traffic meets the 8-system framework: leads you pay for deserve the same capture systems as organic ones.
  5. Follow up every estimate. Google Ads clicks turn into estimates that sit in your inbox. An automated estimate follow-up sequence (3 touches over 10 days is a common structure) closes jobs from spend you've already made.

Should HVAC, plumbing, and roofing run Google Ads differently?

Same platform, different strategy:

  • HVAC: seasonal demand swings are extreme — shoulder months (spring/fall) are where ads do the most work. Replacement keywords are expensive but worth it; the ticket justifies the cost.
  • Plumbing: emergency intent is the goldmine. "Emergency plumber near me" costs more per click but the caller needs someone NOW — speed wins, and your after-hours capture has to be airtight.
  • Roofing: longer sales cycles, bigger tickets, heavy seasonality around storms. Landing pages that speak to insurance claims and storm damage convert the clicks everyone else wastes on generic "roofing company" pages.

All three share the same rule: expensive clicks are fine when your capture, speed, and follow-up are tight. Expensive clicks with no follow-up is just burning money.

How to know if YOUR Google Ads cost per lead is acceptable

Forget the charts — and treat any article that quotes a single "average cost per lead" for your trade without a source, a city, and a lead definition as a guess. Run this check instead:

7x

more likely to qualify a lead when you respond within an hour (Harvard Business Review, 2011) — speed changes the economics of every click you buy.

100x

more likely to make contact when you respond within five minutes vs. 30 (MIT Lead Response Management Study, via HBR 2011).

$275–$1,200

illustrative home-service average-ticket range — plug in YOUR ticket to sanity-check whether your cost per booked job makes sense.

The real test: cost per booked job = (total Google Ads cost) ÷ (jobs booked from those clicks). Track it monthly. If it stays well under your average ticket and your schedule has room, the channel works. If it creeps up, fix speed, follow-up, and landing pages before blaming Google.

Related guides in this series

Compare channels in Thumbtack vs Angi vs Google LSA, run the booked-job math in ROI Worksheet Walkthrough, and stop paid clicks from ringing unanswered with Missed-Call Text-Back Setup plus The Five-Minute Rule.

Get System 1 free: the complete Missed-Call Safety Net

The full setup guide, all four copy-paste scripts (including the owner notification), the "Your Numbers" missed-call worksheet, and the step-by-step setup guide — free, no catch. Fix your missed calls this week.

Get the AI Automation Starter Pack — $27, one-time: https://leveragedowner.com/starter-pack/

The done-for-you version

This post is part of the Leveraged Owner 8-system framework — the done-for-you version with the full setup guides, every script, the worksheets, and screen-by-screen setup instructions for all 8 systems.

Stats sourced as labeled: Invoca call-analytics research (27% unanswered); MIT Lead Response Management Study via HBR 2011 (7x respond-within-an-hour; 21x/100x five-min-vs-30); $275–$1,200 is an illustrative ticket range — plug in your own numbers. No specific dollar benchmarks are quoted because your market sets them.

Keep building your systems

Related guides from the Leveraged Owner blog: