ONDUU / THE SCORE, EXPLAINED
What the Public Signal Score is, and what it is not
The number Website Health returns is not a grade for your business. It is a count of what a stranger can observe about your website from outside, weighted, out of 100 — with a second number saying how much of the picture could be seen at all. This page shows the whole rubric, because a score you cannot audit is a score you should not trust.
Run the free check01 / THE TWO NUMBERS
Read the score and the coverage together, or neither means much.
Website Health returns a Public Signal Score and an Evidence Coverage figure. The score says how well the signals it could observe came out. The coverage says how many of the sixteen it managed to observe at all.
The two are independent, and that is the point. A site that answered every request and did everything right scores high at high coverage. A site whose server did not respond scores nothing at zero coverage — not a low score, because nothing was seen, and an absence of evidence is never a finding. A high score at low coverage means the visible parts look good, and little was visible.
02 / HOW A ROW IS GRADED
Three outcomes, and a fourth that leaves the sum entirely.
The score is the earned weight over the observed weight, as a percentage. The coverage is the observed weight over the total weight of the rubric. Both are computed with integer arithmetic, so re-running the sum on a stored result reproduces the same number exactly, years later.
- PASS earns the row's full weight.
- NEEDS WORK earns exactly half of it — the row is not right, and it is not absent either.
- MISSING earns none of it.
- NOT PUBLIC removes the row from both sides of the division. It is not a pass and not a failure: the evidence was not visible from outside, so nothing was graded. This is the rule that stops the check punishing a site for a fact it could not check.
03 / THE RUBRIC IN FULL
Sixteen signals, four groups, every weight published.
These are all of them. Nothing is scored that is not on this list, and the weights below are the ones the code uses — a test compares this page against the rubric on every build.
- TRUST, 20 of 55 in total. HTTPS — 6 points of 55. http → https redirect — 4 points of 55. apex ↔ www coherence — 3 points of 55. Title and description — 3 points of 55. HSTS — 2 points of 55. Baseline security headers — 2 points of 55.
- SPEED, 10 of 55 in total. Response time — 4 points of 55. HTML weight — 3 points of 55. Mobile viewport — 3 points of 55.
- CONVERSION, 15 of 55 in total. Contact path — 5 points of 55. Missing-page handling — 4 points of 55. Clear headline — 3 points of 55. Social preview — 3 points of 55.
- AGENT FITNESS, 10 of 55 in total. robots.txt — 4 points of 55. Sitemap — 4 points of 55. Structured data — 2 points of 55.
04 / WHAT IT DOES NOT MEASURE
Three questions this number deliberately does not answer.
Until 3 September 2026 one score covered the website, the domain and the email records together, which meant a good website with an unprotected domain and a good domain with a slow website could return the same number. They are separate questions now, and only the website one carries a score.
- Whether the domain is protected — expiry, transfer lock, DNSSEC, nameservers, and whether DNS and mail sit with one provider. That is Domain Health, which reports findings rather than a score.
- Whether a stranger can send mail in your name — SPF, DKIM, DMARC and MX. That is Email Health, which has its own grade.
- Anything behind a login: your backups, your accounts, whether an enquiry is ever answered, whether the claims on the site are true. None of it is publicly observable, so none of it is scored anywhere on this site.
05 / WHY THE RUBRIC HAS A VERSION
A score is meaningless without the ruler that produced it.
Every stored result records the rubric it was scored under. The current one is psr-v6. When the rubric changes, it gets a new version rather than being edited in place, and old results keep theirs — so a score from August can still be reproduced exactly under the rules that produced it, and is never quietly re-interpreted under newer ones.
Cached results are pinned to the current version too: after a rubric change, a domain scanned last week is re-run rather than served an old number under a new name.