Performance is a feature — and in e-commerce, it's revenue. Our audits keep finding the same handful of issues responsible for most slow experiences, so here's the short list that actually matters.
LCP: it's almost always the image
Nine times out of ten, a slow Largest Contentful Paint is a hero image that's too large, not preloaded, or served from a slow origin. Serve modern formats (AVIF/WebP), size images to their container, preload the hero, and put assets on a CDN. That alone often takes LCP from 4s to under 1.5s.
INP: death by a thousand handlers
Interaction to Next Paint punishes heavy JavaScript on the main thread. The fixes are unglamorous: less JS shipped, fewer third-party scripts, debounced handlers, and moving work off the interaction path. Framework-level wins like server components help enormously.
CLS: reserve the space
Layout shift is a discipline problem: every image needs dimensions, every ad slot and embed needs a reserved box, and fonts need a matched fallback so text doesn't jump when the webfont loads.
We bake these into our starter templates so every project begins green. If your scores are stuck orange, an afternoon of profiling usually pays for itself many times over.