Performance budgets that actually hold
Core Web Vitals improve when regressions fail the build. Here is how to set budgets teams do not route around.
- Written by
- Xalicon Engineering · Frontend practice
- Published
- Updated
- Reading time
- 6 minutes
Draft article
This article is written by the Xalicon team and is in editorial review. The reasoning reflects how we work today; the draft label means it has not yet had a final technical and editorial pass.
Why performance work regresses
Teams run an optimisation project, metrics improve, and six months later they are back where they started. Nothing was done wrong — a dependency here, an analytics script there, an image that skipped optimisation. Each change is individually defensible.
Without an automated gate, performance decays by default. The fix is not more discipline; it is making the regression visible at the moment it is introduced.
Set budgets on what users experience
Budget the metrics that reflect experience — Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift — and support them with a JavaScript transfer budget, since script size is the usual root cause.
Measure on a throttled mid-range mobile profile rather than a developer laptop. The gap between the two is where most performance problems hide.
- Largest Contentful Paint under 2.5 seconds
- Interaction to Next Paint under 200 milliseconds
- Cumulative Layout Shift under 0.1
- JavaScript transferred on the critical path under 170KB compressed
Enforce in the pipeline
Run Lighthouse CI against preview deployments and fail the build when a budget is exceeded. A warning that appears in a log nobody reads changes nothing; a failing check starts a conversation.
Allow explicit, documented exceptions. A team that cannot override a budget when there is a genuine reason will eventually disable the check entirely.
Validate against real users
Lab measurements catch regressions; field data tells you what customers actually experience. Collect real user metrics segmented by device class and connection, and treat the 75th percentile as the number that matters.
When lab and field disagree, the field is right. Usually it means your test profile is more generous than the devices your customers use.
- Performance
- Web
- CI