I Checked 446 Small Business Websites in St. Charles County
Scanned the week of August 6, 2026. Findings go stale; this is a snapshot in time.
Among the businesses paying a website vendor every month, more than one in three have no analytics on their site at all — so neither the owner nor the vendor can tell you whether the site has brought in a single customer. A monthly bill, going out for years in some cases, for something that measures nothing.
I checked 446 sites from the outside, the same way a stranger's browser sees them. Nobody publishes this. So I did.
How I checked
I searched a public business directory across four cities: St. Charles, St. Peters, O'Fallon, and Wentzville. Fifteen trades, from roofing and HVAC through to masonry and glass — the full list is in the sample breakdown below. The directory returns businesses from across the surrounding area, not just those four cities, which is why the sample spills into neighboring towns and counties. A handful of auto and specialty trades from an earlier pass are folded in.
One caveat on the trade labels. A business's trade here is the directory category that surfaced it, not my judgment of its primary work — so a landscaper can appear under "masonry" if that's the search that returned it. Read the trade tables with that in mind.
I kept only businesses with a website on their own domain, dropping national franchises and dropping businesses whose only "website" is a rented listing page on a directory. That's a different problem for a different post.
Then I loaded each site once, in a real browser, and recorded what was publicly visible: whether it loaded over a secure connection, whether it carried any analytics, what platform it ran on, and a handful of standard SEO-hygiene items. No logins. No poking at pages that weren't linked. If a site's robots.txt asked automated tools to stay out, I didn't scan it — that was four sites, and none of them appear in any number below.
This is configuration, seen from the curb. I checked what's true on the page, not what it costs anyone.
The funnel, and the ones that didn't make it
I attempted 518 sites. 446 were reachable and analyzed. The other 72 — roughly one in seven — are a finding in themselves:
- 4 explicitly told automated tools to stay out via robots.txt. Respected, not scanned.
- 39 had a robots.txt I couldn't fetch, so I skipped them to be safe. Going back and trying their homepages directly, 37 of the 39 don't respond to a plain request either. Thirty-seven businesses in this county have a website address that doesn't answer. The other two are fine; I simply over-skipped them.
- 25 returned an outright error — a 4xx or 5xx page where a homepage should be.
- 4 didn't resolve at all. The domain doesn't answer.
A separate pass turned up businesses whose domain is parked, expired, or dead — no website at all behind the name on the truck. I'll cover those separately.
The sample, so you can judge it
The first fair question about any number like this is whether the sample was good or merely convenient. Here's the composition.
By county. This is a St. Charles County study first and foremost: 389 of 446 sites, or 87%. The rest spill into the metro — 20 in St. Louis County, 9 in Lincoln, 5 in Warren, one each in Franklin and Jefferson. Twenty-one records had no city in the source listing and can't be placed.
By city. St. Charles 129 · St. Peters 105 · O'Fallon 77 · Wentzville 60 · the remainder scattered across about twenty-five smaller municipalities.
By trade. Roofing 36 · Electrical 33 · Flooring 33 · Landscaping 33 · Concrete 32 · HVAC 31 · Gutters 30 · Glass 22 · Pest control 21 · Garage doors, fencing and painting 20 each · masonry and plumbing 18 · then smaller counts down to a handful of auto and specialty shops.
It skews toward the trades and cities with the most listings, and a few trades rest on very small counts. I show those counts wherever I quote a percentage, so you can see when a number rests on seven sites instead of thirty.
It isn't a census. It's 446 real, currently-operating local business websites, checked the same way.
About 200 of them were scanned earlier in the same week and the rest on August 6. I didn't timestamp the first batch, so I can't give an exact start date — and I'd rather admit that than claim a precision I don't have.
What I found
Who's running these sites
About one in seven — 14%, or 64 businesses — are on a managed website vendor: a company the owner pays every month to build and host the site. Hibu (24 sites) and Thryv (20) were the most common, with Scorpion and Townsquare, agencies that specialize in the trades, behind them. The vendor is identifiable directly from each site's page source. I'm reporting what was there, not guessing.
Being on a managed vendor isn't a problem by itself. Plenty of owners would rather pay someone than think about it, and that's a defensible choice. The problem is the 24 of those 64 businesses with no analytics on the site at all — the finding this post opened with, and the one worth your attention.
A separate group is on do-it-yourself builders the owner set up themselves: GoDaddy at 10% — the single most common platform in the whole sample — plus Wix at 4% and Squarespace at 2%. That's a deliberate, cheaper decision, and this post isn't about them.
Vendor use is uneven by trade. Counts in parentheses, so you can weigh each figure:
| Trade | On a managed vendor |
|---|---|
| Gutters (30) | 23% |
| Plumbing (18) | 22% |
| Fencing (20) | 20% |
| Glass (22) | 18% |
| Masonry (18) | 17% |
| Landscaping (33) · Garage doors (20) | 15% |
| Roofing (36) | 14% |
| Concrete (32) | 13% |
| Electrical (33) · Flooring (33) | 12% |
| HVAC (31) | 6% |
| Painting (20) | 5% |
| Pest control (21) | 0% |
HVAC and pest control are the tell. The two most competitive, most heavily marketed trades in the county have the fewest hands-off vendor sites — those owners are paying attention themselves. Gutters and plumbing sit at the other end.
The findings that cost customers
These are the ones a visitor sees, or that keep the phone from ringing.
Paying a vendor, measuring nothing — 24 sites. That's 5% of every site I checked. But among the 64 businesses actually paying a vendor every month, it's more than one in three. Someone is writing a check, and there is no way for the owner or the vendor to answer the only question that matters: is this bringing anyone in? If you pay for your website, you can settle this in one email. Ask them how many people visited last month. There should be an answer.
No HTTPS — 12% (52 sites). Served over plain http, so the browser shows "Not secure" before anyone reads a word. The most common serious problem in the sample, and by far the most visible.
For context, about 13% of all websites worldwide still lack a valid certificate by default — but that figure includes parked and inactive domains, which I excluded. Against live sites, 12% is at or slightly worse than the going rate. This is not a St. Charles County problem; it's just one that St. Charles County hasn't fixed either.
It's also the one finding with a deadline. Starting with Chrome 154 in October 2026, Chrome turns on "Always Use Secure Connections" by default and warns before loading any public site that doesn't support HTTPS. For these 52 businesses, a warning screen between a customer and the homepage stops being a maybe. Most hosts issue a certificate free, in minutes.
Blocked from search — 1% (5 sites). A setting on the page tells Google not to list it. Usually a leftover from when the site was being built, never noticed since. The site works fine. It's just invisible.
The findings that are hygiene, not emergencies
Real, fixable, worth doing — but nobody loses a customer this afternoon over them. I'm reporting these so you have the whole picture, not to pad the scary column.
- No structured data or schema markup — 32% (143 sites). The tags that help search engines and AI assistants understand what a business is and does.
- Missing image alt text — 29% (129 sites). An accessibility and SEO basic.
- Missing meta description — 18% (79 sites). The blurb under your name in search results, left for the search engine to guess at.
The difference between those two lists is the whole point of this post. A "Not secure" warning is costing you trust at the door. A missing meta description is a tune-up. They are not the same size, and anyone who hands you one long undifferentiated list of alarming items is selling you something.
Check yourself, free, tonight
Every serious finding above, you can check by hand in about five minutes. No tools, no cost, nobody to call.
1. Ask whoever runs your site for last month's numbers. If you pay someone monthly and they can't tell you how many people visited, you're in the one-in-three.
2. Look at your address bar. Type your website in. No padlock, or a "Not secure" label? That's the 12% finding, and it's you.
3. Submit your own contact form. Fill it out, send it, and see whether it lands in your inbox. If nothing arrives, every lead who used it is gone and you'd never have known.
4. Search your own name, then your trade. Look yourself up, then search "[your trade] in [your city]." See whether you come up, and read the blurb underneath. Blank or garbled is the missing meta description.
What I'm not going to tell you
Because these checks have limits, and pretending otherwise is how a post like this goes wrong.
This is one snapshot in time — the week ending August 6, 2026. A site I'd flag today may be fixed by the time you read this. A clean one may have broken since.
A clean website does not mean a healthy business, and a flawed one doesn't mean a struggling one. Plenty of booked-solid shops in this county have terrible websites. I measured pages, not businesses.
I can't tell you how this compares to anywhere else. No one publishes these numbers for Kansas City or Nashville either. The national baselines that do exist sample the top million websites or the sites people actually visit most — a very different population than a roofer in Wentzville, and one that should look better on every measure. Where my numbers look better than a national figure, that's a difference in how the thing was counted, not evidence that this county is ahead. I've only made the comparison above where the two are measuring the same thing.
I can't see whether any of this is costing you customers — only that it's true. I attached no dollar figures to any finding, on purpose, because I don't know what any of them cost you. Neither does anyone who tells you they do.
I couldn't check whether a contact form actually delivers. Many submit through JavaScript in a way an outside check can't confirm, so I left forms out of the findings entirely rather than report a number I couldn't stand behind. That's why step 3 above is something only you can do.
I couldn't check anything behind a login, or anything not linked from a site. And I didn't scan the four sites that asked me not to.
No business here is named, and none ever will be. In a county this size, naming a neighbor's broken website is unrecoverable. These are aggregate numbers, and that's all they'll ever be.
I'm Michael. I live here and build websites for local businesses in St. Charles County. I ran these checks across 446 of them; the numbers above are what came back. Reply with your business name and I'll run the same checks on yours by hand, and send you what I find.