Run the numbers yourself.
Every edition of the rankings is built to be recomputed. This page publishes the whole rubric — the eight scored dimensions, the objective checks, the exact tools, and the rules that keep the scores honest.
Eight scores, one to ten, evidence attached.
Each website is scored 1–10 on the eight dimensions below. Every score is recorded with written, cited evidence at grade time — a URL, an observed fact, a measured number. The composite is the unweighted mean of the eight, rounded to one decimal. No dimension weighting, no judgment calls hidden in the math.
| Dimension | What it measures | How it's checked |
|---|---|---|
| Structure & depth | Does the site have real pages for real intents — services broken out, service areas, about — or is it a one-page brochure? | Sitemap + crawl of the nav; approximate page count and service breakout recorded as evidence. |
| Technical SEO | Titles, meta descriptions, heading hierarchy, Open Graph tags, sitemap.xml and robots.txt status, JSON-LD structured data, HTTPS. | Direct fetch of the homepage with a browser user-agent; HTTP status probes on /sitemap.xml and /robots.txt; JSON-LD @type inventory extracted from the source. |
| Google Business Profile signals | Does the website reinforce the business's map-pack presence — NAP consistency, LocalBusiness schema with geo and hours, embedded map, live review surfacing? | Schema inventory + on-page NAP/map/review-widget observation. |
| Content cadence | Is anything shipped over time — a dated blog, a projects feed — or has the site been static since launch? | Blog/articles discovery via nav and sitemap; cadence judged from dated entries. |
| Conversion paths | How hard is it to become a lead: tap-to-call links, forms, CTAs above the fold, multiple contact modes. | tel: link detection, form count, CTA inventory on the homepage. |
| Mobile experience | Real-phone usability: speed, layout stability, tap targets. Most local-service traffic is mobile. | PageSpeed Insights mobile run (Performance, LCP, CLS, TBT) plus tap-to-call presence. |
| Brand consistency | Is there a recognizable, coherent identity — or interchangeable template copy? Named owners, real proof, consistent design system. | Qualitative read of the homepage and about page, scored with written evidence. |
| Programmatic local depth | Differentiated per-city pages with genuinely local content — the difference between claiming a service area and covering it. | Per-city URL discovery + a read of whether the copy actually differs by city. |
The checks that are pure measurement.
- PageSpeed Insights, mobile, homepage.Every site gets one PSI mobile run on its homepage via Google's free PageSpeed Insights API — Performance, Accessibility, Best-Practices, and SEO scores plus LCP, FCP, TBT, CLS, and Speed Index. Lab data (these are low-traffic sites without CrUX field data), which is exactly why anyone can reproduce it.
- JSON-LD inventory. The full list of schema.org @type values found in the homepage source. LocalBusiness or a trade-specific subtype counts for more than generic Organization/WebSite markup.
- Review counts, as-seen-dated. Star rating and count recorded from the named source (Google panel, Birdeye, Chamber, BBB) with the date they were read. Review counts drift — the date is part of the claim, and each figure carries a confidence label when the source is thin or ambiguous.
- SSL / HTTPS validity. A live certificate handshake. A site that throws a browser security warning before it loads fails the baseline, and that gets stated factually.
If you can't recompute it, it isn't a score.
Run these tools yourself. Every number in every edition points to a URL plus an observed fact:
- PSI numbers — rerun any site at pagespeed.web.dev (mobile strategy, homepage).
- Technical signals — fetch the homepage with a browser user-agent and read the source; probe
/sitemap.xmland/robots.txtfor their HTTP status. - Schema — paste any URL into Google's Rich Results Test or read the
application/ld+jsonblocks directly. - Review counts — visit the cited aggregator page. Values drift over time, which is why every count in the rankings carries its as-seen date.
Lab numbers vary run to run — a Performance score a few points off from the published one is normal; an entirely different grade is not. If you find a real discrepancy, tell me and the edition gets corrected and re-dated.
What keeps the scores honest.
- Scores are real, always. Machine-checkable metrics only. The raw metric table ships public with every ranking — anyone can recompute. A retainer never moves a number.
- Disclosure.CDS-built sites are included and badged “Built by Campbell Digital Studio” — never hidden, never excluded. When a studio client appears in an edition, the badge is on the row; when none do, the edition says so explicitly.
- Category awards, not rigged ties. Best Overall, Fastest Site, Best Booking Experience, Best Local Coverage — multiple honest winners per industry, each with a stated, evidence-backed basis. Awards follow the numbers; when a category needs a caveat, the caveat is printed with the award.
- No worst-lists.Best-lists and aggregate stats only (“85% of sites fail the mobile LCP threshold”). Every graded business appears in the raw table because the table is the data — but businesses below the top of the field get no individual negative commentary. Sharp about craft, never cruel about a named business.
- Refresh cadence. Editions are quarterly-refresh assets, not one-shots: each graded industry gets re-scored on the refresh cycle (first refresh: Q1 2027), movers get written up, and stale numbers get replaced rather than left to rot. Every figure keeps its as-seen date so staleness is self-declaring.