What 175 Denver small-business websites get wrong
I audit every site before I pitch anyone. These are the results, aggregated, with the method and its limits stated. No business is named.
What was actually wrong
| Defect | Sites | Share | Why it costs money |
|---|---|---|---|
| No click-to-call link on the homepage | 145 | 83% | On a phone, the customer has to copy the number by hand. |
| No contact form on the homepage | 79 | 45% | An interested visitor has to leave the site to reach anyone. |
| Page-builder bloat before images | 67 | 38% | The HTML alone is heavy before a single photo loads. |
| Eight or more separate scripts | 64 | 37% | Each one is a delay and a maintenance liability. |
| No meta description | 62 | 35% | Google writes the search snippet for you instead. |
| No structured-data markup | 62 | 35% | This is what drives hours, reviews and location in results. |
| No H1 heading | 56 | 32% | Search engines cannot tell what the page is primarily about. |
| No analytics detected | 46 | 26% | Decisions about the site are being made blind. |
| Stale copyright year in the footer | 42 | 24% | Reads as a business that may not be operating any more. |
| Images with no alt text | 10 | 6% | Genuinely missing, not merely decorative. |
By platform
| Platform | Sites | Share |
|---|---|---|
| Hand-built / unknown | 43 | 25% |
| WordPress | 40 | 23% |
| Squarespace | 36 | 21% |
| Shopify | 28 | 16% |
| Wix | 23 | 13% |
| Weebly / GoDaddy / Duda | 5 | 3% |
Method, and what these numbers cannot tell you
Measured, not surveyed. Each of the 175 homepages was fetched and inspected automatically. Nobody was asked to self-report anything.
The sample is biased, and it matters. These are businesses that surfaced as outreach prospects, so the set skews toward sites with visible problems. This is not a random sample of Denver businesses, and the real citywide rates are almost certainly lower. Anyone quoting these figures should quote that sentence with them.
Homepages only. No interior pages, no checkout flows, no mobile-device testing beyond what the markup reveals.
These numbers were re-measured on 2026-09-04, and the first version of
this page was wrong. Three causes, none of them subtle. The analytics check
recognised only five third-party vendors, so a site running first-party or
self-hosted analytics read as having none. The alt-text check counted an empty
alt="" as missing, when an empty alt is the correct markup for a
decorative image. And the script building this table counted 28 sites parked as
"too large to be a customer" in the denominator while excluding their content
from the numerator, which deflated every rate by about 16%. All three are fixed
and every site was re-audited from scratch: analytics fell from 55% to 26%,
alt text from 45% to 6%, and click-to-call rose from 67% to 83%.
One retraction. An earlier version of this page said stored findings were capped at four per site. That was wrong and is withdrawn — both write paths store the complete list, and the uncapped re-measurement shows the same peak at three to four findings. I mistook a natural distribution for a cap.
Load times are one machine on one connection. The median moved from 494ms to 682ms between runs, which is within ordinary network variance. Do not read it as sites getting slower.
Nobody is named. These businesses did not ask to be audited, so the data is published in aggregate only and always will be.
Want your own number?
The free audit runs these same checks on one address in about twenty seconds. No email, no sales call, nothing stored but the score.