A generic website grader scores speed, mobile readiness, SEO basics and security. Useful, but it cannot tell whether a clinic site names verifiable providers, offers booking near the top, lists insurance or self-pay prices, matches its Google profile, or is readable by AI assistants. Use a generic grader for technical health and a clinic-specific check for patient needs.
Last verified: November 9, 2026.
What a generic grader scores
Free website graders are built to work on any site: a bakery, a law firm, a SaaS company. HubSpot's Website Grader, the best-known example, describes itself (as of November 9, 2026) as analyzing a site "across 17+ key metrics in under 30 seconds," grading it on performance, mobile readiness, SEO and security. Its page also mentions visibility in "Google Search and AI Search Engines."
Most graders in this category check some version of:
Performance: page weight, load time, number of requests, often using Google's Lighthouse or PageSpeed data.
Mobile: responsive layout, tap target size, legible fonts.
SEO basics: page title, meta description, headings, crawlability, sitemap.
Security: HTTPS and certificate validity.
These are real problems worth fixing. A slow, insecure site with no page title will struggle no matter what industry it is in. The limitation is not that generic graders are wrong; it is that they are blind to the things that decide whether a patient books.
What a generic grader cannot see on a clinic site
Think about what a new patient needs in the first 30 seconds on a practice website, and what a grader built for every industry would have no reason to check:
Who treats patients, and whether they are real. A clinic site should name its clinicians with credentials. A healthcare-specific check can match those names against the public CMS NPPES NPI Registry. No generic grader knows what an NPI is.
Booking near the top. Is there a "Book online" link or widget (Zocdoc, NexHealth, Jane, SimplePractice and so on) in the header or hero, or does the patient have to scroll and hunt?
Click-to-call. Patients often search on phones. A phone number that is plain text, not a tap-to-call link, adds friction.
Insurance and cost. Does the site name the plans it accepts, or state self-pay prices? Cost is one of the first questions patients have, and practices also have obligations around good faith estimates for uninsured and self-pay patients.
Hours and new-patient information. "Accepting new patients," intake forms and opening hours.
Patient portal. A visible link to MyChart, athenahealth, FollowMyHealth or similar.
Google Business Profile match. Do the name, address and phone on the site match the Google profile? Is the Google rating strong enough to compare well locally?
Health-specific structured data. Markup such as MedicalClinic or Physician types, rather than a generic Organization.
Ad trackers on booking or intake pages. HHS has issued guidance on online tracking technologies on health websites. A generic grader is unlikely to flag a Meta Pixel on an intake form as a concern.
AI readiness. Whether AI crawlers are allowed, whether the content is readable without JavaScript, and whether key facts (address, phone, services, insurers) are stated in plain text for assistants to quote.
A practice can score well on a generic grader and still fail most of this list.
The four ClinicStats sub-scores and the 20 checks
ClinicStats is a free website grader built for clinics. It runs 20 checks, each worth up to 5 points, grouped into four sub-scores of 25 points that add up to a score out of 100 (rubric version 2.0 as of November 9, 2026). The full pass and borderline rules are published on the methodology page.
| Sub-score | Question it answers | Checks |
|---|---|---|
| Findable | Can patients find you in Google search and on the map? | Title, meta description and H1; indexable by search engines; mobile speed and Core Web Vitals; HTTPS; name, address and phone match Google |
| Trusted | Does the site show who you are, who treats patients, and that it is safe? | Medical business structured data; providers listed and verified (NPI); Google rating and reviews; accessibility basics; third-party ad trackers |
| Bookable | Can a new patient book, call or check cost in one step? | Online booking above the fold; click-to-call link; insurance or self-pay prices stated; patient portal link; hours and new-patient information |
| AI-ready | Can ChatGPT and other AI assistants read, quote and name your clinic? | AI crawlers allowed in robots.txt; content readable without JavaScript; llms.txt file; quotable facts in plain text; named in an AI answer |
The Findable column overlaps with what a generic grader checks. The other three columns are mostly clinic-specific. A few examples of how the rules are written:
Providers listed and verified (NPI): passes when the homepage or team page names at least one provider with a credential (MD, DO, NP, PA, DDS, PhD, LCSW, etc.) or "Dr.", and at least one name matches an active record in the NPPES NPI Registry.
Insurance or self-pay prices stated: passes when the site names the insurance plans accepted or states self-pay prices; borderline when insurance is mentioned only in general terms.
Named in an AI answer: asks ChatGPT with web search one sample prompt about your specialty and city. It is a single sample, not a ranking.
How to read a score: Normal, Borderline, Out of range, Not measured
Each check gets one of four flags:
| Flag | Meaning | Points |
|---|---|---|
| Normal | Meets the pass rule | 5 |
| Borderline | Meets the borderline rule | 3, unless the check states otherwise |
| Out of range | Meets neither rule | 0 |
| Not measured | Data not available | Left out of the total |
"Not measured" matters. If the scan cannot reach a data source (for example, no Google Business Profile could be matched), the check is excluded rather than scored as a failure. When you compare two scans, check whether the same checks were measured both times.
Some limits are stated in the rules themselves. The booking check approximates the first mobile screen from the top of the page's HTML rather than a rendered screenshot. The tracker check cannot see tags injected later by a tag manager. The accessibility check does not test color contrast. Read the flags as signals to investigate, not as a compliance verdict.
Run both: what to fix first when they disagree
There is no reason to choose one grader. A generic grader and a clinic-specific one answer different questions, and they will sometimes disagree.
When a generic grader scores you high and a clinic grader scores you low, the site is technically healthy but not doing its job for patients. Fix in this order:
Booking link in the header or hero, and a tap-to-call phone number.
Named providers with credentials, matching their NPI records.
Insurance plans or self-pay prices, plus new-patient information and hours.
Name, address and phone consistent with your Google Business Profile.
When a generic grader scores you low and a clinic grader scores you higher, patients can find the key information, but the site is slow, insecure or poorly structured. Fix:
HTTPS and redirects.
Mobile speed and Core Web Vitals, usually images, scripts and third-party widgets.
Titles, meta descriptions and indexing problems.
When both are low, the question may be whether to fix the existing template or rebuild. Our guide to fixing your template or rebuilding covers how to decide.
For the AI-ready column, a dedicated tracker can add week-over-week data; see our planned guide to AI visibility tools for healthcare.
What a clinic grader still cannot tell you
No automated grader replaces judgment. It cannot tell you whether your bios are warm, whether your photos look like your actual office, whether the front desk answers the phone, or whether your prices are competitive. It reads what is on the page and in public data sources at the moment of the scan. Use it as a checklist generator, then have someone who knows your patients review the site.
To see the format before you run anything, look at the sample report. When you are ready, run the free clinic scan; it checks all 20 items and emails the report when it finishes.