← all posts

lead generation

HVAC Lead Generation in 2026: The Playbook From a $2.4M Media Buyer

HVAC lead generation in 2026: real CPLs by channel, close rates, and seasonal budget splits from a media buyer who has managed $2.4M in ad spend.

hvac leads are the most expensive leads in home services, and most contractors cannot tell you which channel actually produces booked jobs. i have spent $2.4M on paid acquisition across lead-gen verticals — detailing, roofing, dental, solar — and hvac is the most seasonal, highest-CPL, most mismanaged vertical i have worked in. this is the playbook i would hand a contractor six weeks before heating season.

the short version: local services ads are the best paid channel in hvac right now at $51-85 per lead. google search works but bleeds money without tight structure — the blended industry CPL sits at $104. and anyone promising “$45 exclusive leads” is lying to you. shared leads from angi, homeadvisor, and modernize look cheap on the invoice and cost $500+ per booked job once you run the real math.

in this guide:

  • what hvac leads actually cost by channel in 2026, with close rates and cost per booked job
  • why google ads campaigns bleed money without a three-way campaign structure
  • how local services ads hit 9.55x ROAS, and how to rank higher inside them
  • the maintenance agreement math that turns $25/month into your cheapest lead source
  • a seasonal campaign calendar and a real $5,000/month budget split
  • the tracking setup that tells you what a booked job actually costs
6.5%
google ads CVR — highest of any industry
$51-85
local services ads CPL
$104
blended search CPL
9.55x
LSA ROAS across 888 contractors

what hvac lead generation actually costs in 2026

most hvac marketing content quotes a single CPL number and calls it a day. that number is meaningless without the close rate behind it. a $70 lead that closes at 8% costs you $875 per booked job. a $120 lead that closes at 25% costs $480. the channel with the cheapest leads is rarely the channel with the cheapest customers.

here are the 2026 benchmarks, pulled from SearchLight Digital’s analysis of $14.9M in hvac ad spend across 816 contractors, LocaliQ cost data, First Page Sage conversion benchmarks, and my own accounts:

channelcost per leadtypical close ratecost per booked job
local services ads$51-8520-30%$170-425
google search$85-13015-20%$425-870
shared lead platforms (angi, modernize)$50-905-15%$500-1,400
seo / organic local (at maturity)$15-4530-40%$50-150
referrals$0-5040-60%$0-125
direct mail$75-15010-15%$500-1,500
pay-per-call networks$45-90 per qualified call15-25%$180-600

read that table twice. the two channels most contractors default to — shared lead platforms and unstructured google search — are the two most expensive ways to acquire a booked job. the channels that win are the ones that take setup work: LSAs, seo, and your own customer database.

the shared lead trap

here is how the shared lead economy actually works. a marketing company runs ads, collects a form fill or a call from a homeowner with a broken furnace, then sells that contact to three or four contractors in the same zip code. you pay $50-90. so do the other three. the homeowner gets four calls in an hour and hires whoever answers or calls back first — 78% of customers buy from the company that responds first, per harvard business review and insidesales data.

so you are racing three competitors you cannot see, for a lead that was already worked. at a 5-15% close rate, that $70 modernize lead costs $500-1,400 per booked job — on a repair that might be a $300 thermostat and on a replacement you may have lost before you even called.

every lead you buy from a shared-lead platform is a lead another marketer generated and chose to sell instead of work. sit with that. the seller ran the math and decided the lead was worth more sold four times than booked once. that is the market telling you what the lead is worth.

the affiliate mill problem. most “hvac marketing” guides ranking on google right now are written by agency-affiliate mills pushing angi and homeadvisor signup links with fabricated $45 CPLs. those numbers do not survive contact with a real account. every number in this post comes from spend benchmarks or my own accounts — and i have managed $2.4M across 28 clients at a 3.8x average ROAS.

hvac has the highest google ads conversion rate of any industry at 6.5% — nearly double the cross-industry average, per First Page Sage. the demand is there. but the blended CPL across 816 contractors is $104, and it has climbed 23% since 2024. the channel is not broken. the setups are.

the typical bleeding account has three problems: one campaign for every service, a homepage as the landing page, and no negative keywords. fix those three and the same budget produces a different business. here is the structure i run:

  1. campaign structure: three separate campaigns — emergency repair, system replacement, maintenance and tune-ups. different intents, different CPLs, different margins. a repair lead is worth maybe $300. a replacement lead is worth $8,000-15,000. bidding on them together means google optimizes toward the cheap clicks and starves the profitable ones.
  2. match types: broad match with target CPA bidding is the 2026 default, and it works — but only with conversion data feeding it. if you want the full reasoning, my google ai max guide covers how query matching is changing and what it means for lead-gen accounts.
  3. negative keywords: 500-700 terms, minimum. “diy,” “how to,” “parts,” “salary,” “school,” “jobs,” “free,” “rental,” “troubleshooting,” plus every competitor name you do not want to pay for. this is the single highest-leverage hour in google ads.
  4. landing pages: one page per campaign. sub-2.5 second load time, click-to-call button above the fold, no navigation menu, review count visible. every extra link on the page is a leak.
  5. ad schedule: if nobody answers the phone after 8pm, do not pay for 8pm clicks. either staff the phones or daypart the spend.

i lay out the full management framework — budget pacing, search term reviews, the weekly optimization loop — in my google ads management for lead generation guide. for hvac specifically, the seasonal layer is what most accounts miss.

the seasonal budget split

hvac demand is a double peak — cooling in summer, heating in winter, valleys between. your budget should follow it. here is the annual split i use for a typical mid-market contractor:

season% of annual budgetwhat to push
peak cooling (jun-aug)30-35%emergency AC repair, replacement quotes, call-only campaigns
peak heating (dec-feb)25-30%emergency heat repair, 24/7 availability messaging
spring shoulder (mar-may)18-22%AC tune-up specials, maintenance enrollment, SEO content push
fall shoulder (sep-nov)15-20%furnace tune-ups, inspections, retargeting summer visitors

the counterintuitive part: the shoulder seasons are where the margin lives. when competitors pause their campaigns in september and october, CPCs drop 40-60%. a furnace tune-up campaign launched in mid-september buys clicks at roughly half of what the same campaign costs in january — and every tune-up is an inspection that books replacement work for the deep winter.

this is why timing matters more in hvac than any vertical i run. campaigns need 2-3 weeks of learning data before peak demand. if you wait for the first cold snap to launch, you spend the most expensive weeks of the year in google’s learning phase. that window is roughly six weeks from now.

local services ads: the highest-ROI paid channel

local services ads sit above search results, charge per lead instead of per click, and carry the google guaranteed badge. across 888 contractors, SearchLight Digital measured a 9.55x ROAS — the strongest paid channel benchmark in home services.

the math is simple. LSAs deliver leads at $51-85 against search’s $104 blended. the leads are phone calls from people who saw your reviews and your badge and chose you, which is why close rates run 20-30% instead of 15-20%. and you can dispute leads that are spam, out of area, or wrong numbers — try doing that with a click.

your position in the LSA pack is driven by three things you control:

  • reviews: count and recency. a steady 6-10 new google reviews per month beats a stale 400.
  • response time: answer fast, every time. google tracks it and ranks you on it — and remember, 78% of customers hire the first responder anyway.
  • proximity and completeness: verify every service area, upload insurance and license docs, keep your profile at 100%.

the google guaranteed badge alone produces a measurable 20% conversion lift — homeowners read it as google underwriting the contractor, which is not quite what it is, but the trust effect is real and it shows up in close rates.

for budget, i put 40-50% of paid spend into LSAs once an account is verified and has review history. in mature accounts i run a hybrid: LSAs for volume and bottom-funnel capture, search for coverage of replacement-intent keywords and to retarget LSA callers who did not book. if you want to see how this layers with campaign types, my performance max for lead gen breakdown covers where PMax fits in a local lead-gen stack.

if you do one thing after reading this post: start your LSA verification today. background checks and license verification take weeks, and you want to be live and ranked before the first cold snap — not starting the paperwork.

seo and google business profile: the compounding asset

an established contractor’s google business profile generates 40-100 inbound calls a month at $0 CPL. not leads — calls. it is the single best free lead source in the trades, and most contractors leave it on autopilot.

the playbook is unglamorous and it works:

  • reviews: 6-10 new google reviews per month, minimum. systematize it — a text with a direct review link sent within an hour of every completed job. technicians ask, the office sends the link, the owner checks the count weekly.
  • photos: real job photos, weekly. before/after installs, trucks, crews. google rewards activity and homeowners scrutinize it.
  • posts: weekly GBP posts tied to season — furnace checks in october, refrigerant checks in may.
  • city + service pages: one page per service per city. a 20-city, 6-service operation is 120+ pages. each one targets “furnace repair in [city]” with local proof, local photos, and a click-to-call. this is where local SEO CPL drops to $15-45 at maturity — 6-12 months of consistent work, then it compounds while you sleep.

i run the same framework across local verticals — the car detailing lead generation playbook on this site is the same skeleton with different keywords. hvac is harder to enter and slower to compound, but the average job value makes the patience worth it.

maintenance agreements: the lead gen machine nobody markets

here is the number that changed how i budget hvac accounts: maintenance plan customers spend 2-3x more annually and carry a 5-7x higher lifetime value than one-off callers. they also call you first when the furnace dies at 11pm in january — which means your maintenance base is a replacement pipeline you already paid to build.

the math on a modest program: 20 new agreements a month at $25/month is $6,000 in MRR within a year, plus priority on every repair and replacement those households need. and maintenance plans sell in the shoulder seasons, when your techs have capacity and your competitors have paused their ads.

three plays that fill a plan:

  1. shoulder-season tune-up offers: a $79 furnace inspection in october that ends with a technician walking the homeowner through what the inspection found and what a plan covers. techs need a script, not a brochure.
  2. database reactivation: text and email every customer from the last 24 months before each season. past customers engage at 10-15% at near-zero acquisition cost. this is the cheapest campaign you will ever run — i cover the broader system in my first-party data lead gen guide.
  3. filter touchpoints: every maintenance visit includes a filter check. either stock filters as a retail line or point plan members to a supplier — if you run a homeowner-facing email list or blog, AirFilters.com pays 12% on replacement filter orders, and every system in your base needs 2-4 filters a year on subscription.

the compounding effect: a 1,000-agreement base at $25/month is $25,000 MRR before a single new lead — and it converts to replacement work at close rates paid channels cannot touch, because these customers already trust you.

the seasonal playbook: what to run and when

hvac marketing is a calendar, not a switch. here is the year, laid out:

windowplays to run
march-mayAC tune-up specials, maintenance plan enrollment, SEO content push ahead of summer search demand, review generation sprint
june-augustmax LSA and search budgets, emergency repair focus, call-only campaigns, bid up urgent keywords, staff phones extended hours
september-novemberfurnace tune-ups, heating inspections, retargeting spring and summer site visitors, pre-winter replacement quotes at shoulder-season CPCs
december-februaryemergency heating, 24/7 availability messaging, end-of-season install deals on leftover equipment inventory

the rule that ties it together: start everything 4-6 weeks before the peak. LSAs need verification and review accumulation. search campaigns need learning data. landing pages need indexing. a campaign launched at the first cold snap spends its most valuable weeks calibrating, at peak CPCs, against competitors who launched in october.

which is the real reason this post exists. if you are reading this in late september, you are early. that is the whole edge.

tracking and attribution: what actually matters

if you cannot answer “what did a booked job from google cost me last month” in under a minute, you are not marketing — you are gambling with better paperwork. every recommendation above assumes you can close the loop. here is the loop:

  1. call tracking: callrail or whatconverts with a 90-second qualified call threshold. under 90 seconds is a wrong number or a price shopper; over 90 seconds is a lead your CRM should hold accountable. dynamic number insertion ties each call back to the campaign and keyword.
  2. offline conversion import: feed booked jobs — and ideally job values — back into google ads from your CRM. this is the single biggest bidding upgrade available to hvac accounts. google stops optimizing toward cheap form fills and starts optimizing toward $9,000 replacements. servicetitan, housecall pro, and jobber all support the export.
  3. CRM discipline: every lead gets a source tag, a disposition, and a close value. no “walk-in” as a source. no exceptions.
  4. speed to lead: a monitored response SLA. first call inside five minutes during business hours. 78% of customers buy from the first responder — your response time is a conversion rate, not an ops detail.

then run the unit economics. the health check is simple: customer acquisition cost under 10% of customer lifetime value. an hvac customer across a replacement, a repair history, and a maintenance plan is easily a $10,000-15,000 lifetime relationship. that means a $500 cost per booked job is not expensive — it is a bargain, if you can see it. most contractors panic at a $150 lead because nobody ever showed them the denominator.

when that visibility gap is the problem, the fix is either a tracking build-out or an extra pair of hands — i wrote a full decision framework in when to hire a media buyer.

a real $5,000/month budget, allocated

here is how i would split $5,000 a month for a contractor with review history and a verified LSA profile, heading into heating season:

channelmonthly budgetshareexpected output
local services ads$2,00040%23-39 leads at $51-85
google search (emergency + install)$1,75035%14-20 leads at $88-125
seo / GBP management$75015%compounding — 40-100 calls/month at maturity
direct mail (seasonal drops)$50010%4-6 leads per drop, targeted to plan-age homes

that is 44-62 paid leads a month, plus the GBP calls an established contractor already receives — call it 60-80 total leads at a $60-90 blended CPL once the account has 90 days of calibration data. at a 20% blended close rate and a conservative $2,500 average ticket across repairs and replacements, that is roughly $30,000-40,000 in monthly booked revenue on $5,000 of spend.

treat the first 90 days as calibration, not verdict. shift budget monthly toward whatever channel shows the best cost per booked job — not cost per lead. and if you are weighing whether to run this yourself against bringing someone in, my google ads management pricing breakdown and the agency vs freelancer comparison cover what management should cost and what to expect for it.

want to run these numbers with your own CPLs? i built a google sheet that does the math in this post — plug in your cost per lead, close rate, and average ticket, and it outputs cost per booked job by channel plus your seasonal budget split. free, one email, no call required.

the other side: selling hvac leads

this site has two audiences, so one section for the second one. if you are an affiliate or lead seller rather than a contractor, hvac is one of the best verticals in home services to work: demand is urgent (a broken furnace cannot wait a week), buyers pay well, and the market grows every year as housing stock ages.

current payouts run $20-50 per shared lead, $60-100 per exclusive lead, and $80-150 for same-day emergency contacts. the platform i see paying among the best rates in home services is Profitise — embeddable lead forms, a large buyer network for hvac, plumbing, roofing, and electrical, biweekly payouts, and a dedicated affiliate manager.

one honesty note from the contractor side of this post: if you sell leads, cap the sharing. exclusive or two-buyer caps keep close rates high for your buyers, which keeps them buying. the four-way shared lead is why contractors hate lead platforms — and why the sellers who cap sharing keep their buyers for years.

run it yourself, or bring me in

everything in this post is runnable by a competent contractor with ten hours a week and the discipline to track close rates. most have neither, and the account shows it within 90 days.

this is what i do. $2.4M managed, 28 clients, 3.8x average ROAS, five-plus years in paid lead generation. i structure hvac accounts exactly like this playbook — three-way campaign splits, LSA-first budgets, seasonal pacing, offline conversion imports — and i price at 15% of spend with a $1,000 monthly floor. if your account is bleeding or you are heading into heating season without a structure, book a call.

or take the calculator, run your own numbers, and start with the LSA verification. both are fine. the worst move is a sixth week of doing nothing.

frequently asked questions

what is a good cost per lead for hvac?

$51-85 per lead on local services ads and $85-130 on google search are the 2026 benchmarks. anything under $50 from a paid channel is either a shared lead sold to multiple contractors or a number someone made up. judge channels on cost per booked job — CPL divided by close rate — not on the sticker price of the lead.

are homeadvisor and angi leads worth it?

rarely, and only if you answer within minutes. shared leads cost $50-90 but close at 5-15% because three or four contractors get the same contact, and 78% of customers hire whoever responds first. that works out to $500-1,400 per booked job — more than LSAs or search. if you have a dedicated fast-response process, they can supplement; as a primary channel, they are the most expensive way to buy hvac customers.

how much should an hvac company spend on marketing?

most contractors i work with land at 5-10% of revenue, split seasonally. a $5,000 monthly budget allocated across LSAs, search, SEO, and direct mail produces 60-80 leads at a $60-90 blended CPL once calibrated. the split matters more than the total — 40-50% into LSAs during peaks, with shoulder-season spend front-loading tune-up and maintenance campaigns.

how can i get hvac leads without paying for ads?

google business profile, reviews, referrals, and your own customer database. an optimized GBP generates 40-100 inbound calls a month at zero CPL for an established contractor. six to ten new google reviews a month compounds your map pack position. and database reactivation — texting and emailing past customers before each season — engages 10-15% of your list at near-zero cost.

what is the best hvac lead generation channel in 2026?

local services ads, for most contractors. at $51-85 per lead with 20-30% close rates and a 9.55x ROAS benchmark across 888 contractors, LSAs beat every paid alternative on cost per booked job. the strongest accounts run a hybrid: LSAs for volume, google search for replacement-intent coverage, and SEO compounding underneath both.

for more on the frameworks in this post: the google ads management for lead generation guide covers the full account structure, the performance max for lead gen breakdown covers where PMax fits, and the first-party data lead gen guide covers the database reactivation system in depth.

affiliate disclosure. some links here are affiliate links. if you buy through them, i may earn a commission at no extra cost to you.