Website Quality Score: Grade Local Sites Like an Investor
By Cameron Kirdzik — Founder @WebHunt.ai
· 10 min read
TL;DR
- Score local sites 0–100 across six weighted dimensions tied to revenue, not taste.
- Pair every deduction with an AI-era remediation plan: tool + honest timebox.
- Use scores to segment leads and pitch a same-day rebuild or CRO sprint.
- Evidence is everything: Lighthouse, PSI, SSL Labs, GBP screenshots.
- Worked example: a fictional plumber goes from 46 to 86 in under a day.
Why a Website Quality Score (Investor Lens, AI-Era Economics)
We’re not grading pixels. We’re compressing a messy site review into a single 0–100 that signals buy-likelihood and revenue upside. The score is for operators: which businesses will see cashflow lift, fast?
Investor lens, not designer lens:
- Risk (security)
- Reach (mobile)
- Speed (bounce and paid ROI)
- Momentum (content freshness)
- Cashflow (conversion paths)
AI-era reality: fixes that used to take weeks now take hours with tools like Replit, v0, Bolt, Framer AI, Cursor, Windsurf, Claude Design, and Sites by ChatGPT. That means every deduction must be paired with a fast remediation plan (tool + time + outcome). The score becomes a proposal, not a critique.
Use it to segment leads: low score plus a high-intent trade (plumbers, HVAC, roofers, pest control) is the fastest path to a paid ROI pilot. And it’s anchored by fundamentals: Google treats HTTPS as a ranking signal; mobile is the majority of traffic; slower pages convert worse; Core Web Vitals correlate with better search/engagement; and review velocity matters for local pack rankings.1
Key takeaway: The score is a buy signal. Low score + fast fixes + high-ticket services = short payback, easy close.
The Rubric: Dimensions, Weightings, and Scoring Scale (0–100)
Weights (sum = 100):
- Security/Trust — 15
- Mobile UX — 20
- Speed/Core Web Vitals — 20
- Content Freshness — 15
- Conversion Paths — 20
- Local Signals (NAP/Reviews/Schema) — 10
Scoring scale per dimension (normalize to its weight):
- 0 = critical failure
- 5 = poor
- 10 = acceptable baseline
- 15 = strong
- 20 = best-in-class
Dimension notes:
- Security/Trust (15): Valid HTTPS + HSTS + no mixed content + clean SSL grade. Policy: if HTTPS fails, cap overall at 50 to reflect systemic risk.
- Mobile UX (20): Responsive layout, correct viewport, legible text, tap targets, above-the-fold CTA. Lighthouse Mobile Accessibility ≥ 90 earns full marks.
- Speed/Core Web Vitals (20): Mobile PageSpeed Insights field data: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 at the 75th percentile; penalize heavy third-party scripts.
- Content Freshness (15): Recent on-site updates (≤ 90 days), Google Business Profile (GBP) posts in ≤ 60 days, schema dateModified on key pages.
- Conversion Paths (20): Primary CTA in hero, click-to-call on mobile, visible phone, short tracked forms, booking widget, chat, and a backup after-hours conversion (text/WhatsApp).
- Local Signals (10): NAP consistency (site/footer/schema), GBP completeness, 50+ fresh reviews with rising velocity, on-site review widgets.
Tie-breaker: If totals match, prioritize the lead with higher Speed and Conversion sub-scores. Faster pages and clearer CTAs turn paid traffic into money.
How to Measure Each Dimension (Tools, Thresholds, Evidence)
Security/Trust
- Check padlock and run SSL Labs (target A/A+). Verify HSTS and scan for mixed content via browser console.
- Optional: SecurityHeaders.com report.
- Evidence: SSL Labs grade, console screenshot of mixed content, header printout.
Mobile UX
- Run Lighthouse (Mobile). Capture Accessibility and Best Practices.
- Manual checks: responsive breakpoints, hamburger behavior, tap spacing, sticky call button.
- Evidence: mobile viewport screenshots with CTA above the fold, Lighthouse JSON/PNG.
Speed/Core Web Vitals
- Use PageSpeed Insights (mobile) with field data. Record LCP/INP/CLS.
- Note render-blocking resources, third-party bloat, image weights. Test 4G throttling in dev tools.
- Evidence: PSI report and dev tools waterfall.
Content Freshness
- Scan visible timestamps, sitemap lastmod, and blog cadence.
- Check GBP for posts in last 60 days and recent photos.
- Verify schema.org dateModified on key pages.
- Evidence: screenshots of timestamps, sitemap snippet, GBP post dates.
Conversion Paths
- Count above-the-fold CTAs, verify tel: links and sticky call.
- Test forms (spam protection, auto-reply), booking widget, and any chat.
- Confirm GA4 presence, event tracking, and call tracking numbers.
- Evidence: hero section screenshot, GA4 tag in source, test form autoresponse.
Local Signals
- Compare NAP in footer vs GBP vs schema.
- Spot-check major directories for consistency.
- Count reviews, rating, and last-30-day velocity; note GBP Q&A usage.
- Evidence: GBP review graph, schema JSON-LD snippet, directory screenshots.
By the numbers: Save every artifact. A defensible scorecard with receipts out-closes vague “your site needs work” pitches.
AI-Era Remediation Matrix: Fixes, Tools, Honest Timeboxes
Security/Trust (15)
- Issue: No HTTPS or mixed content.
- Fix: Managed TLS (host) or Cloudflare SSL/TLS + HSTS; strip mixed media in rebuild.
- Tools: Cloudflare, Cursor/Framer AI for rebuild.
- Time: 30–60 minutes including DNS.
Mobile UX (20)
- Issue: Broken responsive, small text, no sticky call.
- Fix: Regenerate layout with Framer AI or Replit template; add sticky tel: button.
- Tools: Framer AI, Replit, Lighthouse.
- Time: 1–2 hours to migrate core pages.
Speed/Core Web Vitals (20)
- Issue: Heavy theme/slider, bloated JS.
- Fix: Rebuild with v0/Bolt minimal components, defer non-critical JS, lazy-load, compress images (Squoosh/AI), CDN.
- Tools: v0, Bolt, Windsurf/Cursor, Squoosh, Cloudflare CDN.
- Time: 2–4 hours to hit LCP ≤ 2.5s on mobile.
Content Freshness (15)
- Issue: Stale blog/GBP.
- Fix: AI-assisted FAQ/news cadence; schedule 2 posts/month; wire dateModified.
- Tools: Claude Design, Sites by ChatGPT, simple CMS.
- Time: 60 minutes to stand up templates and schedule.
Conversion Paths (20)
- Issue: No booking, long forms, no SMS.
- Fix: Embed Calendly/YouCanBook.Me; add click-to-text (WhatsApp/Twilio); shorten form; set autoresponder; GA4 events.
- Tools: Calendly, Twilio, GA4, Tag Manager.
- Time: 45–90 minutes including tracking.
Local Signals (10)
- Issue: NAP/schema gaps, review drag.
- Fix: Generate JSON-LD via AI, validate; pull latest reviews with a widget; prompt owner for GBP post/photos; set weekly review-ask automation.
- Tools: Schema.org generators, GBP, Zapier/SMS.
- Time: 60–90 minutes.
Policy: If 3+ dimensions are ≤ 50% of their weight, propose a same-day AI rebuild instead of patchwork. With near-zero incremental build cost, full replacement is rational.
Scoring Workflow You Can Run at Volume (Pitch-Ready in <60 Minutes)
Pipeline setup: batch 20–50 prospects in one niche/city. Run the rubric in 30–45 minutes each with a template and screenshots.
Step-by-step (set a 10-minute timer per dimension):
- Snapshot metrics: Lighthouse (mobile), PageSpeed Insights, SSL Labs, GBP.
- Fill the scorecard with normalized sub-scores and notes.
- Draft remediation plan: tool + timebox + outcome for every deduction.
- Quantify upside in bookings/calls (not sessions).
- Produce a 1-page pitch: score, evidence, same-day plan, fixed price/ROI pilot.
Automation: prep checklists in Notion/Airtable. Use keyboard snippets for common findings.
Deliverable standard: a single-page PDF with overall score, per-dimension subs, evidence, and a 24–48 hour turnaround proposal.
Lead prioritization: start with scores ≤ 55 that have money pages (Emergency, Same-Day) and detectable ad spend (gclid/utm in URLs).
Where to source pre-scored leads: if you’d rather not build lists by hand, WebHunt.ai lets you filter local businesses by weakness signals (missing HTTPS, poor mobile, slow pages, stale content) and shows a buy-likelihood score from website-quality and demand indicators. Use it to start at the top of the opportunity stack.
You can also save shortlists and push them into your CRM: WebHunt.ai includes a deal pipeline and export/API/Zapier so you can track follow-ups without duct tape.
Worked Example: Grading “ClearFlow Plumbing” (Fictional, Austin TX)
Business context: 12 techs, 24/7 emergency calls, runs Google Ads on weekends; current site is a 5-page WordPress theme from 2017.
Scores
- Security/Trust (0–15): HTTPS present but mixed content on gallery; SSL Labs = B; no HSTS. Score: 9/15.
- Mobile UX (0–20): Text small on service pages, no sticky call; Lighthouse Mobile Accessibility = 78. Score: 12/20.
- Speed/Core Web Vitals (0–20): PSI mobile: LCP 3.8s, INP 260ms, CLS 0.18; heavy slider and unoptimized images. Score: 8/20.
- Content Freshness (0–15): Last blog post 10 months ago; GBP last post 6 months ago; no dateModified schema. Score: 5/15.
- Conversion Paths (0–20): Phone only in footer, form is 8 fields with no autoresponder, no booking widget, no click-to-text. Score: 6/20.
- Local Signals (0–10): NAP inconsistent (Suite vs Ste), 126 Google reviews, 4.6★, review velocity slowed last 90 days; no schema. Score: 6/10.
Total score: 46/100. Red flags: slow mobile, weak conversion, stale content. Investor read: high leakage on emergency-intent traffic.
AI remediation plan (same day)
- Security: force HTTPS via Cloudflare, enable HSTS, fix mixed media in rebuild (45 minutes).
- Mobile UX: rebuild hero and service templates in Framer AI with sticky call and larger tap targets (90 minutes).
- Speed: migrate to Bolt/v0 minimal stack, remove slider, compress images, defer non-critical JS (2.5 hours).
- Content: generate 6 service FAQs + 2 monthly GBP posts via Claude; add dateModified schema (60 minutes).
- Conversion: embed Calendly for water-heater installs, add click-to-text, shrink form to 4 fields + auto-reply, wire GA4 events (75 minutes).
- Local: fix NAP in footer/schema, add review widget, prompt 5 review requests/week automation (60 minutes).
Projected outcome: LCP ≤ 2.5s; Mobile Accessibility ≥ 95; 2–3 extra emergency calls/week from clearer CTAs and faster pages; payback under two weeks at a $250–$400 average ticket.
Pitch line you’d use: “We took your 46 to an 86 in under a day — here’s the live draft and the before/after metrics. Pay only if the phones ring this week.”
If you want a head start on this kind of analysis, WebHunt.ai can generate an AI “Deep Analysis” brief per lead, including desktop/mobile screenshots and a summarized pitch angle you can paste into your one-pager.
Turn Scores Into Closes: Pricing, Offers, and Objection Handling
Offer structure (AI era): flat-fee rebuild ($600–$1,200) plus 30 days of CRO/GBP tune-up. Near-zero fulfillment cost on AI-built sites supports risk-reversal and speed guarantees.
Anchor the pitch:
- Open with the 0–100 scorecard (risk, reach, speed, momentum, cashflow).
- Show the live AI-built draft (Replit/Framer AI/v0) — hours, not weeks.
- Present the remediation matrix with timeboxes.
Credible promises:
- 24–48 hour go-live.
- Reversible: old site lives on a subdomain for 14 days.
- Try-before-commit: pilot just one “money page” against the existing.
Quantify ROI in bookings: “One extra weekend emergency call pays for the rebuild.”
Objections you’ll meet (and how to preempt):
- “We already have a site.” Show the Speed and Conversion losses; demo a 2.5s LCP draft and sticky call button.
- “We’re busy.” Offer done-for-you copy, after-hours cutover, and a 20-minute owner review.
- “We’ll think about it.” Book a tracked number and A/B the hero for 7 days; decide on calls, not opinions.
Two accelerators for this stage:
- If you want to drop a live draft fast, the one-click website prompt in WebHunt.ai pre-fills an AI builder prompt (Replit, Lovable, Base44, v0, Bolt, Framer AI, Cursor, Windsurf, Codex Sites, Claude Design, Claude Code) with the business’s real details and photos.
- To reach the decision-maker directly, use WebHunt.ai owner contact enrichment to pull the owner’s name, direct phone/email, and confidence score — far better than info@ inboxes.
If you prefer not to dial yourself, WebHunt.ai can launch a human cold-calling campaign or route an AI Voice Agent SDR to pitch your scorecard and book meetings straight to your calendar.
Edge Cases, Pitfalls, and When Not to Rebuild
- High-score sites with dev restrictions: pitch a CRO sprint only. If Core Web Vitals and conversions are ≥ 80% of their weight, don’t force a rebuild.
- Single-page apps: great interactivity, but watch crawlability and INP. Propose code-splitting and route-level chunking instead of a full swap.
- Regulated verticals (medical/legal): layer in privacy/security checks (HIPAA form handling, consent logs) before embedding third-party widgets.
- Photography-heavy trades: protect credibility. Use responsive srcset and an image CDN; don’t bulldoze visual proof for tiny speed wins.
- Seasonal businesses: focus freshness in bursts pre-season (3 posts in 30 days), not slow drips; align score improvements to booking windows.
Appendices: The Actual Scorecard (copy-paste template)
- Security/Trust (15): ____ / 15 — notes, SSL grade, HSTS, mixed content
- Mobile UX (20): ____ / 20 — Lighthouse Mobile Accessibility, CTA placement, tap targets
- Speed/Core Web Vitals (20): ____ / 20 — LCP, INP, CLS, 4G waterfall
- Content Freshness (15): ____ / 15 — on-site updates, GBP posts, dateModified
- Conversion Paths (20): ____ / 20 — CTA in hero, click-to-call, forms, booking, chat, SMS
- Local Signals (10): ____ / 10 — NAP consistency, GBP completeness, reviews/velocity
- Total: ____ / 100 (cap at 50 if HTTPS fails)
- Remediation plan: tool + time + outcome for each deduction
- Offer: flat-fee rebuild or CRO sprint; timeline: 24–48 hours; success metric: calls/bookings
If you’d like to shortcut the hunting phase, browse a free, scored database of local businesses and filter by trade, city, and weakness signals in WebHunt.ai. It’s the fastest way to assemble a batch of pitch-ready prospects for this scorecard.
Ready to put this to work?
Run the rubric on 10 local sites this week and pitch the same-day remediation. If you want pre-scored leads and AI briefs to speed the front end, start with WebHunt.ai and go after the businesses most likely to buy now.
Frequently asked questions
What is a website quality score and how is it calculated?
It’s a 0–100 rubric focused on revenue impact, not aesthetics. We weight six dimensions — Security/Trust (15), Mobile UX (20), Speed/Core Web Vitals (20), Content Freshness (15), Conversion Paths (20), and Local Signals (10). Each gets a normalized sub-score (0–20 scale) based on measurable thresholds, then summed. If HTTPS fails, cap the total at 50 to reflect systemic risk.
Which tools should I use to measure speed, mobile UX, and security?
Use Lighthouse (mobile) for Accessibility and Best Practices, PageSpeed Insights for field Core Web Vitals, and SSL Labs for TLS health. Check GBP for freshness and reviews, validate JSON-LD schema, and confirm GA4. Save screenshots and report exports as evidence in your pitch.
How do I set fair weightings for different industries?
The default weights work across most local trades. For emergency-intent categories (plumbers, HVAC), bias Conversion Paths and Speed slightly higher. For regulated verticals, fold in extra Security/Privacy checks. Always justify deviations with the buying journey, not design taste.
Can I apply this scoring to multi-location franchises?
Yes. Score a representative set of location pages plus the corporate template. Emphasize NAP consistency, GBP management at scale, and page-speed on location templates. Recommend centralized fixes (template, schema, tracking) with local execution (GBP posts, photos, reviews).
How fast can an AI-native rebuild improve my score and results?
In hours, not weeks. A minimal-stack rebuild with v0/Bolt or Framer AI plus basic CRO can lift Speed and Conversion scores the same day. Pair that with TLS/HSTS, schema, and a GBP post cadence and you can take many sites from sub-50 to 80+ in 24–48 hours.
How does the score translate into real ROI for local businesses?
The score maps to leak points in the funnel. Faster LCP and clearer CTAs convert more of the traffic they already have, including paid clicks. In high-ticket, high-urgency trades, one or two extra bookings a week can pay back a rebuild within days. Anchor ROI in calls and jobs, not traffic.
Sources
About the author
Cameron Kirdzik — Founder @WebHunt.ai
Cameron is the founder of WebHunt.ai, where he helps web designers, agencies, and freelancers find local businesses that need a website. He writes practical, field-tested guides on prospecting and closing local clients.