· Milos Lazarevic · 7 min read
Contractor Website Statistics: We Tested 103 Real Sites
I ran a speed and conversion test on 103 Chicagoland contractor websites. Nine were already broken. Only 30 got everything right. Here are the numbers.

Five of the contractor websites I tested last week don’t exist anymore. Not slow, not dated, not badly designed. Gone. The domain doesn’t resolve, the business is still listed with that web address, and anyone who looks them up and clicks through lands on a browser error page.
Nobody told those owners. That’s the thing about a website problem. It never announces itself.
I wanted real contractor website statistics instead of the recycled numbers everyone quotes, so I built a list of 103 home service companies across the Chicago metro and ran the same test on every one of them. Plumbers, HVAC companies, electricians, roofers, lawn and landscape crews, painters, window and door installers. Naperville, Aurora, Downers Grove, Skokie, Orland Park, Chicago proper, and a couple dozen towns in between. The results were worse than I expected, and I already expected them to be bad.
How I tested 103 contractor websites
I pulled business records with a listed web address from OpenStreetMap across the Chicago metro, then filtered down to companies that actually sell to homeowners. Supply houses, manufacturers, and national franchise pages got cut. So did a dessert shop in Evanston that slipped in because its name contains the word “comfort.” That left 103 real contractor sites, one per business.
Then I loaded each homepage the way a stranger would and measured server response time, total page weight, how many files the browser has to fetch before it can render anything, and four basics: does it load at all, is it on HTTPS, does it have a mobile viewport tag, and can you tap the phone number or fill out a form.
Two caveats worth stating up front. Every timing here is a single measurement from one location, so treat individual numbers as directional and the medians as the real story. And my page weight figure counts every file a page references, which runs high on sites that lazy load their images. I’d rather tell you that than pretend the method is cleaner than it is.
Nine of them were broken before speed even mattered
Nine sites out of 103 failed to load. That’s roughly one in eleven.
Five had domains that no longer resolve at all, which usually means a renewal got missed and nobody noticed. Three threw server errors, a 404, a 500, and a 502. One listing had the web address typed in with spaces in the middle of it. And one lawn care company’s website was a Facebook page, which isn’t a website, it’s a room in someone else’s building.
Every one of those businesses is still out there getting found by homeowners. The listing shows up, the click happens, and the visitor hits a dead end and moves on to the next name. This is the cheapest problem on this entire list to fix and the most expensive one to ignore, and it’s the reason a website can be losing you customers without a single warning sign reaching the owner.
A quarter are slower than Google’s own cutoff
Google publishes a threshold for server response time. Under 0.8 seconds is good, and over 1.8 seconds is poor, according to Google’s own documentation.
Of the 93 sites that loaded, 24 of them (26%) came in slower than 0.8 seconds. Thirteen (14%) were slower than 1.8 seconds, which is Google’s poor rating. The median site answered in 0.49 seconds, so the middle of the pack is fine. The tail is where it falls apart. The slowest site in the study, a plumbing company in Naperville, took 22.57 seconds just to send its first byte. Not to finish loading. To start.
Page weight told the same story. Median was just under 1 MB, which is reasonable. But 29% of sites were over 2 MB, and the heaviest one was a 13.4 MB HVAC homepage pulling in 52 separate images. On a phone with two bars in someone’s basement, that page never finishes.
Then there’s the file count. The typical site here makes the browser fetch 8 files before it can draw anything on screen. Forty-two percent make it fetch ten or more. One roofing site requires 55. That’s 55 round trips standing between a homeowner and your phone number, and it’s almost always the residue of a page builder plus a decade of plugins nobody ever removed. I wrote about why website speed costs contractors jobs before I had this data. The data made the case better than I did.
Plumbers have the slowest servers, which is the worst possible outcome
Here’s the breakdown for the four trades with enough sites to say anything honest about.
| Trade | Sites | Median server response | No tappable phone | No contact form |
|---|---|---|---|---|
| HVAC | 29 | 0.42s | 31% | 31% |
| Roofing | 15 | 0.59s | 13% | 40% |
| Plumbing | 14 | 1.39s | 21% | 43% |
| Windows & doors | 14 | 0.51s | 7% | 29% |
Plumbing sites were more than three times slower than HVAC sites at the median. Three times. And plumbing is the trade where the customer is standing in an inch of water at eleven at night, phone in hand, tapping whatever comes up first.
Of all the numbers in this study, that’s the one I’d want fixed tomorrow. A slow site hurts every contractor, but it hurts an emergency trade differently. Nobody waits out a loading spinner while their basement fills.
The smaller trade samples are too thin to publish as percentages, but the direction is worth mentioning. Lawn and landscape sites and electrician sites were the least likely to have a tappable phone number, by a wide margin. Those two categories were also where I found most of the dead domains.
A quarter of them give you nothing to tap
This is the part that has nothing to do with speed and bothers me more.
Twenty-six percent of the sites that loaded had no tappable phone number on the homepage. No tel: link. The number might be sitting right there in the header as plain text, looking perfectly fine on the laptop where it was designed, but on a phone it does nothing when you touch it. You have to memorize it, leave the site, open the dialer, and type it in. Some people will. Most won’t.
Thirty-eight percent had no contact form at all. And 22% had neither. That’s more than one in five contractor websites with no way to contact the business in a single tap, which raises a fair question about what the site is actually for.
Eight percent were still missing a mobile viewport tag, meaning the page renders as a shrunken desktop layout you have to pinch and zoom to read. In 2026. Only one site was still running without HTTPS, so that’s the one thing this industry has collectively fixed.
Only 30 out of 103 got everything right
I set a deliberately low bar. Loads at all, on HTTPS, has a mobile viewport tag, has a tappable phone number, has a form, responds in under 0.8 seconds, weighs under 2 MB. None of that is ambitious. That’s a competent site, not a great one.
Thirty-one sites cleared it. Thirty percent.
Which means seven out of ten contractor websites in the Chicago area are failing at least one thing that costs them calls, and most of those owners have no idea, because the site looks completely fine on the laptop in their office. That’s the whole problem in one sentence. You cannot see this from where you’re standing.
So go check yours. Pull out your phone, turn off wifi, and load your own homepage on cell data. Then tap your phone number and see if it dials. Then run the address through PageSpeed Insights and read the mobile score, not the desktop one. Ten minutes, and you’ll know which side of this study you’re on.
I ran my own site through the same test, which felt only fair. Nimarmi answered in 0.20 seconds, faster than about 96% of the sample. It also referenced a 3.4 MB image I never compressed properly, which is heavier than anything most of these contractors are serving. So I’ve got homework too. That’s sort of the point. This stuff drifts, on everybody’s site, unless someone is actually watching it.
If you want a second set of eyes on yours, we build websites for Chicago home service companies and we’re easy to reach.



