Site health
Updated
Health is a number from 0 to 100 for each site you scan, and for each of five modules of it: Security baseline, Performance, SEO, Accessibility and Consent. It shows where to look first. This page explains exactly how it is worked out, so you can predict what a fix will do to it.
What Health is, and what it is not
- It is observational. It describes what your latest scans found. It is not a certification, an audit or a legal opinion, and nothing in the product presents it as one. The four labels next to a number say where to look: Needs attention, Review suggested, Nothing major found and No result.
- 100 means nothing that costs points was found. It does not mean the site is perfect, because a scan checks what it checks. The “why” panel says so next to the number.
- A missing result is not a zero. A module that produced no usable result is grey, has no number and is left out of the average.
- It is not live. Health changes when a scan finishes, never in between (apart from a result getting old, see Freshness).
How a module’s Health is worked out
A module starts at 100 and loses points for every distinct issue it found. An issue is one rule on one thing, the same unit the Issues view shows, not one finding per page.
Only open findings count. Suppressed and resolved findings cost nothing.
| Counted at | Points lost at full weight | Scaled by breadth? |
|---|---|---|
| Critical | 25 | No, always full weight |
| High | 10 | Yes, between 50% and 100% of the weight |
| Medium | 4 | Yes |
| Low | 1 | Yes |
| Info | 0 | Not applicable |
Breadth is the share of the pages the module checked on which the issue was seen. The cost of a high, medium or low issue is its weight multiplied by 0.5 + 0.5 × breadth. An issue seen on one page in a hundred costs about half its weight; one seen on every page costs all of it. An issue that belongs to the whole site, such as a missing response header, has a breadth of 1.
Unconfirmed issues count one level lower. A finding that “needs verification” is counted a step down: critical becomes high, high becomes medium, medium becomes low and low becomes info. If an issue has both confirmed and unconfirmed occurrences, the higher of the two counts. An unconfirmed critical issue is therefore never counted as a critical one.
A critical issue caps the module at 49. However few points were lost, a module with a critical issue cannot reach Review suggested. The “why” panel says so and shows the number the module would have had without the cap.
The floor is 0. The number is a whole number. Each issue’s cost is rounded to the nearest hundredth of a point once (a half rounds up), the costs are added up, and the result is rounded to a whole number (a half rounds up). The panel prints the same hundredths, so “20.5 points lost” always belongs to a Health of 80, never 79.
A worked example
SEO, 20 pages checked, every check completed:
| Issue | Counted at | Breadth | Points lost |
|---|---|---|---|
| A: high, seen on 20 of 20 pages | High | 1.0 | 10.00 |
| B: medium, seen on 4 of 20 pages | Medium | 0.2 | 2.40 |
| C: low, seen on 10 of 20 pages | Low | 0.5 | 0.75 |
| D: unconfirmed high, belongs to the site | Medium | 1.0 (a site) | 4.00 |
| Total | 17.15 |
100 - 17.15 = 82.85, so SEO Health is 83, Nothing major found (green). The panel reports one high issue (10 points), two medium issues (6.4 points), one low issue (0.75 points) and “1 issue counted lower because it needs verification”.
Now Performance, 10 pages checked:
| Issue | Counted at | Breadth | Points lost |
|---|---|---|---|
| A: critical, seen on 1 page | Critical | full | 25.00 |
| B: high, seen on 5 of 10 pages | High | 0.5 | 7.50 |
| C: medium, seen on 2 of 10 pages | Medium | 0.2 | 2.40 |
| D: medium, belongs to the site | Medium | 1.0 (a site) | 4.00 |
| E: low, seen on 10 of 10 pages | Low | 1.0 | 1.00 |
| Total | 39.90 |
100 - 39.90 = 60.1, which rounds to 60. But there is a critical issue, so Performance Health is 49, Needs attention (red).
A site with those two modules, Security baseline and Accessibility both at 100, and Consent without a result has an overall of (83 + 49 + 100 + 100) / 4 = 83, Nothing major found, “Based on 4 of 5 modules”, and the note “1 module needs attention”. With Consent at 100 as well it would be 432 / 5 = 86.4, so 86.
Performance pages
Performance is the one module that does not measure every page a scan finds. A Lighthouse run is slow, so Page Lookout runs it on a fixed list of Performance pages for each site.
- The default list is the home page and the pages closest to it, up to 20 per site. Your organization’s limit can differ from 20.
- It is chosen at the first scan and kept the same after that, so a result today is compared with the same pages next week and the trend means something.
- You can edit the list. Add pages that a scan has found, or remove pages. At least one page always stays.
- A removed page is not read as fixed. Findings that came from a page you removed show as Not looked at, not as Fixed, in the first comparison after the change.
The Performance Health number is worked out from these pages, so the breadth of a Performance issue is the share of the Performance pages it was seen on.
Levels and colours
| Number | Level | Colour |
|---|---|---|
| 80 and above | Nothing major found | Green |
| 50 to 79 | Review suggested | Amber |
| below 50 | Needs attention | Red |
| no number | No result | Grey |
The colour depends on the number and nothing else. Colour is never the only signal: every level has its own icon and words.
The overall, and “N modules need attention”
A site’s overall is the mean of the modules that have a result from the last 30 days, rounded (a half rounds up) and coloured by the same bands. It reads “Based on N of 5 modules”.
An average can hide a problem: an overall of 83 can include one module at 49. So whenever a module is at Needs attention, the overall says “1 module needs attention” (or “N modules need attention”) beside the number, and nothing red hides behind a green one.
What counts as a result
A module has no result (grey) when it was not requested in the scan, did not run, failed, or fewer than 80% of its tasks completed. At 80% or more it gets a number from the work that was done, and the panel says how many checks did not complete.
If the newest scan of a module gives no result, the module keeps its last real result, and its tile adds a note that the latest scan gave no result, and why. A module that has never had a result is grey, with the reason.
Freshness
Each module’s result comes from its own newest scan that produced a number, so modules scanned at different times each show their own.
| Age of the result | Shown as | Counted in the overall? |
|---|---|---|
| up to 7 days | (nothing) | Yes |
| more than 7 days | Stale | Yes |
| more than 30 days | Out of date | No |
An out-of-date module keeps its number and colour on its own tile, with a note that it is not counted in the overall. Because the overall is worked out when you look at it, it can step when a result passes 30 days without any new scan.
The change figure
“Health 82, up 6” compares the overall with the site as it stood just before the newest result arrived. A site’s overall combines modules scanned at different times, so “the previous scan” is not simply the previous run’s overall. Modules the newest scan did not touch are on both sides of the comparison and cancel out.
What to expect:
- A module’s first result can move the figure. If the newest scan gave Performance its first result, the earlier overall had four modules and the new one has five, so the average can fall or rise because a module joined it. The header then says “Includes the first result of Performance”.
- Results ageing out can step it. When a module that the newest scan did not touch passes 30 days, it leaves the overall, and the figure can step, usually by a small amount, at the same moment the overall’s number does.
- There is no figure when there is nothing honest to compare: the first result of a site, or an earlier state without any result.
- Each module’s own change is against its previous result.
Where Health appears
- Site header (Overview): a pill such as “Health 72 up 6, Review suggested”. It opens the “why” panel: the working per module, the points lost per level and the five rules that cost the most. While a scan is queued or running, the previous numbers stay with a “Scan in progress” note.
- Results by module (under the header): one tile per module with its number, change, a line on what cost the points, a line of its last ten results (a scan with no result is a hollow ring, not a zero) and a link to the open findings behind it. A neutral line under the tiles, such as “3 visual changes in the latest scan”, leads to Visual changes. It carries no colour because visual changes are not part of Health.
- Sites list: a Health column (the overall badge and five module marks), a filter by level and sorting by the number. A site with no result sorts last in both directions.
- Dashboard: the “At a glance” tile counts the sites in scope at each level and links to the Sites list filtered to that level. Narrowed to one site, it shows that site’s badge.
- A scan’s page: the Health frozen when that scan ended, with the badge and a number per module. It never changes afterwards, however many scans follow. It reads “Appears when the scan finishes” while the scan runs, and “This scan has no Health” for a scan that asked for none of the five modules.
- The PDF report: a Health summary right under the header, with the overall, “Based on N of 5 modules”, a number per module and, for a module without one, why. It is a copy of the stored result, never recomputed.
The alert
An alert rule of the kind “Health turns to Needs attention” tells your organization’s administrators when a site, or one module of it, moves into Needs attention (below 50). You find it in the alert rule form next to Finding count, New or changed findings and Scan outcome.
- What to watch: the overall, any module, or one of the five modules. “Any module” raises one alert per scan, listing every module that turned.
- It fires once, on the scan that moves a result into Needs attention. A site that stays there for ten scans tells its administrators once.
- It fires for the first result a site ever gets when that result is already at Needs attention, and after a gap: an earlier result more than 30 days old no longer counts as one.
- It does not fire while a result stays at Needs attention, when a module has no result, when a scan failed and produced no Health, or when the earlier result was produced under different rules (the numbers are not comparable, and the next scan compares like with like).
- A module is compared with its own previous result; a scan that gave it no number is stepped over. The overall is compared with the site as it stood just before the scan’s results.
- The e-mail names the target, the number and the level before, for example “Performance Health: 41, Needs attention (was 77, Review suggested)”, with one link to the scan.
- As with every alert, it covers only the sites a member can see.
Who sees what
Health follows the same rule as everything else a member reads: only the sites they can see. The Sites list and the dashboard counts cover the visible sites only, and there is no organization-wide Health number.
What is not included
- Visual changes and page discovery are not part of Health. Visual comparison is an extra verification layer rather than an assessment of quality, and discovery produces no findings. They keep their own screens.
- No tuning. The weights, the bands and the thresholds are the same for everyone. There is no setting to make a rule count more or less, or to change what is amber.
- Rules can change. If Page Lookout ever changes how Health is worked out, results already stored keep the rules that produced them and are never rewritten. The change figure is left out for the first comparison after such a switch, and a Health alert does not fire on a move between two sets of rules.