Measured · n=175 · not a survey

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.

83%no click-to-call link
682msmedian homepage load
73/100median audit score
175homepages measured

What was actually wrong

DefectSitesShareWhy it costs money
No click-to-call link on the homepage14583%On a phone, the customer has to copy the number by hand.
No contact form on the homepage7945%An interested visitor has to leave the site to reach anyone.
Page-builder bloat before images6738%The HTML alone is heavy before a single photo loads.
Eight or more separate scripts6437%Each one is a delay and a maintenance liability.
No meta description6235%Google writes the search snippet for you instead.
No structured-data markup6235%This is what drives hours, reviews and location in results.
No H1 heading5632%Search engines cannot tell what the page is primarily about.
No analytics detected4626%Decisions about the site are being made blind.
Stale copyright year in the footer4224%Reads as a business that may not be operating any more.
Images with no alt text106%Genuinely missing, not merely decorative.

By platform

PlatformSitesShare
Hand-built / unknown4325%
WordPress4023%
Squarespace3621%
Shopify2816%
Wix2313%
Weebly / GoDaddy / Duda53%

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.