GA4 says 412 people visited your site last month. Your phone rang four times, and two of those were a call center selling you SEO. So at 9pm on a Tuesday you type roofing website traffic but no calls into Google, read three articles that all say "improve your calls to action," and start pricing out a replacement site.

"So the website's broken, right?"

Probably not. Not yet.

In the audits we run, a lot of the roofers who come to us with this complaint don't have a website problem. They have a counting problem. The calls land somewhere the report can't see, or the form quietly eats submissions, or 200 of those 412 visitors were crawlers. A redesign fixes none of that. You'd pay five thousand dollars to move the same problem onto a nicer looking page.

The ones who do have a real problem almost always have something boring. Not the color scheme.

So this is a diagnostic, not a lecture. Cheapest checks first, and no spending until you have proof of what's broken. Work down it with your phone in one hand.


The short version (for the impatient)

Five moves, in this order:

  • Prove the calls are actually missing. Your Business Profile calls, your website calls, and the guy who read your number off a desktop screen and dialed it are three separate numbers. No report adds them up.
  • Test your own form from your own phone. On cellular data, with an address you can open. The fault we turn up most often in our own audits is a form that submits perfectly and emails nobody.
  • Work out your own baseline before comparing yourself to anyone. Every published roofing conversion rate you'll find is either paid traffic or invented.
  • Fix speed for the calls, not the rankings. The return is more contacts from the same traffic.
  • Only then look at the page. Tap-to-call, a sticky call bar, form field count, and visible proof you're licensed and insured.

That's basically the whole article. The rest is the why, and the why matters because every one of those five has a version that looks fine and isn't.


Before you diagnose anything, prove the calls are actually missing

Everybody skips this step, and it saves the most money. Before you accept "traffic went up, calls didn't" as a fact, you have to accept that you probably can't see most of your calls, not because your setup is bad, but because of how the plumbing works.

Your Business Profile calls and your website calls are two different numbers

Open your Google Business Profile performance report and you'll find a Calls metric. It looks authoritative. It measures one narrow thing: taps on the call button on the profile itself, in Maps or the local pack, which Google's performance report documentation spells out.

So someone who tapped your profile and called never touched your website, and GA4 has no idea they existed. Someone who found your site, read three pages, and tapped call there is nowhere in the profile number. Two systems, zero overlap, no dashboard adding them up. Sterling Sky has a good breakdown of how to read that report, but the short version is the one above: it's a profile metric, not a lead count.

Every desktop visitor who reads your number and dials from a handset is invisible

Picture a property manager at a laptop at 10am. She lands on your site, likes what she sees, picks up the desk phone, and types your number in by hand. Perfect lead. Completely undetectable. No click, no tap, no event for any analytics tool on earth to record.

The only fix is dynamic number insertion, call tracking that shows a different number to each visitor and maps the call back to the session. Until you have it, desktop is a blind spot. It's the smaller share of a roofing site's traffic, but it skews toward the bigger, slower jobs.

Filter the bots before you believe the traffic number

Now the other end of the same problem. On a small contractor site, a meaningful slice of what GA4 calls "traffic" isn't human: crawlers, uptime monitors, SEO tools somebody pointed at your domain, your own office, your web guy checking a change. So look at the shape instead of the total. Sessions that last four seconds and never scroll. A city you've never worked in producing a hundred visits. Traffic at 3am. Set up an internal traffic filter for your office IP now and switch it from Testing to Active, so the next quarter comes in clean. It won't rescue the quarter you already have: GA4 applies those filters only to data collected after you turn them on, never backwards. For the 90 days already sitting in the account, run the same report with your own city excluded and read engaged sessions instead of raw sessions. The number shrinks, and the conversion rate you were panicking about improves on the spot.

One more thing to rule out: the calls arrive and nobody picks up. Evenings, weekends, a crew on a roof with the phone in the truck. A missed call and a call that never happened look identical in a report and cost the same. We covered that leak in capturing enquiries that come in outside business hours.


The form works. The email never arrives.

In the audits we run, this is the genuine fault we find most often. The form's fine. The visitor sees "Thanks, we'll be in touch shortly." And the email dies somewhere between your web server and your inbox, silently, every single time.

The cause is email authentication, and the deadline that made it bite was 1 February 2024.

Since then, Google requires mail sent to Gmail addresses to be authenticated with SPF or DKIM and to come from a server with valid forward and reverse DNS. Mail that fails is spam-foldered or rejected at the door. See Google's email sender guidelines and the Workspace explainer on the 2024 requirements. Yahoo shipped near-identical rules the same week.

Now look at how older contractor sites send a contact form. PHP's mail() function, firing off the web server, with the From header set to the visitor's own address so replying is easy. Standard practice for fifteen years. Under the current rules it fails by construction: your server isn't authorized to send mail as someone@gmail.com, so SPF fails, there's no DKIM signature, and the message is dead on arrival. The form never knows. It hands back a thank-you either way.

"A form that submits successfully and emails nobody is the most expensive bug in contracting, because it looks exactly like a website that doesn't convert."

Don't take anyone's word that it works, ours included. Test it, in this order:

  1. Open your website on your phone, on cellular data, not the office wifi.
  2. Fill in the contact form the way a homeowner would, using an email address you can actually open.
  3. Wait five minutes, then check the inbox it's supposed to land in.
  4. Check that inbox's spam folder, the promotions tab, and any filter rules somebody set up three years ago.
  5. Check the address you submitted from, in case the confirmation went to you and the notification went nowhere.
  6. Ask your host or developer for the mail log covering that exact minute, and look for a 550 rejection mentioning authentication.

Step six ends the argument. The log either shows the message accepted or shows it refused, no interpretation involved.

The fix is simple. Send notifications through an authenticated mail service, set the From header to your own domain, and put the visitor's address in Reply-To where it belongs. Then give every submission a second delivery path: a text to the owner, a row in a CRM, a line in a spreadsheet, anything that isn't email. If a lead only exists as an email, one spam filter can delete your month.

Contractor checking a spam folder on a laptop and finding missed website enquiries

The worst version of this is finding six real enquiries in there, weeks late, all from people who have already hired somebody else.


Now work out what number you should have expected

Once you trust your data, the next question is whether 412 visitors and 4 calls is actually bad. The nearest real number is paid: WordStream's 2026 Google Ads benchmarks, built from 13,474 US search campaigns running April 2025 to March 2026, put the median conversion rate for Home and Home Improvement at 8.05 percent.

8.05%
median conversion rate for Home & Home Improvement across 13,474 US Google Ads search campaigns, April 2025 to March 2026, per WordStream's 2026 benchmarks

That's paid search, though. A paid click lands on a page built for one offer, with one form and nowhere else to go, while your organic homepage gets homeowners with a leak plus job applicants, suppliers, adjusters, and three competitors. Holding the two to the same number isn't a fair fight. You'll also see Unbounce's Conversion Benchmark Report quoted for a home improvement figure: go and click it, and the public page never puts one on the screen where you can read it, so we won't quote you one either.

So build your own baseline. Take the last 90 days with bots and internal traffic filtered out, add up every real contact (forms that actually arrived, tracked calls, texts, chats), divide by sessions, and write it down. From there the only comparison that matters is you against you. And if that number stays flat after 90 clean days of honest measurement, you've earned the right to talk about a rebuild. Not before.


Speed sells the job. It does not win the ranking.

Start with the conversion side. Deloitte and Google published a study called "Milliseconds Make Millions" in 2020, run with the agency 55, covering 37 brands and more than 30 million mobile sessions. They measured what happened when a tenth of a second came off four specific mobile speed metrics: First Meaningful Paint, Estimated Input Latency, Observed Load, and Max Server Latency. On lead generation sites, progression to form submission rose by 21.6 percent (full write-up here).

Lead generation is the number to look at, because it's the closest thing in that study to what you do: people filling in a form to be contacted. And a tenth of a second is what moved it. Most contractor sites aren't a tenth of a second from good. They're four seconds away.

Now the counterweight, because you'll hear a pitch about this. Google's own page experience documentation says plainly that page experience is not a single ranking signal. If somebody quotes you for a speed package and the promise is rankings, they're overselling. The honest pitch is better anyway: fix your speed and you get more calls out of the exact same traffic, immediately, without waiting for an algorithm to notice.

Homeowner waiting on a slow-loading roofing website on a phone

Nobody waits for a roofer's website. There are four more in the search results and none of them are loading a background video.

What makes contractor sites slow is predictable. A hero video nobody watches. Photos of finished roofs uploaded straight off a phone at four megabytes each. A slider carrying six of them. Seven tracking scripts, four belonging to a marketing company you fired in 2023. Test it standing outside on cellular data, not on the office wifi three feet from the router (the wifi test always passes).

Speed is one item on a longer list. We laid the rest out as the seven-point test we run on any roofing site, and it's worth scoring yours honestly before you conclude the problem is traffic.


The four things on the page that actually stop the call

Assume the data's clean, the form delivers, and the site loads. It still isn't converting.

"Okay, so it IS the website."

Now, finally, yes. It comes down to four things, and design fashion isn't one of them.

  • Tap-to-call above the fold. Not in a hamburger menu, not at the bottom of the page: a real button on the first screen, with the number as live text. A homeowner with water coming through a ceiling won't scroll to find you.
  • A call and text bar that follows on mobile. Fixed to the bottom of the screen, with text as its own option, because we watch homeowners text a roofer at 9pm who'd never have dialed one at that hour.
  • Form field count. Name, phone, zip, and one line about the problem is enough to book an inspection; every field past that costs you submissions. Ask the rest on the phone.
  • Trust signals a stranger can verify. License number, insurance, and real Google reviews with names and dates. Roofing carries a storm-chaser stigma that has nothing to do with you and everything to do with your conversion rate.

Fix those four in order and you'll usually find your calls before you reach the bottom of the list. None of them need a rebuild. All of them are an afternoon.

There's a fifth thing that's harder to put on a checklist: whether the site looks like it belongs to a real company with trucks and a crew, or to somebody's cousin in 2014. Worth its own read on whether your site actually looks credible to a homeowner.


My honest take (after building a lot of these)

Most roofers who call us convinced they need a new website need about four hours of work, and we tell them that. Four hours bills a lot less than the rebuild they were prepared to buy, so no, it's not a great business decision. It's a better business than selling a man a website that fixes the wrong thing.

The roofers who genuinely need a rebuild never argue about it, because they already know. They say "look, you'll see, it's bad," and they're right.

We've been on the wrong side of this too. We shipped a site a few years back that I was proud of. Fast, clean, good photography, client loved it. And for weeks its contact form dropped submissions into a void. We'd tested that the form worked, and I didn't know that isn't the same thing as testing that the email arrived, until the client mentioned things had gone quiet. I don't know how many enquiries that took with it, and not knowing is the part that still bothers me.

So that's now the first thing we do on any handover: submit the form ourselves, from a phone, on cell data, and watch the email land. Every time. Ninety seconds, and the highest-value ninety seconds in the project. Take that habit whether you work with us on the roofing website and marketing system or with anybody else. Test your own form, monthly. Beautiful websites fail silently, and silence is the one failure mode that never shows up in a report.


The 12-check diagnostic

Here's the whole article as a list you can work down in an afternoon. Cheapest first, so the free checks that catch the most common faults come before anything that costs money. The first six are today's job: every week a broken form runs is a week of enquiries you never get back.

12 checks for a roofing website that gets traffic and no calls

  • Call your own business number from a phone that isn't on your account, and confirm it rings through
  • Submit your own contact form from your phone on cellular data, using an email you can open
  • Check the spam folder, promotions tab, and old filter rules of every inbox that form reaches
  • Ask your host for the mail log covering that submission, and look for a 550 rejection mentioning authentication
  • Confirm the form sends from your own domain with SPF and DKIM, not from the visitor's address
  • Give every submission a second delivery path so email is never the only copy of a lead
  • Separate your Business Profile calls from your website calls before you total anything
  • Turn on a GA4 internal traffic filter now for the next quarter (it's not retroactive), and re-read the last 90 days by shape: your own city excluded, engaged sessions instead of raw sessions
  • Divide real contacts by real sessions to get your own baseline, and write it down
  • Load your homepage on a phone on cellular data, away from the office, and count the seconds out loud
  • Check that tap-to-call is on the first screen and a call and text bar follows the page down
  • Delete every form field that doesn't help you quote the job

Run the twelve checks. Most roofers find their answer in the first six, and it usually costs nothing.

Because a website that gets traffic and no calls is almost never a design problem. It's a measurement problem wearing a design problem's clothes, and from the outside the two look identical, which is why the redesign is so easy to sell.

Want us to run all twelve for you? Book a free 15-minute call and we'll tell you straight which of the three it is: the calls are happening and you can't see them, the form is eating them, or the page is genuinely losing them. No redesign quote unless you actually need one.


Fun Systems contractor marketing dashboard showing monthly revenue, lead pipeline, and missed-call text-back

Tired of guessing where your leads are going?

We build the full package for roofers: a conversion-focused website, tracked calls and forms that actually deliver, live review feed, missed-call text-back, and follow-up automation. Live in under 2 weeks.

See How the System Works

Frequently Asked Questions

Why is my roofing website getting traffic but no calls?

Usually one of three things. The calls are happening and nobody's counting them, because Business Profile calls, website calls, and hand-dialed calls are three separate populations that no single report adds up. Or the form submits fine and the notification email never arrives. Or the traffic isn't homeowners with a leak. Work through those in order before you touch the design.

How do I know if my website contact form is actually working?

Test it properly. Submit your own form from your phone on cellular data, check the destination inbox, then its spam folder, then ask your host for the mail log. Since February 2024 Google requires mail sent to Gmail addresses to pass SPF or DKIM authentication. Forms that send from the visitor's own address fail that silently, while still showing a thank-you message.

What conversion rate should a roofing website have?

There's no trustworthy published figure for organic roofing traffic. The nearest real benchmark is paid: WordStream's 2026 Google Ads benchmarks put the Home and Home Improvement median conversion rate at 8.05 percent. That measures paid search, where a click lands on a page built for one offer with nowhere else to go. Compute your own 90-day baseline and beat that instead.

Does website speed really affect how many calls I get?

Yes, as a conversion lever. Deloitte and Google's "Milliseconds Make Millions" study found a 0.1 second mobile speed improvement lifted progression to form submission on lead generation sites by 21.6 percent. That's more calls from the same traffic. Google's own docs say page experience is not a single ranking signal, so a speed fix sold as a rankings fix is oversold.

How long should I wait before deciding my website is the problem?

Ninety days of clean data, not thirty. One month of contractor traffic is too small a sample, and a single storm week will swing it wildly. First filter out bots, separate Business Profile calls from website calls, and confirm the form delivers. If the number stays flat once the measurement is honest, the site is genuinely the problem.