Measure the feeling, not just the number
Lab scores are useful, but users don’t experience percentiles — they experience moments: the first paint, the first tap, the first scroll.
Before optimizing anything, write down the three moments that define your product’s first minute. Then measure only those. A team with three honest numbers beats a team with a dashboard of forty.
Ship less JavaScript, not faster JavaScript
The cheapest millisecond is the one you never ship.
- Render static sections as static HTML — most of a marketing site needs no runtime at all.
- Hydrate islands, not pages. A carousel needs script; a heading does not.
- Audit dependencies quarterly. The date library from 2021 is probably
a one-line
Intlcall now.
Only after the diet is done does optimization make sense.
Make waiting feel intentional
Perceived speed is design work as much as engineering work:
- Reserve layout space so nothing jumps when data arrives.
- Prefer skeletons that match the final shape over spinners that match nothing.
- Animate entrances once, briefly, and never block input while doing it.
A 400ms wait that looks deliberate feels faster than a 200ms wait that flickers.
Cache like you mean it
Most repeat visits should cost almost nothing:
- Immutable, hashed assets with year-long cache headers.
- HTML that revalidates quietly in the background.
- Fonts served from your own origin, subset to what you use.
The second visit is where trust is built — it should be instant.
Budgets beat heroics
A performance sprint decays; a performance budget endures. Pick limits a reviewer can check in seconds — total transfer on the landing page, script bytes per route, image weight per section — and wire them into CI so a regression is a failed build, not a postmortem.
Start this week
Pick the one page that earns you money, measure its three moments on a cheap phone, and delete something. Fast sites aren’t built in migrations; they’re kept fast in code review.
