Skip to main content

Every score here is contestable. This is what it was judged against.

ClearAudit grades a page on eight dimensions, each with five observable bands. The model reads the page and scores against those bands; it never computes the overall score and never rates its own confidence. Confidence is derived from the evidence we actually collected, and the final number is produced in code.

Engine stampprompt@v3.3+market@v1.1+rubric@rubric-v3.2+score@score-v3.2+rules@v1.0+contract@audit-contract-v3.1+model@claude-haiku-5-5

The eight dimensions.

Band descriptors name an element, a number or a state — never “good” or “strong” — so a second reviewer can check a score and disagree with it on the evidence.

First impression

first_impression

What a visitor can understand about the offer from the mobile above-the-fold view alone, without scrolling or interacting.

  1. 0–2Nothing above the fold identifies the business or what it sells — logo and navigation only, an unskippable splash/age gate, or a hero that fails to render.
  2. 3–4Above the fold is a bare hero image or carousel with no statement of what is sold, or two or more overlays (cookie bar + popup + chat widget) cover the content on load.
  3. 5–6The visitor must scroll once, or read a secondary element, to work out what is sold; the hero is decorative (stock photo, abstract slogan) rather than explanatory.
  4. 7–8The offer and the next action are both identifiable without scrolling; at most one element competes with them (cookie bar, promo strip, chat bubble) and it closes in one tap.
  5. 9–10Above the fold names the product, says who it is for, and shows one next action; at most one primary and one secondary CTA; no overlay obscures the hero; headline and body text are legible at default zoom.
Requires
SCREENSHOT — mobile viewport (412px)
If absent
Without a mobile render the above-the-fold view is unknown. Score at low confidence inside the neutral band, state that the viewport was not captured, and do not claim an element is or is not visible.

Headline clarity×2

headline_clarity

Whether the largest text on the page states what is sold and to whom, in the visitor's language rather than the company's.

  1. 0–2No H1, or the H1 is the company name alone, or it is an image with no text alternative, or it describes something the page does not sell.
  2. 3–4The H1 is a brand slogan or feature jargon that cannot be decoded without reading body copy, or several H1s compete on the same page.
  3. 5–6The H1 is understandable but generic — it would fit a competitor unchanged ("Quality you can trust", "Powering growth").
  4. 7–8The H1 states the product or outcome and is specific to this business (a competitor could not paste it verbatim); at most one abstract term is used.
  5. 9–10The H1 names a concrete outcome and the audience in under 12 words with no unexplained jargon, and the sub-headline adds mechanism or proof rather than restating it.
Requires
DOM SIGNALS (buttons, CTAs, forms, headings, images) · PAGE CONTENT (extracted text)
If absent
Without the extracted heading structure the "largest text" cannot be identified — a paragraph read from flattened text is not an H1. Score at low confidence in the neutral band and say the heading structure was unavailable. Never claim "no H1" from missing evidence.

CTA effectiveness

cta_effectiveness

Whether a visitor who is ready to act finds one obvious action, understands what it will do, and can reach it without hunting.

  1. 0–2No call to action anywhere on the page, or every CTA is disabled, broken, or leads off-site to an unrelated destination.
  2. 3–4The only CTA sits below the fold, is buried in navigation, is rendered as plain text, or is a phone number/email with no tap-to-act behaviour.
  3. 5–6A CTA appears above the fold but its label is generic ("Submit", "Learn more", "Click here"), or three or more equally weighted CTAs compete for the same click.
  4. 7–8A single primary CTA is visible without scrolling on mobile, its label states the outcome, and no more than two competing CTAs appear above the fold.
  5. 9–10Exactly one primary CTA, repeated with the same label and styling at each decision point, its label naming the outcome ("Get my free audit", not "Submit"), visible above the fold on mobile with a tap target of at least 44px.
Requires
DOM SIGNALS (buttons, CTAs, forms, headings, images) · SCREENSHOT — mobile viewport (412px)
If absent
DOM signals are the source of truth for which buttons exist; the mobile render is the source of truth for whether they are above the fold. With either missing, score at low confidence in the neutral band and state which half is unknown. Never report "no CTA found" when the DOM was not read.

Trust signals

trust_signals

Whether a first-time visitor is given verifiable reasons to believe the business is real, competent, and safe to transact with.

  1. 0–2No testimonials, reviews, policies, company identity or contact route — or claims that are demonstrably fake (duplicate stock-photo faces, dead award links).
  2. 3–4One weak signal only: a generic "as seen in" strip, a security badge image with no issuer link, or a contact form as the sole route to a human.
  3. 5–6Trust claims exist but are unattributable — anonymous testimonials ("— J.D., happy customer"), unlinked logo walls, round unsourced numbers ("10,000+ customers").
  4. 7–8At least two independent and attributable trust categories — e.g. reviews carrying reviewer identity AND a published guarantee/refund/privacy position — plus working contact details.
  5. 9–10Named customers with attributable detail (full name plus company or city, photo or verified review source), a named third-party proof (press, certification, audited figure), a reachable human channel (address, phone, registered entity), and a stated refund or guarantee position.
Requires
DOM SIGNALS (buttons, CTAs, forms, headings, images) · PAGE CONTENT (extracted text) · SITE FACTS (policy links, contact routes, footer, per-form fields)
If absent
Trust evidence is textual and structural. Without the page text, the markup and the site facts, absence cannot be distinguished from non-extraction. Score at reduced confidence in the neutral band; do not assert missing testimonials or missing policies.

Mobile readiness

mobile_readiness

Whether the page is usable on a 412px phone without zooming, horizontal scrolling, or mis-tapping.

  1. 0–2Unusable on a phone: layout does not render, a desktop-only table or menu is required, an interstitial cannot be dismissed, or zoom is disabled on illegible text.
  2. 3–4Horizontal scrolling is required, text needs pinch-zoom to read, elements overlap, or a fixed-width desktop layout has simply been scaled down.
  3. 5–6Readable but cramped — body text between 12px and 16px, tap targets between 30px and 44px, or a sticky bar/chat widget covering part of the primary CTA.
  4. 7–8Layout reflows cleanly with no horizontal scroll; at most one interactive target is undersized or one fixed element crowds the viewport.
  5. 9–10No horizontal overflow, body text at least 16px, every interactive target at least 44px with at least 8px spacing, sticky elements under a quarter of the viewport, and form fields using the correct input types.
Requires
SCREENSHOT — mobile viewport (412px) · RENDER METRICS (overflow, tap targets and font sizes measured at 412px)
If absent
Mobile readiness is a rendering property. With no measurement, describe only what the screenshot plainly shows and never state a pixel size, a tap target size or the absence of overflow as fact. With no mobile render at all, score at low confidence in the neutral band and state that the 412px viewport was not captured. A responsive meta tag is not evidence that the layout works.

Page speed perception

page_speed_perception

How quickly the page becomes usable on a mid-tier mobile device on a typical connection, measured rather than felt.

  1. 0–2Lighthouse mobile performance below 30, LCP over 6s, or the main content never renders inside the measurement window.
  2. 3–4Performance 30–49, LCP 4.0–6.0s, CLS above 0.25, or INP above 500ms — the wait is long enough that visitors abandon before first paint of content.
  3. 5–6Performance 50–69, LCP 3.0–4.0s, or CLS 0.10–0.25 — a visible wait or a visible layout shift during load.
  4. 7–8Performance 70–89 with LCP at or under 3.0s and no single Core Web Vital in a failing band.
  5. 9–10Performance 90 or above with LCP at or under 2.5s, CLS at or under 0.1, and INP at or under 200ms.
Requires
LIGHTHOUSE PERF (real mobile measurements)
If absent
Speed is the one dimension with a real instrument. If Lighthouse did not return, DO NOT substitute an impression of heaviness from the screenshot: score at low confidence in the neutral band and state that no measurement was collected.

SEO basics

seo_basics

Whether the page gives search engines and answer engines the minimum structured facts needed to index it and quote it correctly.

  1. 0–2No title, no headings, no meta description and no canonical — or the page blocks indexing (noindex/robots) while serving as a commercial landing page.
  2. 3–4Title or H1 missing or duplicated, no meta description, no structured data, and alt text on under a quarter of content images.
  3. 5–6Title present but templated or generic ("Home | Brand"), meta description missing or auto-truncated, no JSON-LD, alt coverage between 25% and 60%.
  4. 7–8Title, meta description, a single H1 and a canonical URL are all present and specific to the page; some valid structured data; alt coverage at or above 60%.
  5. 9–10Unique descriptive title (≤60 chars) and meta description (≤160 chars), exactly one H1 over a sensible H2 outline, valid JSON-LD matching the page's actual type, canonical URL, and meaningful alt text on at least 90% of content images (decorative images with an empty alt do not count against this).
Requires
DOM SIGNALS → meta/schema subset (title, meta description, JSON-LD)
If absent
Title, meta description, canonical and JSON-LD are invisible in rendered text and in screenshots. Without the meta/schema extraction, score at low confidence in the neutral band and state that head metadata was not read. Never report "no meta description" from an unread head.

Conversion flow×2

conversion_flow

Whether the path from arrival to the completed action is short, unblocked, and free of steps that give the visitor a reason to stop.

  1. 0–2The stated action cannot be completed — broken form, non-functional cart or booking, a CTA pointing at a 404, or no path from this page to any conversion at all.
  2. 3–4Hard blocks on the path: mandatory account creation before any value, more than 8 form fields, or a checkout/enquiry demanding information the page never explains.
  3. 5–6The path works but leaks: 5–8 form fields, at least one field the offer does not justify (company size for a PDF, phone for a newsletter), or the price only becomes visible after a form.
  4. 7–8The primary action completes in 3 steps or fewer, every field asked for is justified by the offer, and the main objection (price, timing, commitment) is answered before the CTA.
  5. 9–10The primary action completes in 2 steps or fewer with 4 or fewer fields, price/terms/delivery are stated before the commitment point, errors are inline and recoverable, and no account or payment detail is demanded before value is shown.
Requires
DOM SIGNALS (buttons, CTAs, forms, headings, images) · PAGE CONTENT (extracted text) · SITE FACTS (policy links, contact routes, footer, per-form fields)
If absent
Field counts and destinations come from the markup. Without them the funnel is guesswork: score at reduced confidence in the neutral band and state that form structure was not read. Never claim there is no form when forms were not read.

What we did not observe, we may not certify.

Seven signals are collected per audit. Confidence is derived from which of a dimension’s required signals actually arrived — the model gets no vote. A model that can assert its own confidence will assert high for a guess.

  • page_textPAGE CONTENT (extracted text)
  • dom_signalsDOM SIGNALS (buttons, CTAs, forms, headings, images)
  • meta_schemaDOM SIGNALS → meta/schema subset (title, meta description, JSON-LD)
  • site_factsSITE FACTS (policy links, contact routes, footer, per-form fields)
  • screenshot_mobileSCREENSHOT — mobile viewport (412px)
  • screenshot_desktopSCREENSHOT — desktop viewport (1280px)
  • render_metricsRENDER METRICS (overflow, tap targets and font sizes measured at 412px)
  • lighthouseLIGHTHOUSE PERF (real mobile measurements)
  • multi_pageADDITIONAL PAGES (deep audit)
ConfidenceDerived whenScore may fall inCounts for
Highevery required signal present0 – 101× weight
Mediumsome but not all present3 – 80.75× weight
Lownone present — inferred4 – 70.4× weight

The clamp cuts both ways on purpose. An engine that only capped the top would still invent failures — “no testimonials found” when the page structure was never read is a false accusation about a real business. Unobserved dimensions keep participating at reduced weight rather than being dropped, because dropping them would silently change what the number means between two audits of the same site. The shortfall surfaces as coverageinstead. The report itself quotes a stricter figure: the share of the rubric’s weight whose required evidence was actually collected.

Whether something exists is settled before any judgement. Policy links, contact routes, form fields, canonical tags and crawler rules are read from the page’s markup and the files it publishes. A finding those facts contradict is removed before the report ships, and the market score is calculated from per-check results in the same way as the overall score. Not finding something only ever means it was not found.

Weights are data, not opinion.

Base weights sum to 10. A vertical replaces the whole curve rather than nudging one value, so you can read a single column and know the entire weighting.

DimensionBaseEcommerceSaaSReal estateAgencylocal_businessPortfolio
First impression11111.512
Headline clarity21.52.51.521.51.5
CTA effectiveness11.51.51.511.51
Trust signals12121.51.51
Mobile readiness11.511.5121.5
Page speed perception11.511111
SEO basics111111.51
Conversion flow22221.51.51

Market modifiers then multiply on top. They make a different claim from a vertical profile — not “this is a different product” but “in this market this dimension costs you more conversions”.

MarketModifier
INMobile readiness ×1.25 · Page speed perception ×1.25
IDMobile readiness ×1.25 · Page speed perception ×1.25
NGMobile readiness ×1.25 · Page speed perception ×1.3
BRMobile readiness ×1.2 · Page speed perception ×1.2
ZAMobile readiness ×1.2 · Page speed perception ×1.25

Code owns the number.

The model returns per-dimension scores and its evidence. It is forbidden from emitting overall_score; if it does, the value is discarded.

effectiveWeight_i = weight_i × confidenceFactor_i
score_i           = clamp(modelScore_i, confidenceRange_i)

overall_score     = Σ(score_i × effectiveWeight_i) / Σ(effectiveWeight_i)
coverage          = Σ(effectiveWeight_i) / Σ(weight_i)

Audit-level confidence falls out of coverage: ≥0.85 high, ≥0.6 medium, otherwise low. Every dimension records what the model said, what shipped, whether it was clamped, and which evidence was missing — so a score is explainable line by line.

Graded against the market it actually sells into.

Detected from the audited site’s own signals — ccTLD, declared currency, hreflang, phone and postal formats, payment brands, regulatory identifiers — and never from the IP of whoever ran the audit.

MarketCurrencyChecksRegulatory
Global (baseline)USD102
IndiaINR195
United StatesUSD154
United KingdomGBP145
European Union (eurozone baseline)EUR156
United Arab EmiratesAED165
SingaporeSGD154
AustraliaAUD154
Global (baseline)USD102
BrazilBRL154
Global (baseline)USD102
IndonesiaIDR174
European Union (eurozone baseline) — serving DEEUR156
European Union (eurozone baseline) — serving FREUR156
Global (baseline)USD102
Global (baseline)USD102

Overrides run in both directions. The UK tightens the global company-identity check, because the Companies Act 2006 trading-disclosure regime makes a company number mandatory. The US relaxes it, because no federal statute requires publishing one. Auditing a US site as though it were breaking a law it is not subject to is the same class of error as asking a Brazilian site for a RERA number.

Facts with a shelf life.

Core Web Vitals thresholds, AI-crawler user agents, consent regimes, accessibility deadlines — all held as dated data, not as prose in a prompt.

The current bundle is 54 dated, sourced rules, generated 2026-09-12, each carrying a source URL and a review date. This is why an audit recommends optimising INP rather than FID — and why correcting a fact like that is a data edit and a version bump, not a prompt rewrite.

Does the score predict anything?

The test we hold ourselves to: audits where the owner marked a recommended fix as shipped, re-audited automatically after 30 days, same URL and same rubric version — measured against sites that were re-audited and shipped nothing.

Not enough data to publish yet — 0 completed 30-day pairs against a floor of 30.

We publish this at the same n ≥ 30 floor the benchmark index uses, and not before. A median over a handful of sites is an anecdote with a decimal point, and quoting one here would undermine everything above it.

Think a score is wrong?

A rubric you cannot argue with is a black box with extra steps. Quote the band you think applies and the element on your page that meets it. Corrections that hold change the rubric — and the rubric version changes with them.