“We will optimise it at the end” is how sites end up shipping four megabytes of hero video and a carousel nobody scrolls. Performance is not a task. It is a constraint, and constraints only work when they exist before the decisions they are meant to shape.
Three numbers, agreed up front
- Largest Contentful Paint under 2.5 seconds on a mid-range Android over a throttled 4G connection. Not on your laptop.
- Total page weight under 1 MB for a typical page, images included.
- No more than three third-party scripts without an explicit conversation about what each one earns.
Write them into the brief next to the deliverables. Now every request has a cost that everyone can see.
What changes when the budget is real
The hero video becomes a still with a play button. The icon font becomes six inline SVGs. The chat widget loads on interaction instead of on page load. Nobody has to argue about taste, because the budget is doing the arguing.
Where the weight usually is
- Images. Serve modern formats, size them for their container, and lazy-load anything below the fold.
- Fonts. Two families, four weights, subset to the characters you use, and always
font-display: swap. - Third-party tags. The single biggest source of unpredictable slowdowns, and the one nobody audits.
Measure on the real thing
Lab numbers are useful for catching regressions. Field data tells you the truth. Watch both, and check the seventy-fifth percentile rather than the average — the average hides exactly the users you are losing.





0 Comments