Method note: how the 2026 benchmark was done

On this page
  1. Who's in it
  2. The three checks
  3. The bases
  4. Speed runs
  5. Rule changes, disclosed
  6. What this doesn't show
  7. The data

This is the method for Ontario accounting firm websites: the 2026 benchmark.

Who’s in it

I found firms through Google Places listings across 100 Ontario cities and towns: 10 large, 20 medium and 70 small markets. 99 of the 100 have a firm in the benchmark, because one town’s results were all excluded. Market size is the size of the place, not the firm. Firms were spread by place, not weighted to where firms are concentrated, so the benchmark is not a representative sample of Ontario. The firms weren’t verified as accountants, only screened for anything that clearly wasn’t one.

Google’s listings favour firms that keep their profiles active, which likely tilts the benchmark toward better-kept sites.

StepSitesDetail
Listings scanned869One homepage audit per Google listing
Excluded−4510 law firms, 9 dead domains, 7 not serving, 5 not a website, 5 duplicate firms, 3 not a firm, 2 insolvency trustees, 2 other professions, 1 duplicate site, 1 wrong URL
Benchmark824Accounting and tax firms with their own website
Broken−24Error pages, expired accounts, parking pages. Counted in the dead-listing finding, graded on nothing else
Live800
Refused my scanner44Returned a block page to my own fetch

“Not a website” is a judgement call. A Facebook page, a booking page, a directory profile or another firm’s client portal is the firm’s listing, but not a site of its own.

The dead-listing figure (40 of 840) adds the 16 excluded listings with no working domain (9 dead domains, 7 not serving) to the 24 broken benchmark sites, out of 840 firms: the 824 in the benchmark plus those 16.

The three checks

All checks are on the homepage only, scanned September 16 to 23, 2026. The results are graded under version 2.0 of the Standard (see Rule changes below). Speed was tested three times per site. Accessibility and search were tested once.

CheckStandard
SpeedGoogle PageSpeed Insights: 90 or more on mobile and 95 or more on desktop, on the middle of three runs
AccessibilityWebAIM’s WAVE: zero errors and zero contrast failures
SearchA sitemap with no broken pages (an empty sitemap fails; a missing one is recorded as a finding, not a fail), no noindex on the homepage, robots.txt not blocking all crawlers or a named AI crawler, and at least 500 characters of text present without running scripts. Structured data is recorded as a finding, not graded.

The bases

Every figure uses only the sites measured on that check. A site that couldn’t be measured is in neither the count nor the base.

CheckMeasuredHow it gets there from 800 live sites
Speed791−2 where the speed test scored only a block page, −7 with no complete result
Accessibility791−4 security challenge pages, −5 with no WAVE result
Speed and accessibility both783Same count, different sites: 8 in speed only, 8 in accessibility only
Search751−44 that refused my own fetch, −5 with no page captured
All three741Measured on every one of the above
Three runs on both devices756Basis for the run range and the site-level swing figure
Device tests with three or more runs1,541Basis for the 31.7% swing figure
Connection check completed750Of which 734 could be observed on both questions (see below)

The 44 sites that refused my scanner. Their servers returned a block page to a scanner that identified itself by name. Google’s speed test loaded the real page on 42 of them and WebAIM’s checker on 40, so those stay in speed and accessibility. They’re left out of search, which reads my own fetch.

The connection checks. Of the 750 sites where the check completed, 25 answered the http request with a bot challenge. 11 of those have no working HTTPS, so they’re counted either way. For the other 14, whether http redirects couldn’t be seen, and 2 more sites couldn’t be reached at all. That leaves 734 where both questions were observed. The 19 sites with no working HTTPS were each checked again by hand on October 6, and all still failed: 5 self-signed certificates, 4 certificates for a different domain, 2 expired, 6 failed handshakes, and 2 with no answer on the secure port. Four old domains without certificates that redirect to a secure new domain aren’t counted.

Contrast is counted on real contrast pairs, with same-colour pairs removed. On the raw WAVE count the figure would be 88.1%. 84 sites with only unsampleable readings aren’t counted as failing.

Speed runs

Each site’s speed was tested three times on the same day. For every site but one, consecutive runs were more than an hour apart: the typical gap was about an hour and a half, and the longest first-to-last span was 10 hours. The one exception had two gaps of 11 and 12 minutes. Spacing matters because Google caches a result briefly, so back-to-back runs return the same number.

771 sites got three mobile runs, 19 got two and 1 got one. On desktop, 770 got three and 21 got two. A site’s score is the middle of its runs.

Medians. Speed medians are over the 791 speed sites: 62 on mobile and 86 on desktop. With an odd number of sites, there’s one middle value. Where a count is even, the analysis reports the lower of the two middle values, so the figure is always a score a real site got.

By market size, speed pass rates move too much with the scan day to compare, so medians are used: large 60 mobile and 83 desktop, medium 61 and 86, small 63 and 88. The desktop gap holds on the same scan day, but much of it comes from heavier, less stable big-city sites. Treat it as a lean, not a finding.

A subset that was tested and rejected. I checked whether the sites with steady scores on both devices (390 of 791) gave a cleaner picture. They don’t: they’re lighter sites, with less third-party code, smaller pages and more of them in small towns, so steadier and faster go together. Their figures can’t bound the headline, and they aren’t reported as one. The run range (35, 50, 66) is the honest bound.

Real-user data. Google’s real-user data (the Chrome UX Report) was looked up for the https address of every benchmark site, and 81 of 824 have it. That lookup covers the 28 days to early October, not the scan week.

Server speed. PageSpeed simulates server response time, so its figure isn’t a measurement. Server speed is recorded as unmeasurable, not as a clean result.

Rule changes, disclosed

  • Version 2.0 (October 26, 2026): four checks became three. The AI readability check’s two tests that matter (no named AI crawler blocked, text present without scripts) moved into Search, and structured data stopped being graded: Google says its AI features need no special markup, Microsoft says Copilot uses it, and for other AI tools there’s little evidence either way. No site was rescanned; the same September data was re-graded. Under version 1.3, search groundwork passed 667 of 751, AI readability 430 of 751, and 3 of 741 sites passed all four. Under 2.0, search passes 626 of 751 and 6 of 741 pass all three. Corrected on 9 November 2026 to 633 of 751; see Updates.
  • Search groundwork, earlier: 574 of 751 (76.4%) passed under version 1.1. Version 1.2 stopped failing sites with no sitemap (now a finding) and started failing sites with an empty sitemap.
  • How much the text cutoff matters: over 751 sites, a 250-character cutoff flags 28 sites as having no content without scripts, 500 flags 39 and 1,000 flags 84. The search pass rate moves with it: 644, 633 and 593 of 751. This benchmark uses 500.

What this doesn’t show

  • Homepages only. Inner pages weren’t tested.
  • Automated checks only. They catch the measurable failures. Keyboard use, focus order and whether image descriptions make sense need a person.
  • No business outcomes. Nothing here measures enquiries, revenue or clients, and no figure should be read as one.
  • A snapshot. Sites and standards both change.

The data

These tables summarize the main results. No per-site file is published.

Results by market size
MeasureLargeMediumSmallAll
Benchmark sites224225375824
Accessibility16 of 218 (7.3%)22 of 221 (10.0%)25 of 352 (7.1%)63 of 791 (8.0%)
Search172 of 206 (83.5%)179 of 207 (86.5%)282 of 338 (83.4%)633 of 751 (84.3%)
All three2 of 2042 of 2052 of 3326 of 741
Speed median, mobile / desktop60 / 8361 / 8663 / 8862 / 86
Dead listings6 of 226 (2.7%)9 of 231 (3.9%)25 of 383 (6.5%)40 of 840 (4.8%)
Search (751 sites)
ResultSitesShare
Pass63384.3%
Fail11815.7%
Fail: sitemap lists pages that return errors43
Fail: main text only appears after scripts run39
Fail: empty sitemap25
Fail: homepage tells search engines not to index it7
Fail: robots.txt blocks all crawlers4
Fail: robots.txt blocks a named AI crawler3
No sitemap found (a finding, not a fail)12416.5%
No valid structured data (a finding, not a fail)31341.7%
Pass under version 1.3 (groundwork only, before the AI checks moved in)66788.8%
Pass under version 1.157476.4%

A site can fail for more than one reason, so the fail reasons add up to more than 118.

Speed score bands (791 sites), using Google’s own bands, middle of three runs
ScoreMobileDesktop
0 to 49 (poor)13039
50 to 89 (needs improvement)599434
90 to 100 (good)62318
Accessibility issues per site (791 sites), WAVE errors plus contrast failures
Issues per siteSites
None63
1 to 5195
6 to 20321
21 to 50167
More than 5045

Detailed data is available to researchers and journalists on request.

Updates

9 November 2026. Seven sites were counted as failing search because pages listed in their sitemap returned errors. Those errors were the sites’ servers refusing my scanner (too many requests, or access denied), not pages a visitor couldn’t open, so those sites now pass search. Search moves from 626 to 633 of 751. Sites passing all three, the scan dates and every other figure are unchanged.

Back to top