Skip to content
Iron PineMarketing
All insights
Paid Ads

Why Most Roofing Google Ads Accounts Lose Money (And the 4-Line Fix)

After auditing dozens of roofing Google Ads accounts, the same four configuration errors appear in 90% of them. Here's the diagnosis and the exact fixes.

May 19, 20267 minBy Gage Forkner
The short answer

Most roofing Google Ads accounts lose money because of four configuration errors: keyword match types are too broad (pulling non-buyer traffic), the negative keyword list is too short (paying for irrelevant clicks), conversion tracking is missing or broken (can't optimize what you can't measure), and landing pages don't match ad copy (high bounce, low conversion). Fixing all four typically cuts cost per qualified call by 40-60% within 30 days.

Roofing has the highest customer LTV and the most competitive paid acquisition of any home service category. It also has, in our audit data, the highest rate of Google Ads accounts hemorrhaging money. After running through several dozen roofing accounts (some ours, some prospects), the same four configuration errors appeared in roughly 90% of them. Here's the diagnosis.

Error #1: Broad match keyword bidding

Default Google Ads behavior — and what most contractors set up — is to bid on keywords in broad match. Broad match means your ad shows for 'related' queries Google decides are relevant. For 'roof replacement Kansas City,' broad match will trigger your ad on: 'how to install roofing nails,' 'roof rake removal,' 'is roof replacement tax deductible,' 'roofing jobs in Kansas City' (job seekers, not customers), and dozens more queries with no buying intent.

Error #2: Empty or shallow negative keyword list

Every roofing account should have at least 200 negative keywords on day one and 500+ within 90 days. Mining the search-term report weekly is non-optional. Common negative buckets that go unfilled:

  • Career/job seekers: 'jobs,' 'careers,' 'hiring,' 'apprenticeship,' 'salary'
  • DIY queries: 'how to,' 'DIY,' 'replace yourself,' 'tutorial'
  • Wholesale/supplier queries: 'wholesale,' 'supplier,' 'manufacturer,' 'parts'
  • Irrelevant materials: if you don't do metal, negative 'metal'; if you don't do flat, negative 'flat'
  • Out-of-area cities: explicit list of cities you don't service
  • Pure information queries: 'definition,' 'meaning,' 'what is'

Error #3: Missing or broken conversion tracking

If you can't measure cost per phone call and cost per form submission, you can't optimize. Yet conversion tracking is missing or broken on the majority of accounts we audit. Calls fire on the wrong threshold (a 5-second call counts as a conversion — it shouldn't), form tracking doesn't actually fire on submit, or both are wired to GA4 but not to Google Ads itself so Smart Bidding can't use the data.

Proper setup: call tracking that fires conversion only on calls 30+ seconds (qualified), form tracking that fires on success page load only, both linked to Google Ads via the conversion linker, both visible in the Conversions report. If you can't see weekly conversion volume per campaign, your account is operating blind.

Error #4: Ad-to-landing-page mismatch

Ad copy promises 'free roof inspection in Kansas City.' Click. Landing page is the homepage, which is about gutter cleaning, siding, and replacement windows, with the roof inspection offer buried three scrolls down. Conversion rate plummets. Cost per acquisition skyrockets. Google's Quality Score drops, which makes every future click more expensive.

Each ad group should have a dedicated landing page that matches the ad copy promise. Headline mirrors the ad. Primary CTA is the conversion action (call or form). No global nav distractions. One offer per page. We build 5-15 of these per roofing account at launch.

What 'fixed' looks like in numbers

Typical pre-fix roofing account in KC: $4,500/mo ad spend, ~18 booked-job leads, cost per qualified lead around $250. After applying the four fixes above, same spend, ~32-40 booked-job leads, cost per qualified lead around $115-140. That's not a marginal improvement — it's the difference between a paid acquisition channel that loses money and one that prints it.

Ready to see what a quarter with Iron Pine looks like?

Book a free 15-minute audit. We'll pull your GBP, search rankings, and ad data live on the call and show you the three highest-leverage moves we'd make in the first 30 days.

  • No long contracts
  • ·
  • Plain-English reporting
  • ·
  • You own everything we build