You already pay for the traffic. Most of it never calls.
I find where estimate requests are lost on the site you have now, fix those points, and verify your call tracking actually records what happens. Fourteen days. No rebuild.
Same site, same hosting, same URLs. Nothing moves.
Good traffic still dies on the way to an estimate.
You are getting the clicks. You are paying for most of them. Some of those people were never going to call anyone. This is about the ones who tried and couldn’t.
Not because your ads are bad, and not because you are bad at roofing. Because the page they land on doesn’t make calling obvious, and asks a man standing in a driveway to fill in a form built for a desk.
So they go back to Google.
And they call the next roofer on the list.
Where it usually happens
- 01The number isn’t tappable on a phone, or sits below the fold behind a heavy header, where most of your traffic actually is.
- 02Your ad points at a general page, so the visitor has to work out for himself whether you handle his job.
- 03The form asks nine questions. Square footage and insurance carrier before any trust is established. Every field past the fourth costs you submissions.
- 04Commercial and residential share one path. A facility manager lands on shingle colors; a homeowner lands on TPO membrane copy. Both leave.
- 05Nothing is measured properly. Numbers aren’t dynamically swapped, or the thank-you page fires an event on every reload. The numbers you optimize against are wrong.
You have two options when the site isn’t converting.
Most roofing companies are only ever shown the first one. Your agency could do the second. Ask them; it is rarely what a traffic retainer covers.
| Compared on | Rebuild the site | Fix what leaks |
|---|---|---|
| Cost | Rebuild$10,000–$15,000 list price, often with a retainer attached | Fix$2,500 flat |
| Time | Rebuild8–12 weeks of mockups and meetings | Fix14 days to live |
| Your rankings | RebuildAt risk. URL and structure changes are why every agency has an FAQ about it | FixSame domain, same URLs, nothing moves. Nothing for Google to re-index |
| When you know it worked | RebuildMonths later, mixed in with ad and SEO changes | FixDay 14, same traffic, one variable changed |
One saved residential reroof covers this sprint twice over. Check it against your own average. And if your site is genuinely beyond repair I’ll say so, and you should go and have a new one built. Most aren’t.
Get a free video reviewWhat a leaking roofing page looks like, and what replaces it.
The two page patterns side by side, and the checklist your site goes through before you pay anything.
What your site gets put through
- Which pages actually receive your paid and organic traffic, usually not the ones you think
- Taps and seconds from landing to a ringing phone, timed on a real device
- Where a submitted form actually lands: an inbox someone opens twice a day, or JobNimbus, AccuLynx or Roofr, where your crew already works
- Insurance-claim, cash-replacement and commercial paths: separated, or all sent to one page
- Load time on 4G for the specific pages your ads point at
- License number, warranty and GAF / Owens Corning certification: present at the moment people hesitate, or buried on an About page
- Which pages are already converting and must not be touched
Fourteen days. Fixed price. The site you already have.
Measure, fix, measure again. That order is the method, and the reason you’ll know whether it worked.
Measure
CallRail or CallTrackingMetrics dynamic number insertion (DNI) audited, GA4 and Google Ads form events verified, false triggers removed. Nothing changes until a baseline exists.
Find
Every page receiving paid or organic traffic goes through the checklist above, on a real phone. Leaks ranked by what each costs. Not a list of opinions.
Fix
Implemented on your live site — WordPress, Webflow, Squarespace or custom. Tap-to-call, two-step form, GAF or Owens Corning certification and license number moved beside the button, commercial and residential split, the form routed into JobNimbus, AccuLynx or Roofr instead of an inbox. Backed up first, one change at a time, no migration.
Verify
End-to-end lead test, then before and after on the same traffic, with what did not change written down. So the result is attributable, or honestly isn’t.
The leak costs you most when your spend is highest. That is the season, and the season is the worst time to let anyone touch a live site.
What people ask before they send me the site.
What do you need from me?
Access to the site and to your analytics and ads accounts, and about an hour of your time in total: one short call once the sprint starts, to hear which jobs you actually want more of, and a look at the change list before it goes live.
No workshops, no weekly meetings, no content homework.
I already have an agency on a retainer. Won’t this collide with them?
No. They own the traffic: campaigns, keywords, rankings, content. I work on what happens between the click and your phone ringing, and I touch none of that.
Every change is written down with a before and after, and that list is yours. Forward it to them; if they built the site, they should have it. Nothing I do is hidden from anyone you already pay.
And if they tell you the site converts fine as it is, ask them what the rate is. If they can show you, you don’t need me.
How do I know it was you and not the season?
Tracking goes in first, so a baseline exists. I measure conversion rate, not lead count. Rate barely moves with seasonal volume. And I write down what didn’t change: your spend, your keywords, your pricing.
If those held and the rate moved, the page is the reason. If it didn’t move, I’ll tell you that.
What if something breaks on my live site?
A full backup, files and database, before I touch anything. Changes go live one at a time and never bundled, so there is only ever one thing to undo. After each one I submit a test lead and tap the call button myself.
If anything moves the wrong way, the site goes back to exactly what it was.
What if nothing improves?
Then you own the tracking, the findings, and a clear answer that the website was not your bottleneck. The problem is upstream in traffic or downstream in follow-up, and you stop spending on the wrong end.
I won’t promise a percentage before seeing the site. Nobody honest can.
Do I have to change hosting, domain or CMS?
No. I work on the site exactly where it lives. Nothing migrates, nothing moves to a platform I control, and every account I set up is in your name. When it’s done, you don’t need me.
Send me the site. I’ll record where the path to a call breaks.
I open your site on a phone, walk the path a caller has to take, and send you the recording. Which calls you actually lost is a question for your tracking. No call needed to receive it.
- 0:00The page your ads point at, opened on a phone
- 1:30Where the path to a call breaks, and why
- 3:00Your form, field by field
- 4:30What your call tracking is missing
- 6:00The three fixes I’d do first, in order
If your site gets under roughly 300 visitors a month, there isn’t enough traffic to optimize yet. I’ll say that, and I won’t sell you anything.
Got it. Your site is in the queue.
I’ll go through it personally and send your recorded review within two business days.