Research, 11 October 2026
I measured 1,137 agency websites. None of them scored 100.
Every agency says it builds fast websites. I wanted to know what their own sites score, so I measured 1,137 of them with the same free tool any of their clients could run.
The median scored 58 out of 100 on mobile. The median agency homepage weighs 3.1 megabytes and takes 8.8 seconds to render its largest element on a mid range phone.
Twenty eight sites got three of the four categories to 100. The closest anybody came was two sites scoring 99 on performance and 100 on the other three, one point short of a clean sweep. Exactly one site in the whole sample scored 100 on performance.
The method, before the numbers
How this was actually done
This goes first. A study that explains its method afterward is asking to be taken on trust, and this one should not need to be.
The sample. I queried Google Places for three terms, "web design agency", "seo agency" and "digital marketing agency", in each of the 100 largest US metro areas. That returned 7,296 unique businesses with a website, after dropping listings with no site and listings pointing at a directory or a social profile instead of the company's own page. From those, 1,200 were drawn at random using seed 42. Anyone can reproduce the identical 1,200.
The measurement. Each site was run once through the PageSpeed Insights API on the mobile setting, which emulates a mid range Android phone on a throttled connection. Every run used Lighthouse 13.5.0, and every run happened on 11 October 2026 inside a single 70 minute window. Nothing here compares a site measured in January against one measured in June.
What came out, and why. Of the 1,200, 41 could not be measured at all, which has its own section below. That left 1,159 results, and 22 of those came out:
- Nine sites: no performance score recorded
- Nine sites: under 20 KB, no website rendered
- Two sites: reserved or link-shortener domain
- One site: redirects to a bare IP address
- One site: redirects to a domain-sale page
That leaves 1,137.
Worth saying out loud: of the thirteen removed pages that did have a score, twelve scored between 91 and 100. Taking them out pushes the median down, which happens to flatter whoever publishes this. So I measured the effect instead of assuming it was small. The median was 58 before the exclusions and 58 after.
One run is a sample, not a measurement. Lighthouse scores move between runs on identical files, sometimes by ten points or more. That is why everything here is a median across more than a thousand sites rather than a verdict on any one of them, and it is part of why no site is named. A median across 1,137 sites is steady in a way no individual score is.
The scores
Performance is the outlier, and it is not close
The other three are mostly fine because they are largely deterministic checks that any competent build passes. Is there alt text. Is there a meta description. Is the page served over HTTPS. Performance is the one that takes actual decisions and actual restraint, and it is the one being skipped.
Sixty three sites out of 1,137 reached 90 on it, which is 5.5 percent. Three failed best practices badly enough to land under 50, and six did it on SEO. Nothing failed accessibility that hard: the lowest accessibility score in the sample was 52.
The spread is wide. The worst site scored 6. The best scored 100. A quarter sit at 47 or below.
That shape is the finding, more than the median is. This is not a healthy industry with a slow tail hanging off it. It is a mound sitting in the fifties, with the green band at the right hand edge almost empty.
Against Google's own thresholds
Core Web Vitals, band by band
Thirty sites out of 1,137 pass all three Core Web Vitals at once. That is 2.6 percent.
Layout shift is the one the industry has largely fixed, and it deserves saying. Eighty six percent sit in the good band. That is what happens to a metric when it is easy to understand and easy to correct.
Largest paint is the opposite story, and lands on almost exactly the same number going the other way: eighty six percent in the poor band, not the middle one. The two figures are 86.2 and 85.6 percent before rounding, which is close enough to be worth noticing and not close enough to mean anything.
The largest gap in the data
Page builders, and what they cost
Of the 1,137 sites, 553 were built with a page builder I could detect and 584 were not.
What this does not prove. A page builder does not cause a slow website. Builders get chosen by people working fast on a tight budget, and the same pressure picks the heavy theme, the eleven plugins and the stock video header. The builder is a marker for how a site was built, not the whole cause of what it weighs. But 553 sites against 584 is a real comparison, and the direction is not ambiguous.
One more thing the data says, and it surprised me. Sixty three percent of the sample runs WordPress, and WordPress scored a median of 57 against 60 for everything else. That gap is nothing. The builder gap is large. WordPress is not the problem, which is worth hearing from someone whose own site runs on it.
What they actually ship
The median homepage, itemized
Fifty one percent ship more than three megabytes. Twenty eight percent load ten or more separate third party services, which means ten different companies run code on the page before a visitor reads a sentence.
The median site carries 932 kilobytes of that third party code. Analytics, tag managers, chat widgets, fonts, tracking pixels, heat maps. None of it is the agency's own work and all of it sits on the agency's own critical path.
The ones that would not load
Forty one of them could not be measured at all
Lighthouse failed outright on forty one of the 1,200.
- Thirty sites could not load the document reliably
- Ten sites painted no content inside the timeout
- One site returned something that was not HTML
That is 3.4 percent of a random sample of professional web agencies whose websites would not reliably load for Google's testing tool. It is not an error on my side, and none of those sites appear in any figure above, because a site with no score has nothing to average. It belongs here as a finding of its own.
The blank panel
Why most of these reports say "No Data"
Only seven percent of the sample had enough real Chrome traffic for Google to report field data on it.
If you run this test on your own site and the panel at the top says No Data, that is a traffic threshold and not a verdict. Google builds that panel from real Chrome users who opted into reporting, pooled over 28 days. A site under the threshold has no entry. There is no penalty, nothing to fail, and the blank tells you nothing about how fast your site is.
It does tell you something else. For ninety three percent of these agencies, Google holds no real user measurements of their own website at all.
The limits
What this study does not say
Stated here rather than left for somebody else to point out.
It ranks nobody, and no site is named
The published dataset has the identifying columns stripped. If you want to know where your own site sat, ask me and I will tell you.
One run per site
Enough for a median across 1,137. Not enough to judge any one of them. A site that scored 54 here might score 61 on a Tuesday.
It measures homepages
Not whole sites, and not the pages that actually convert.
It measures four things, and they are not the only things
Speed, accessibility, structure and technical SEO. It says nothing about whether an agency is any good at marketing, design, strategy or looking after clients, all of which matter more to most buyers than a Lighthouse score does.
The sample is whatever Google returns
A firm with no Google Business Profile is not in it, and some entries will be freelancers rather than agencies. That is a real limit of the method, and it is why the search terms, the metro list and the seed are all published.
It is one moment
Every measurement was taken inside one 70 minute window on 11 October 2026. A site that was mid deploy that morning is in here with whatever it was serving at the time.
Check it yourself
The whole thing is published
Everything needed to rebuild this is published: the collector, the runner, the analyzer, the three search terms, the 100 metros, the random seed and the fingerprint of the source list.
The row level data is published too, with the name and URL removed. Every row carries whether it is in the analyzed sample and, if not, the exact rule that removed it, so every median, every distribution and every table above can be re-derived with a filter rather than a rewrite.
The scripts bundle is the code that produced every figure above, not a description of it, along with a file stating the exact commands, the random seed and a fingerprint of the source list so you can tell whether your pool matches mine.
Then there is the test that costs nothing. Run the same tool on your own agency's website. Then run it on the site of whoever is pitching you. It takes about thirty seconds, and it is the same panel I used. There are free tools here that check a few of the same things without an API key.
Every figure above as a table
| Score band | Sites | Share |
|---|---|---|
| 0 to 9 | 2 | 0.2% |
| 10 to 19 | 7 | 0.6% |
| 20 to 29 | 34 | 3% |
| 30 to 39 | 125 | 11% |
| 40 to 49 | 152 | 13.4% |
| 50 to 59 | 300 | 26.4% |
| 60 to 69 | 234 | 20.6% |
| 70 to 79 | 130 | 11.4% |
| 80 to 89 | 90 | 7.9% |
| 90 to 100 | 63 | 5.5% |
| Category | Median | 90 or above | Under 50 |
|---|---|---|---|
| Performance | 58 | 5.5% | 28.1% |
| Accessibility | 90 | 51.5% | none |
| Best Practices | 96 | 78.7% | 0.3% |
| SEO | 92 | 82% | 0.5% |
| Metric | Good | Needs work | Poor |
|---|---|---|---|
| Largest paint | 4% | 10.5% | 85.6% |
| First paint | 7.8% | 20.1% | 72% |
| Blocking time | 52.9% | 28.7% | 18.4% |
| Layout shift | 86.2% | 8.9% | 4.9% |
| Platform | Sites | Median score | Median weight |
|---|---|---|---|
| Elementor | 255 | 57 | 3.3 MB |
| Divi | 99 | 56 | 3.4 MB |
| WPBakery | 54 | 51.5 | 3.4 MB |
| Squarespace | 49 | 46 | 3.9 MB |
| Wix | 45 | 52 | 4.6 MB |
| Beaver Builder | 20 | 54.5 | 2.8 MB |
| Duda | 20 | 59.5 | 4.6 MB |
| No builder detected | 584 | 62 | 2.5 MB |
Using this
Take the numbers, quote them, chart them, argue with them, run the scripts and publish a different answer. No permission needed and nothing to fill in. The only ask is that you say where the figures came from and link to this page, so that whoever reads your version can check mine.
If you want the figure for one specific site, including your own, ask me. I have it, and I will tell you, and I will not publish it.
My own numbers
Where I sit in this
It would be dishonest to publish this without saying that my own site is inside it.
This site publishes its own numbers on the Under the Hood page, including a chart of every PageSpeed run it has recorded, bad runs left on. The lowest point on that chart is a 79. There is a Best Practices 96 from a build that shipped a bug I missed. There is a set of four runs taken five minutes apart on identical files that scored 100, 83, 96 and 99, which is the clearest illustration I have of why a single run is a sample and not a measurement.
I am not holding any of that up as a reason to hire me. I am holding it up because this study asks 1,137 companies to be measured against a standard, and the only fair version of that is standing inside the sample rather than beside it.
If the numbers above describe your site and you would rather they did not, the fix is usually not a plugin. It is how the site is built and what is loading on it.
Start here
Tell me what you are trying to fix
Send over the site you have now, or the one you wish you had. I will tell you honestly whether I am the right person for it.
info@palmprojects.com