First-party data · Service-business websites

95.6% of licensed service businesses have no working website

We took our own database of US state service licenses and asked a simple question: how many of these businesses actually have a website that works? Getting to an honest answer took three filters, and the filtering is the actual finding.

27 July 2026 Hunter Spence Original measurement

We maintain a database of US state and territory service-license records — plumbers, electricians, HVAC contractors, roofers, salons, and dozens of other licensed trades — currently 8,297,381 rows. Somewhere in there is an answer to a question a lot of people assume they already know: how many small service businesses just don't have a website.

The naive answer is "almost 90%." That answer is wrong, and not in the direction you'd expect.

95.60%
of businesses we classified as actual business entities — not individually-licensed people, not federal contractors — have no working website. 1,630,689 of 1,705,674 rows (n = 1,705,674).

Why the obvious number is wrong

Across all 8,297,381 rows, the website field is null 89.2% of the time. If you stopped there, you'd publish "90% of service businesses have no website" and move on. We almost did.

The problem is that null does not mean "we checked and there is no website." It mostly means "we have not checked yet." Our enrichment pipeline works through the database over time, and a row that hasn't been reached yet looks identical to a row that genuinely has no site. Treating those the same overstates the finding with a number that sounds precise and isn't measuring what it claims to measure.

Getting to a real answer meant applying three filters, in order, each one narrowing the dataset down to something we had actually verified.

Filter 1: only rows we actually checked

We scoped to website_checked_at IS NOT NULL — rows where our pipeline had actually attempted to find and verify a website, not just rows that happened to come back empty. That cuts 8,297,381 rows down to 4,542,400. Everything from here on is measured, not inferred from a gap in enrichment coverage.

Filter 2: only real state licenses

We expected the license_state field to hold roughly 51 values — 50 states plus DC. It holds 199 distinct values.

The largest non-state bucket is SAM — 456,363 rows pulled from SAM.gov, the federal contractor registration system. Those are real registrations, but they aren't a state license, and their businesses look nothing like the rest of the dataset: only 9.5% have no website, far below the population we're actually trying to measure. Registering as a federal contractor already selects for a more web-established business, so leaving those rows in would quietly pull the headline number down and make it look better than the state-licensed population actually is.

Past that, roughly 142 more values are junk: internal scraper source tags, metro-area codes, trade-association names, and OCR garbage from scanned license lists. None of it is a state or territory.

Restricting to the 56 genuine US state and territory codes brings the dataset to 4,070,893 rows, and the no-website rate at this stage is 96.91%.

Filter 3: only actual businesses — the filter that matters most

This is the filter that changes the story the most. A state license registry doesn't only license companies. It licenses people — registered nurses, pharmacists, professional engineers, apprentice and journeyman electricians who hold an individual license entirely separate from any business they may or may not work for. An individual license-holder having no personal website is completely unremarkable. Counting them against a "businesses have no website" statistic isn't measuring what the statistic claims to measure.

We classified every row by looking for entity and trade tokens in the business name — things like LLC, INC, PLUMBING, HVAC, ROOFING, AND SONS — versus rows where the business name simply equals the license holder's own name. Rows that clearly matched neither pattern were left undetermined rather than forced into a bucket.

BucketRowsShareNo working site
Business entities1,705,67441.90%95.60%
Individuals1,262,51031.01%99.29%
Undetermined1,102,70927.09%96.23%
All 56-state rows4,070,893100%96.91%

Scoped to just the business-entity bucket — the population the headline is actually about — 1,630,689 of 1,705,674 rows have no working website: 95.60%.

Worth noting honestly: the rate barely moves across buckets. Individuals sit at 99.29% no-website, undetermined at 96.23%, businesses at 95.60%. We expected the business number to drop further once individuals were removed. It dropped, but not by much — which is less a weakness in the method and more a genuinely surprising, and strengthening, result: however you slice this population, most of it has no working website.

What "no working site" means

A row counts as having no working site if the website field is empty, or if the recorded website resolves to nothing, is unreachable, or is a parked domain. A dead or parked domain is treated the same as no domain at all, because from a customer's perspective it is the same as no domain at all.

The platform question, answered narrowly

Of the working sites we could reach, we fingerprinted the platform where possible. Only 8.85% matched a known builder signature. Wix is the most common identifiable site builder, at 8.69% of working sites — everything else that didn't match a fingerprint falls into an "unidentified" bucket, which is the large majority. That bucket is not evidence those sites are custom-built; it just means our detector didn't recognize the platform. We're not going to turn "unidentified" into a claim about hand-coded websites, and you should be skeptical of any stat that does.

Where this breaks down: coverage isn't even

This is not a random sample, and the biggest reason is that verification coverage varies enormously by state. Across the dataset, the share of rows with a completed website check ranges from 20.1% in New York to 99.8% in Alaska, averaging 54.75%. The two largest states by row count are also the two most under-verified: Florida is 38.5% checked, New York is 20.1% checked. A sample that's thinnest exactly where the most businesses are is not a sample you get to call representative.

What keeps this from being disqualifying: the no-website rate itself stays inside a fairly tight band — roughly 93% to 99.6% — across states regardless of how thoroughly that state has been checked. A state at 20% coverage and a state at 95% coverage land in the same rough range. That's reassuring, but it's a mitigating observation, not proof of representativeness. We're stating the coverage skew plainly rather than letting an averaged headline number imply an even sample it isn't.

There is one real outlier inside that band: Michigan sits at 85.97% no-website, meaningfully below every other state we checked. We don't have an explanation for it. Rather than smooth it into the average or quietly drop it, we're stating it as exactly what it is — an anomaly we noticed and can't yet account for.

The individual/business split is a floor, not a precise estimate

The 31.01% individual share is a minimum, not a measurement of the true rate. Our classifier can only mark a row as an individual when the business-name field itself reads like a person's name. A row where the owner-name fields are simply blank can't be classified that way even when the license holder is, in fact, an individual — it falls into "undetermined" instead. That means the true individual share of this dataset is higher than 31%, and the undetermined bucket is disproportionately made up of individuals we couldn't confidently label. The business-entity bucket, if anything, is a slight overcount, not an undercount — which means 95.60% is more likely to be a slight underestimate of the true no-website rate among clear businesses than an overestimate.

Scope your denominator to what you actually measured

This is the same discipline behind our first data study, on AI crawler traffic: the number people want is almost never the number that was actually measured, and the gap between the two is usually hiding in the denominator, not the numerator.

  1. Don't count a null as "no" until you know why it's null. Unchecked and confirmed-absent look identical and are not the same thing.
  2. Strip out populations that don't belong to the claim you're making. Federal contractor registrations are not state licenses; leaving them in quietly moved our number.
  3. Question what your own labels actually license. A "license" field doesn't mean "business" until you check — ours mostly licenses people.
  4. Report the resulting n next to the headline percentage, not just the percentage. A number without its denominator is a number you can't audit.

Limitations, stated plainly. Verification coverage by state ranges from 20.1% (New York) to 99.8% (Alaska), averaging 54.75%, and the two largest states by row count — Florida and New York — are the two most under-verified. This is not a random sample. The no-website rate does stay within roughly a 93–99.6% band regardless of a state's coverage level, which suggests the topline is unlikely to be badly skewed by the coverage gap, but that is a mitigating pattern, not proof of representativeness.

The individual/business classification is a floor. Rows with blank owner-name fields cannot be identified as individuals by our method even when they are, so the true individual share is higher than the 31.01% measured here, and the undetermined bucket holds more of them than it shows.

Michigan is a genuine, unexplained outlier at 85.97% no-website — well below the rest of the states we checked. We're reporting it, not smoothing it away.

Frequently asked questions

What percentage of US service businesses have no website?
95.60% of the 1,705,674 rows in our database that we classified as business entities within our state-licensed dataset have no working website — no site recorded, or one that resolves to nothing, is unreachable, or is parked. That figure is scoped to rows we actually checked and confirmed were businesses, not individuals or federal contractors, and it is not a claim about every licensed business in the US.
Why isn't the answer just that 89% of rows have no website?
Because 89.2% of all 8,297,381 rows in the raw dataset show no website, and most of that is an enrichment artifact, not a measured absence — we simply had not checked those rows yet. Scoping down to the 4,542,400 rows with a completed website check is the first of three filters that turn a raw null count into an actual measurement, and it is the step most statistics like this one skip.
How did you separate businesses from individuals in a license database?
State licensing boards register people, not only companies — nurses, pharmacists, engineers, electricians. We classified each row using entity and trade tokens in the business name, such as LLC, INC, PLUMBING, HVAC, and AND SONS, against rows where the business name simply equals the owner's own name. That split is a floor, not a precise estimate: a row with blank owner-name fields cannot be classified as an individual even when it is one, so the true individual share is higher than the 31.01% we measured.