How to read a Lighthouse score without lying to yourself
A 98 that means nothing, and a 74 that matters. Telling them apart.
A performance score is a summary of a summary, and summaries lose the thing you need. Two sites scoring 90 can behave completely differently for a real visitor, and knowing which numbers to look past is most of the skill.
Start with the fact that the score is a lab measurement on a simulated device and connection. It is repeatable, which is useful, and it is not your audience, which matters more. Field data from real visitors will disagree with it, sometimes by twenty points, and the field data is the one that reflects money.
Largest Contentful Paint is the number worth defending. It is usually a hero image or a headline, and the fixes are boring and effective: serve the image at the size it displays, in a modern format, without lazy-loading it. That last one catches people constantly — lazy-loading the hero image makes the score worse, because the browser now waits to discover it.
A 98 that means nothing, and a 74 that matters. Telling them apart.
Cumulative Layout Shift is the number most often gamed by accident. A page can score zero because everything shifts before the measurement window closes, and still feel jumpy to a human. Load the page on a slow connection and watch it with your own eyes; if the content moves under your cursor, the number is wrong regardless of what it says.
The Total Blocking Time number is where third-party scripts show up, and it is the one that responds to deleting things. Every chat widget, heat-map recorder and A/B testing script adds to it. On one client site, removing two abandoned tags — both installed for campaigns that ended in 2024 — cut blocking time by 340 milliseconds without changing a line of our own code.
The practical routine: run it three times, take the middle result, and only chase a number if you can name the visitor it affects. Chasing 98 to 100 is a hobby. Getting LCP under two seconds on a mid-range Android is a business decision.
Senior writer · Austin
Front-end developer who got tired of watching good designs die in implementation. Covers browser features and the unglamorous work of making pages fast.