GUIDE · CONTRACTOR MARKETING

Cost Per Lead by Trade in 2026

Plumbing, HVAC, roofing, and electrical don't pay the same price for a lead, and they never will. Here's what drives the gap, what's normal to pay in each trade, and where the number actually moves.

Be Seen, Contractors!9 min readUpdated 2026

The short answer

Cost per lead runs anywhere from under $20 for a routine plumbing service call to well over $250 for a storm-chased roofing lead, and the trade itself is the biggest single variable. Job value, sales cycle length, and how many other contractors are bidding the same click all stack on top of each other, which is why a flat industry-wide number is close to useless. The channel matters as much as the trade: paid clicks (Google Ads, Local Services Ads) buy leads fast at a fixed and often rising price, while local SEO and Google Maps drop your effective cost per lead over time because the traffic keeps arriving after you stop paying for that specific click.

Why cost per lead varies so much by trade

Cost per lead isn't set by an algorithm handing out random prices. It's set by an auction, and every trade walks into that auction with a different job value attached to the click. An HVAC company bidding on "AC replacement" knows a won job is worth $6,000-$12,000. A locksmith bidding on "lockout service" knows a won job is worth $75-$150. Both contractors are bidding against competitors who do the same math, so the trades with the biggest average tickets end up paying the most per click and per lead. That's simple auction economics, not a flaw in the system.

Sales cycle length compounds it. A plumbing emergency call converts to a booked job in minutes: the homeowner has a burst pipe, they call three numbers, and whoever answers first and sounds competent gets the work. A roofing job from an insurance claim can take weeks of inspections, adjuster meetings, and follow-up before a contract gets signed. A remodeling lead can take a month of design consults before it turns into a signed contract. Longer cycles mean more of the lead's cost gets absorbed before revenue shows up, and more leads fall out of the funnel along the way, which raises the effective cost of the leads that do close.

Then there's how many contractors are chasing the same keyword in the same metro. Roofing after a hailstorm turns into a bidding war overnight, sometimes for a few weeks straight, because every roofer within driving distance is running ads on the same handful of storm-related terms. Plumbing and electrical demand is steadier year-round, which usually means less spiking but a more consistent baseline cost. HVAC sits in between: relatively calm most of the year, then a hard spike the week temperatures cross into the first real heat wave or first hard freeze, when every unit that was going to fail, fails at once.

The trade angle also changes what "a lead" even means. A plumbing lead is usually an emergency call with 24/7 intent and a clear repair need. An electrical lead might be a panel upgrade, an EV charger install, or a safety inspection, three very different buyer intents bundled under one trade. A roofing lead might be storm response, insurance-driven, or a straightforward reroof, and those three carry wildly different close rates and price tags. A garage door lead splits between same-day repair urgency and a considered repair-vs-replace decision that takes longer to close. When you compare your cost per lead to a number you saw online, make sure it's the same flavor of lead, not just the same trade name.

Typical cost-per-lead ranges by trade in 2026

These are directional ranges pulled from how the trades typically bid and convert, not a guarantee for any specific market. Your metro, your ad spend history, your reviews, and your website all move the number up or down from here. Treat this as a sanity check, not a quote.

TradeTypical CPL range (paid channels)What drives the spread
Plumbing$20-$85Emergency intent is high-volume and competitive, but job value is moderate, keeping bids in check
HVAC$40-$150Seasonal spikes (first heat wave, first cold snap) push bids hard for a few weeks each season
Electrical$35-$120Panel upgrades and EV charger installs carry higher ticket value than a basic service call, and bid accordingly
Roofing$60-$250+Storm and insurance-driven leads spike hardest of any trade; non-storm reroof leads sit lower
Remodeling$75-$300+Highest average ticket of the core trades, longest sales cycle, most out-of-market lead-gen competition
Garage Door$25-$90Same-day urgency keeps volume steady; repair vs. replace splits the lead value
Pest Control$20-$70Recurring-contract model means a single lead can be worth several service visits over a year

Two things to notice. First, the ranges overlap a lot: a bad electrical lead can cost more than a good roofing lead depending on the keyword and the market. Second, every one of these ranges assumes a paid channel (Google Ads or Local Services Ads) where you're paying per click or per lead directly. Local SEO and Google Maps rankings don't have a clean per-lead price tag the same way, because the traffic is already there once you rank; the cost gets absorbed upfront in the build and ongoing content work instead of per click.

Paid leads vs. organic leads: the real cost-per-lead math

Paid channels give you a lead cost you can point to on an invoice. Google Ads and Local Services Ads charge per click or per lead, and that number is real and immediate. The tradeoff: the moment you stop paying, the leads stop. There's no equity built. You're renting the top of the page every single day, at whatever the auction charges that day.

Local SEO and Google Maps work differently. There's real cost getting there: content, site structure, citations, review generation, the work it takes to earn a map-pack position. But once a page ranks or a listing holds a top 3 spot, it keeps producing leads without an additional per-click charge. Run the math over 12 months and the effective cost per lead on organic traffic usually keeps dropping the longer a page or listing holds its position, because the fixed cost of getting there gets spread over more and more leads.

This is why comparing a paid CPL number to an organic CPL number head-to-head is a little bit apples-to-oranges. The honest way to think about it: paid buys you leads now, at a price that doesn't improve much over time and can spike hard in-season. Organic buys you leads later, at a price that keeps improving the longer you invest, because the asset (rankings, map position, review volume) compounds instead of resetting to zero every month.

One representative HVAC engagement we can point to (details under NDA, numbers are real) took a Central Florida shop from map-pack position #8 to the top 3, and the cost per lead on that account dropped roughly 62% over a 9-month build as organic and map traffic replaced a growing share of what used to be pure paid volume. That's not a universal number, and every trade and market moves at its own pace, but it's the shape of the curve: paid stays flat or climbs, organic bends the total cost down.

Most established contractors we work with run both. Paid channels cover the immediate need, the seasonal spike, the new-service-area push. Organic (local SEO, Maps, and increasingly AI search visibility) builds the base that keeps the phone ringing even in months when the ad budget gets tight. Typical timeline for competitive organic terms to build real traction: 4-9 months, depending on the trade and how crowded the local map pack already is.

What actually moves your cost per lead

Before assuming your trade is just an expensive one, check whether these are dragging your number up.

  • Landing page relevance. Sending paid traffic to a generic homepage instead of a page built for that exact service and city tanks conversion rate, which raises effective cost per lead even if the click price itself is reasonable.
  • Review volume and rating. Google Ads and Local Services Ads both weight review signals into ranking and trust. Thin review counts mean you pay more per click to compete with a contractor who has 150 reviews and a 4.8 average.
  • Map pack position. Sitting outside the top 3 on Google Maps for your core service terms means the paid channel is doing all the work, and doing it at full price, with no organic assist underneath it.
  • Site speed. A slow-loading site bleeds paid clicks before they ever convert. Contractor sites should load in under 2 seconds; every extra second past that measurably drops form and call conversion.
  • Call tracking gaps. If you can't attribute which channel actually produced a booked job, you're optimizing blind and probably overpaying on whichever channel looks busiest instead of whichever one closes.
  • Service-area page depth. One thin page trying to rank for an entire metro competes worse than a proper cluster of pages built per service and per city, which is part of why local SEO campaigns for competitive trades typically run 94+ cluster pages to cover a territory properly.

Fixing any one of these can move cost per lead meaningfully without touching your ad budget at all. Fixing several at once is usually where the real drop happens.

Cost per lead vs. cost per booked job (the number that actually matters)

Cost per lead is the number everyone quotes. Cost per booked job is the number that pays the bills. A trade with a cheap cost per lead but a low close rate can end up more expensive per job than a trade with a pricier lead and a tight, well-run intake process.

Here's why the distinction matters in practice. Plumbing emergency leads are cheap and plentiful, but a chunk of them go to whoever answers the phone first, meaning slow follow-up destroys the economics no matter how cheap the lead was. Roofing leads are expensive, but a well-run sales process with a fast inspection turnaround and a clear proposal can close a much higher percentage of them, making the true cost per job more reasonable than the sticker-shock cost per lead suggests.

The trades that manage this best track both numbers side by side: what did the lead cost, and what did the job that came from it actually cost once you factor in close rate. A $150 roofing lead with a 25% close rate costs $600 per booked job. A $40 HVAC lead with a 40% close rate costs $100 per booked job. Compare the job costs, not the lead costs, when you're deciding where to put next month's budget.

This also explains why some contractors chase organic and local SEO harder than paid, even when the per-lead cost comparison looks close on paper. Leads that come from a top map-pack position or a strong local search presence tend to arrive with more trust already built in (the searcher saw reviews, saw the business show up as the obvious local answer), which nudges close rate up and brings the true cost per job down further than the raw cost-per-lead number implies.

Seasonality and region: the multiplier most contractors underestimate

The same trade, in the same month, can pay two or three times as much per lead depending on region and season. HVAC in Florida sees demand almost year-round with a hard summer peak; HVAC in the Midwest sees two distinct spikes, one for cooling and one for heating, with a slower shoulder season between them where cost per lead often drops noticeably. Roofing follows storm tracks, not the calendar: a hail event in one metro can send local roofing CPL up for weeks while a neighboring, storm-free metro sees no movement at all.

Landscaping and pest control ride the calendar hardest of the trades on this list. Spring cleanup and first-mow season for landscaping, and spring/summer pest pressure for pest control, both compress a huge share of annual demand into a few months, and cost per lead climbs accordingly during that window. Budgeting the same monthly ad spend across a full year for one of these trades usually means overpaying in the slow months and underbidding right when demand (and competition for it) peaks.

Metro size and competitor density matter almost as much as season. A remodeling contractor in a metro with a dozen well-funded competitors running ads on the same high-value keywords will pay noticeably more per lead than the same trade in a smaller market with two or three real competitors. This is also where local SEO tends to pay off fastest: in a less crowded market, a properly built local presence can lock down a top 3 map position without having to out-bid a dozen rivals in the ad auction first.

None of this means the trade-level ranges earlier in this guide are wrong. It means treat them as a starting point, then adjust for your specific region's season and your specific metro's competitive density before you set a budget or judge whether a number you're seeing is normal.

How to actually lower your cost per lead

None of this is a secret formula. It's the same handful of levers, applied consistently, trade after trade.

  1. Fix the landing page before touching the bid. A page built for "emergency water heater repair in [city]" converts better than a homepage, for the same click.
  2. Build map-pack strength. Reviews, citations, and a properly optimized Google Business Profile push you toward the top 3 positions, where clicks are effectively free compared to the ad auction above them.
  3. Layer local SEO under paid. Every organic lead that lands is one less lead you had to buy. Over a 12-month build, that shift is usually where the real cost-per-lead improvement shows up.
  4. Get to the answer AI search gives. A growing slice of searches now get answered directly by AI Overviews, ChatGPT, and similar tools before the searcher ever clicks an ad. If your business isn't structured to be a cited source there, you're invisible in that slice regardless of ad budget.
  5. Tighten intake, not just acquisition. The cheapest lead in the world is worthless if it doesn't get a callback in ten minutes. Fast, consistent follow-up moves cost per booked job more than almost any acquisition tweak.

Most contractors treat cost per lead as a channel problem. It's usually a combination problem: the channel, the page it lands on, the map position backing it up, and the speed of the follow-up. Move all four and the number drops further than tweaking any one of them alone.

Key takeaways

  • Job value, sales cycle length, and local competition, not a fixed industry average, set your real cost per lead by trade.
  • Paid channels (Google Ads, Local Services Ads) give an immediate, trackable cost per lead that rarely improves on its own over time.
  • Local SEO and Google Maps work costs more upfront but drives effective cost per lead down the longer a ranking or map position holds.
  • Cost per booked job, not cost per lead, is the number that should drive budget decisions between trades and channels.
  • Landing page relevance, review volume, map-pack position, and site speed (under 2 seconds) all move cost per lead without changing ad spend.
  • Competitive organic terms typically take 4-9 months to build real traction; storm-driven or seasonal-spike trades see the widest paid CPL swings.

STRAIGHT ANSWERS

Quick answers.

01What's a good cost per lead for a contractor in 2026?

There isn't one good number across all trades. A plumbing lead at $60 might be expensive while a remodeling lead at $60 would be a steal. Judge it against your own trade's typical range and, more importantly, against your cost per booked job, not the raw lead price.

02Why do roofing leads cost so much more than plumbing leads?

Roofing job values run much higher, especially on insurance and storm-driven work, and storm events create short, intense bidding wars among every roofer in the region. Plumbing demand is steadier year-round with a lower average ticket, which keeps the auction price lower.

03Does local SEO actually lower cost per lead, or is that just a sales pitch?

It lowers effective cost per lead by adding a second, non-paid source of leads on top of whatever you're already running in ads. The upfront work costs money and takes time, typically 4-9 months for competitive terms, but once a page or map position holds, it keeps producing leads without a per-click charge attached.

04Should I compare my cost per lead to industry averages I find online?

Use them as a rough sanity check only. Averages don't account for your specific metro's competition, your trade's exact lead type (emergency vs. insurance vs. recurring contract), or whether the number you're comparing to is paid-only or blended with organic. Your own cost per booked job, tracked over time, matters more than any external benchmark.

WANT THIS HANDLED FOR YOU?

Know your number?

Get a free visibility audit and we'll show you where your cost per lead is leaking, and what a blended paid-plus-organic plan looks like for your trade. Delivered in 1-3 business days.

Start With the Free Audit
Call (407) 705-2452 Text