The scene you see most often around image uploads is the camera or design-tool original going up untouched. On screen it looks fine, because the browser simply scales it down. That is precisely why the problem surfaces late — usually once a few hundred of them have accumulated.
What happens when you upload the original
WordPress does not merely store what you upload. It generates one file per registered size, and when the original is very large it also produces a scaled display version and uses that as the working image. The original stays on disk alongside all of them.
So one oversized original becomes several files. The design itself is sound — those files are the raw material for sending each visitor an appropriate size. The catch is that if the raw material is larger than it needs to be, every derivative grows with it. Backup size, migration time and storage cost all rise quietly.
The width you genuinely need
The reference is not device resolution but the widest slot the image ever occupies. An in-article image never exceeds the measure of the text column; a card thumbnail is capped by the card. Only a full-bleed hero needs a viewport-width figure.
On top of that, allow roughly 2x for high-density screens. Push to 3x and the file grows sharply while the visible difference falls away. In practice 2x is the sensible compromise.
Three steps before uploading
Fix the order once and you stop deciding it every time. First, resize to the pixel width the slot requires. Second, choose the format by the rule from the previous part. Third, look at it on screen at 100% — compression level is judged by eye, not by a number.
Add one habit to that: name files in lowercase Latin words that describe the content. Names with spaces or non-Latin characters get percent-encoded into long URLs and are much harder to find when you come to tidy up later.
Sharing these upload rules across the team makes every later optimisation far easier. The background reasoning is in the performance archive, and cleaning up images that have already accumulated falls within our optimization program.
Next part
With upload rules in place, we look at what happens after the upload. The next part covers the image sizes WordPress generates automatically — and how to find the ones nobody uses.