A roofing contractor came to us paying $47 per lead with a calendar that barely moved. We didn't change the targeting. We built the five things that should exist downstream of every ad — and their CPL dropped to $11.67, with 572 qualified leads in 31 days. The ad was never the problem. Here's what was.
PPC is a traffic channel. It delivers the click. Everything after that click — the landing page, the follow-up speed, the CRM, the appointment setter — is a separate system the ad account cannot build for you. When those five downstream elements are missing, leads rot. The cost-per-lead looks fine while the cost-per-booked-job quietly climbs to $300, $400, $500 per job. One roofing client went from $47 CPL to $11.67 CPL in 31 days without changing a single keyword. What changed was everything downstream of the ad.
None of these are campaign-settings problems. You can hire the best media buyer in the country and still hit every one of them, because the failure lives downstream of the ad — in the infrastructure that's supposed to catch the click and carry it to a booked appointment.
Homepages convert paid traffic at 1–3%. Dedicated, trade-specific landing pages convert at 5–15%. When a $12 click from someone searching "emergency roof repair" lands on a page with fifteen nav links, a rotating banner, and a generic "About Us" section, there's nowhere obvious to go. So they leave. Same spend, a fraction of the bookings.
Leads contacted within 5 minutes of submitting a form are dramatically more likely to qualify than leads contacted an hour later. Most contractors check the lead inbox twice a day. By the time anyone calls back, the homeowner has already spoken to two competitors — and the one who answered first won the job. Speed-to-lead is the most controllable variable in home service conversion, and it has nothing to do with the ad.
Cold paid traffic sent straight to a form will always produce a high effective CPL, because a single page asking a stranger to commit on their first visit converts at its floor. A real funnel — landing page → instant SMS confirmation → nurture sequence → retargeting for non-converters — carries a lead from "just looking" to "book me." FrogRoofing's missed-call text-back alone recovered 30% of leads that had bounced without converting. That's 30% more booked appointments from the same ad spend.
A lead in an email inbox gets one call attempt. A lead inside a CRM with an automated sequence gets caught, texted, and followed up for days without anyone lifting a finger. Most contractors either have no CRM, or have one that was never wired to their ad lead sources — so the leads they paid the most for (high-intent clicks at $12–$15 CPC) are tracked the least. They close at the same rate as organic leads in a spreadsheet from 2019.
Judging a PPC campaign by cost-per-lead is like judging a roofing job by how many bundles reached the driveway. The number that pays your crew is cost-per-booked-job — and without call tracking and CRM attribution wired together, you can't tell the campaign that prints money from the one draining the account. You end up scaling the wrong one because it had the cheaper CPL. This is why every Web Pinnacles paid ads engagement starts by configuring call tracking and attribution before a dollar of ad spend goes live.
If your Google Ads is sending clicks to a homepage or a generic site page, you're likely converting under 3%. A dedicated landing page for the specific service and location is the fastest single fix.
If you're calling leads back hours later or the same day, you're losing 60–80% of them to competitors who responded first. Most of that lost revenue is invisible — you just never see the jobs you didn't book.
If your CPL looks healthy but the calendar isn't filling, divide your total ad spend by booked appointments (not leads). If cost-per-booked-job exceeds 3× your service gross margin, the funnel is leaking — not the ad.
Most contractors don't know whether their CPL is a problem or not, because they have no baseline to compare it against. These are the ranges we see across active home service campaigns in competitive US markets. If you're inside the range but still not booking jobs, the problem is downstream — not the ad account.
| Trade | Healthy CPL Range | Warning CPL | If CPL is in range but calendar is empty | Most common downstream failure |
|---|---|---|---|---|
| Roofing | $45 – $85 | $90+ | Lead-to-contact rate under 40% | No speed-to-lead system; homepage traffic |
| HVAC | $35 – $65 | $70+ | Seasonal mismatch; leads not qualifying by urgency | No emergency-service landing page; generic ad copy |
| Solar | $65 – $120 | $130+ | Long cycle; no nurture sequence keeping leads warm | No follow-up sequence past day 1; no retargeting |
| Plumbing | $25 – $55 | $60+ | High no-show rate; leads not confirmed before dispatch | No appointment confirmation sequence |
| Remodeling | $55 – $110 | $120+ | High lead volume, low consultation rate | No lead qualification step before booking |
Ranges reflect verified active campaigns in competitive US metro and suburban markets, 2025–2026. CPL varies by local competition, service type, and ad budget. Use these as orientation benchmarks, not guarantees.
"PPC isn't working" usually bundles three separate problems into one complaint. Untangling them first determines which one to fix and in what order.
$2,000 spend → 50 leads at $40 CPL → 10 booked jobs. Cost-per-booked-job: $200. CPL looks healthy at $40. Nobody's checking the booking rate.
$2,000 spend → 30 leads at $67 CPL → 18 booked jobs. Cost-per-booked-job: $111. CPL looks higher. This is the campaign most contractors would pause — and it's the one they should be scaling.
The ad strategy barely changed. What changed was the five things downstream of it.
FrogRoofing was paying $47 per lead through a generalist agency — no dedicated landing page, no call tracking, no CRM, no follow-up. We did not renegotiate the keyword list or change the match types. We built a dedicated roofing landing page, added call tracking, connected GoHighLevel CRM, added instant SMS follow-up, and layered in a missed-call text-back sequence. CPL dropped to $11.67 with 572 qualified leads in 31 days. The missed-call text-back alone recovered 30% of leads that had bounced without converting.
Running ads with nothing behind them is activating one stage of a six-stage system and wondering why the other five never fire. Here's the path a click is supposed to travel before it becomes a job on the calendar.
| Stage | What happens when it works | What's missing when PPC runs alone |
|---|---|---|
| Stage 1 — Paid Ads | A homeowner searches, clicks, and lands on a page built for that exact intent. | This is the only stage most contractors run. Everything below this is missing. |
| Stage 2 — Landing Page | A dedicated page matched to the ad and the search term converts the click into a qualified lead at 8–12%. | Traffic hits the homepage. Conversion rate drops to 1–3%. CPL climbs 3–4x. |
| Stage 3 — CRM Capture | The lead lands in a CRM instantly, tagged by ad campaign, keyword, and source. | Lead lands in an email inbox. Attribution is lost. Follow-up is manual and slow. |
| Stage 4 — Speed-to-Lead | Automated SMS fires inside 5 minutes. Missed-call text-back catches bounced calls. Nurture sequence runs for 7 days. | One callback, hours later. 60–80% of leads have already committed to a competitor. |
| Stage 5 — Appointment Setting | Qualified by service type, location, timeline, and budget before the calendar slot is confirmed. | Unqualified leads book and no-show. Qualified leads never get a call. |
| Stage 6 — Attribution | Every booked job traces back to the keyword and campaign that produced it. Weekly optimization against cost-per-booked-job. | You optimize against CPL and accidentally scale the campaign producing expensive, low-closing leads. |
Book a free 20-minute audit. We'll trace one real lead through all six stages and show you exactly where it's falling off the calendar.
Every account is different. CPL ranges are orientation benchmarks, not guarantees. Book a free audit to get a baseline for your specific market.
Book a free 20-minute pipeline audit. We'll trace one of your real leads from the click to the calendar — and show you exactly which of the five gaps is costing you booked jobs before you spend another dollar on ads.