Sprite sheets take longer to update than separate icon files, every new icon means re-slicing and re-measuring background positions in a stylesheet that already has a dozen fiddly pixel offsets in it. So we tested whether it's still worth the setup for a typical client site with fifteen to twenty small icons, now that more of our clients' visitors are on faster connections than a couple of years ago.
It still is, mostly because of request count rather than raw file size. One request for a combined sprite beats fifteen separate ones even on a decent connection, especially for visitors on older browsers without much parallel connection support, which is still a meaningful chunk of traffic on some of our clients' analytics.
What actually changed our minds
We ran a rough side-by-side test, one build with fifteen separate icon files and one with a single sprite sheet, on a throttled connection meant to simulate a slower visitor. The difference wasn't dramatic on a fast connection, but it was noticeable on the throttled one, enough of a gap in perceived load time that it settled the question for us.
- Combined requests still win on total page load time even when total bytes transferred are similar, because of per-request overhead that doesn't show up if you're only comparing file sizes.
- The gap narrows on setups with better connection reuse, but doesn't disappear.
- For icon-heavy sites specifically, hover states doubling the sprite's practical icon count, the savings compound.
Making the maintenance less painful
The actual complaint about sprites was never the concept, it's updating one. We did start keeping a source Photoshop file with each icon on its own layer, so regenerating the sprite is an export action rather than a rebuild from scratch. Positions in the CSS are calculated from the layer's pixel coordinates directly rather than eyeballed, which has cut down on the "icon is two pixels off" bug that used to show up whenever someone hand-measured a new addition.
We also standardized icon sizes across projects where we can, 16px and 24px squares mostly, so a sprite sheet is a predictable grid rather than an irregular patchwork that's harder to reason about when adding a new icon later.
Not a dramatic finding, but worth periodically re-checking assumptions like this rather than just doing what we did last time out of habit. The web keeps changing underneath decisions we made a year or two ago, and a decision that was clearly correct then isn't automatically still correct now.