Methodology
Google Maps Website Benchmark · Collected July 15, 2026 · Back to the findings · Data (CSV)
This page is the short version. The complete pre-registered protocol, the per-search log, and the grid coordinates are available to reporters and researchers on request via our contact page — enough to re-run the entire study and check us.
What was measured
The unit of analysis is a Google Maps business profile shown to a searcher, not a business establishment and not a license holder. Every claim in the findings takes the form: of the profiles Google Maps shows a customer searching in a given city, X% have a given website status. Nothing is claimed about contractors as a population.
Collection
- Cities: Oceanside, Carlsbad, and Vista, California. City boundaries were drawn generously — over-coverage is harmless because of deduplication, while under-coverage silently punches holes in a count.
- Coordinate grid: 186 fixed points spaced 2 km apart across the three cities. Spacing was calibrated first: at the zoom level used, results from points 2 km apart overlap by 77–87%, so the grid leaves no coverage gaps. Calibration data was discarded and never entered the count.
- Queries: three phrasings per trade, chosen to mirror how homeowners actually search — plumber, plumber near me, emergency plumber, and the electrician equivalents.
- Volume: 186 points × 3 phrasings × 2 trades = 1,116 searches. All completed. Search results were retrieved through a commercial SERP data provider that emulates a signed-out Maps search from an exact coordinate.
- Result depth: requests that hit the provider's per-search result ceiling were automatically re-run at a higher depth and flagged, so no search silently truncated Google's inventory. Eight of 1,116 required this.
- Deduplication: Google's own place identifier. Name matching was never used, in either direction.
Website grading
Each unique profile's linked website — 939 in all — was opened in a real Chrome browser at 390×844, the screen of a phone, and classified:
| Class | Rule |
|---|---|
| No website | The profile carries no website link, or links only to a social or directory page (Facebook, Yelp, Thumbtack, and similar) rather than a standalone site. Objective. |
| Broken | The link failed: repeated navigation failure, a parked or disconnected domain, a homepage returning 404/410, a repeated server error, or a repeatedly blank render. Single transient failures were rechecked before this class was assigned. Objective. |
| Outdated | Loads, but fails RSP's grading standard: content wider than the phone screen by more than 5%, a final URL not served over HTTPS, or at least two staleness signals (copyright year three-plus years old; a DIY site builder paired with a homepage under 500 words; any homepage under roughly 450 words). This class reflects our published standard — a judgment line others may draw differently. |
| Working & current | Loads over HTTPS, fits a phone screen, and shows fewer than two staleness signals. |
| Could not grade | Bot challenges, access restrictions, or ambiguous renders. Reported openly, never redistributed into other classes. |
Page-speed scores, Core Web Vitals, rankings, and traffic were not collected and no claim relies on them.
Rules locked before collection
The grid, the queries, the grading rules, and the publication conditions were written down and version-controlled before the first search ran. The one that matters most: if more than 20% of profiles could not be graded confidently, no percentage would be published. The final rate was 7.5%. An earlier version of this study, built from the state license register instead of the Maps surface, hit 58% ungraded against the same rule and was discarded. Its records ship with the full data package.
Known limitations
- The Maps surface is not the market. Businesses absent from Maps are absent from this study by design.
- Google Maps is not deterministic. Two complete same-day collections found 922 and 939 unique businesses. We report observed run-to-run variation rather than a statistical confidence interval, because two runs cannot establish one.
- One business can appear in more than one city's results, so the six city-trade groups overlap and were collected the same day with the same method. They are six consistent views of one collection, not independent samples.
- Point-in-time: July 15, 2026.
- A failed match against license records means nothing about licensing, and no licensing claim is made.
What is published, and what is not
Published: aggregate counts and shares for all six city-trade groups and the overall total (CSV). Not published: business names, individual classifications, screenshots, or any per-business record. No business is named anywhere in this research, in any grade.