Lead System Rebuild: Field Notes

Roofing: Homepage traffic, no call tracking, broad-match waste

Primary leak

Paid traffic was reaching the site, but calls and booked estimates were not being tracked back to campaigns. All clicks landing on the homepage regardless of service searched.

Diagnostic Status

Leaking after the click
Trade Roofing
Market Ontario, Canada
Spend range $4,000–$8,000/mo (illustrative)
System areas
Google Ads Landing Pages Call Tracking Follow-Up Attribution

Spend flowing, phone not ringing enough

A roofing company running Google Ads for two-plus years, spending steadily, and generating some leads: but with no clear read on what the campaigns were actually producing. The owner knew the phone rang. He did not know which ads made it ring.

Campaigns were structured around general roofing terms. All clicks: regardless of what was searched: landed on the company homepage. No call tracking. No landing pages. No negative keyword list. The account had been running essentially untouched since setup.

Common pattern: Roofing accounts are frequently set up once and left running. Broad match accumulates irrelevant traffic over time. Without a negative keyword list, budget shifts quietly toward searches that will never generate a booked estimate.

Six failure points identified

  • Broad match keywords triggering ads for DIY searches, roofing job listings, and materials wholesale queries
  • All paid traffic sent to homepage: no service-specific or campaign-specific landing pages
  • Zero call tracking: no forwarding numbers, no attribution from call back to keyword or campaign
  • Conversion tracking misconfigured: firing on page visits, not actual form submissions
  • No negative keyword list: budget consuming irrelevant queries for months undetected
  • No follow-up automation: inbound form leads going to a shared inbox, responded to whenever someone checked it

Operational note: Missed call logged 4:42 PM: no attribution to campaign. Source: unknown. This was the pattern across the account: calls happening, nothing recorded.

Lead Leak Map: Roofing Account

Ad CampaignAds running, spend activeActive
Landing PageAll traffic to homepageLeaking
Call / Form TrackingNo call attributionBlind spot
Follow-UpManual, inconsistentAt risk
Estimate RequestSome convertingPartial
Booked JobSource: unknownUnattributed

Fixing the system from click to booked estimate

  • Campaign restructured around high-intent keywords: roof replacement, emergency repair, and estimate-specific terms: exact and phrase match only
  • Negative keyword list built from scratch covering DIY, job listings, materials, school, salary, and wholesale queries: reviewed weekly
  • Dedicated landing pages created for emergency repair and replacement campaigns: single CTA, fast mobile load, specific to the ad promise
  • CallRail set up with dynamic number insertion: every call attributed to the campaign, ad group, and keyword that drove it
  • Conversion tracking rebuilt: firing only on confirmed form submissions, not page visits
  • Automated SMS added to every inbound form lead within two minutes of submission, regardless of whether someone was in the office

Direction of change, not specific numbers

After the rebuild, the account had visibility it previously lacked. The owner could see for the first time which campaigns were generating calls, which keywords were producing estimate requests, and what the conversion rate on each landing page actually was.

Wasted spend on irrelevant searches dropped as the negative keyword list took effect. Landing page conversion rates increased meaningfully when service-specific pages replaced the homepage. Call volume stayed consistent, but attribution improved: the same calls were now visible and connected to the campaigns producing them.

The follow-up change had a notable effect: Automated SMS response within two minutes of every form submission improved the percentage of leads that converted to booked estimates. The same lead volume, handled faster, produced more booked jobs.

These are directional patterns, not exact client metrics. Specific outcomes depend on market competition, budget, seasonality, and starting conditions.

What to look for in a roofing account

  • Are any campaigns running on broad match for terms like "roofing," "roof repair," or "roofer"?
  • Where does paid traffic land? Is it a homepage or a dedicated service page?
  • Is there a call tracking number in your ads and on your landing pages?
  • Can you see which campaigns and keywords generated each phone call?
  • How long does it take to respond to an inbound form lead on average?
  • Do you know the cost per booked estimate from Google Ads this month?

If any of these have unclear answers, the audit will find the specific leak points in your account.

Does your roofing account look like this?

The patterns in this rebuild appear across most roofing accounts we audit. If your campaigns are running but you cannot clearly state your cost per booked estimate, the system has a leak somewhere. The audit will find it.

No pitch deck. No obligation. A written diagnostic with every failure point identified and a prioritized list of what to fix first.

Written diagnostic delivered within 2 business days.