Spring Collection
Discover the latest arrivals.
we have a slow site, how can we make it faster?), [particularly ambitious clients](https://www.linkedin.com/in/iris-wezenberg-4774b534/) ask
how can we bake web performance in from the start?This post comes from a specific bit of advice I gave a client recently. Their design system sits on top of a highly permissive CMS. Editors have a lot of freedom—which is great—but it means the system often does not know, or cannot tell, if a component will render above or below the fold, on or off screen, or whether it will appear once or many times on the page. This makes things like `loading=lazy` and `fetchpriority=high` awkward: if an image might be an LCP candidate, then `loading=lazy` is bad news; if several images might be LCP candidates, then `fetchpriority=high` on all of them is bad news, too—when everything is high priority, nothing is. And so my take is this: **when all you can do is all or nothing, _do nothing_.** ## Tools and Context `loading=lazy` only helps if you apply it to things the user does not yet need, but apply it to something needed immediately and you may have made the page worse. Similarly, `fetchpriority=high` only helps if you use it to identify one likely winner among a field of contenders: apply it to all contenders and you have not clarified anything, you’ve just added noise. These are not magic make it faster attributes, they are hints, and hints are only useful when they are specific and contextual. ## Dumb Design Systems A design system (or any system, really) should never try to know more than it really does. Imagine a reusable card component: ```html
Discover the latest arrivals.
+>
Discover the latest arrivals.
```
If you know this is _the_ LCP candidate, then that is a sensible hint! But if
the CMS allows three of these near the top of the page, then you end up with:
```html
```
At that point, you are no longer really prioritising anything. The browser is
already trying to work out which requests matter most. If your design system or
CMS cannot confidently identify one winner, it shouldn’t flood the network
claiming that several things are equally urgent. **When everything is high
priority, nothing is.**
## The Browser Default Is Not Failure
Doing nothing here is not negligent, but normal. We didn’t even have these
primitives a few years ago. Omitting them is not some devolution; it is just
falling back to the norm. The browser discovers images, requests them, and
prioritises them as best it can. In ambiguous systems, that is often the most
honest and least harmful baseline. Put another way…
Given three options, and the first is taken away from you, would you rather:
1.