Why Does My Photo Look Blurry After Uploading?
Short answer
The platform re-encoded it. Every upload is downscaled to the service's maximum dimensions and recompressed at their quality setting, and a 4000-pixel photo squeezed down hard loses detail. Resize to the platform's display width yourself before uploading, so their resize does nothing and only one compression pass happens.
On this page
A photograph that is pin-sharp in your camera roll goes up on a site and comes back soft, with mushy edges and blotchy areas in the smooth parts. Nothing is wrong with the original, and nothing is wrong with your screen.
The platform re-encoded it. Every service that accepts images processes them on arrival — downscaling to their maximum dimensions and re-compressing at whatever quality setting balances their storage costs against complaints. You uploaded one thing; the page is showing you something else.
The two things that happen on upload
Downscaling. The service caps dimensions. Upload a 4000-pixel photo to somewhere that displays at 1200 and it gets resized, usually by an automated process tuned for speed rather than quality.
Recompression. The file is re-encoded at the service’s quality setting. Your photo was already a JPG, so this is a second lossy pass over an image that has already lost information. The artefacts from the first pass get treated as image detail by the second, and the damage compounds.
Those two together explain nearly every case. The practical implication is the useful bit: if you do the resize yourself, their resize has nothing to do, and you control the one compression pass that matters.
Work out which is happening to you
| What you see | Cause |
|---|---|
| Soft overall, fine detail gone | Downscaled from much larger |
| Blotchy patches in skies or shadows | Aggressive recompression |
| Grey halo around text or sharp lines | Recompression, plus a bad format choice |
| Visibly pixelated, blocky | Upscaled from something too small |
| Fine on desktop, soft on phone | High-density display, not enough pixels |
The last row is worth separating out, because it is not a compression problem at all. A phone screen renders a 400-pixel-wide slot using 800 or more physical pixels. Supply only 400 and it is stretched. The fix is more pixels, not better compression.
Resize before uploading
This is the fix, and it is nearly always sufficient.
Find out roughly how wide the image will be displayed, double it for high-density screens, and resize to that before you upload. Rounded, practical figures:
| Use | Upload at (long edge) |
|---|---|
| Profile picture | 800–1000px |
| Post or article image | 1600–2000px |
| Full-width banner | 2000–2560px |
| Email attachment | 1600px |
Uploading at these sizes means the service’s downscaler either does nothing or does very little, and only one compression pass has touched the image.
Our image compressor does the resize and the compression in one pass in your browser, which also avoids the irony of uploading a photo to a website to stop websites degrading it. The order matters and is covered in how to compress images: crop, then resize, then compress, and only once.
Compress once, at the end
The single most damaging habit is repeated saving. Each JPG save re-encodes the previous encode’s output, and the losses accumulate in a way that is invisible for the first save or two and obvious by the fifth.
Three rules that follow:
- Keep the original. The camera file, the HEIC, the PNG export. Never edit and re-save your only copy.
- Export fresh each time. Going from the original to a new JPG is one lossy pass. Opening a JPG, adjusting it, and saving is two.
- Do the compression last. After cropping, after colour adjustments, after resizing.
If you compress an image down to a target and then the platform compresses it again, you have two passes regardless. The best you can do is make your pass a gentle one — 85% quality rather than 60 — so there is less damage for the platform’s pass to amplify.
Messaging apps are the worst offenders
Photos sent through messaging apps come out markedly worse than anything else, because those apps optimise for transfer speed on poor connections above all else. A photo is commonly reduced to around 1600 pixels on the long edge and encoded at a quality setting well below what you would choose.
Most apps offer a way around it: send the photo as a file or document rather than as a photo. The file arrives untouched. It is slower and uses more of the recipient’s data, which is exactly why it is not the default.
This matters beyond the immediate send. A photo someone forwarded to you has been through that process, possibly several times if it has been forwarded repeatedly, and it cannot be restored. If you need a good copy, ask for the original — sending large videos on WhatsApp covers the same problem on the video side.
Format choices that make it worse
PNG for a photograph. Several times larger, no better, and most platforms convert it to their own format on arrival anyway. You have uploaded a large file to receive a compressed one.
Screenshots as JPG. Text and interface edges are where JPG fails visibly. If you are uploading a screenshot, keep it PNG; why screenshots are bigger files covers the trade-off.
HEIC where it is unsupported. Either rejected outright, or converted by a server-side process with no quality setting you can influence. Convert it yourself first with our HEIC to JPG converter and you control the quality.
The full decision is in PNG vs JPG vs WebP.
When the original was never sharp
Worth checking before blaming the upload. Open the original at 100% zoom, not fit-to-screen. Fitting a 4000-pixel photo to a 1500-pixel window hides softness that becomes obvious at full size.
If it is soft there too, the problem is upstream — camera shake, missed focus, low light pushing the ISO up, or a photo that was already a downscaled copy. No upload setting recovers that.
What to expect
Resizing to the right dimensions and compressing once at 85% quality before uploading removes the visible softness in most cases, because the platform’s processing then has almost nothing left to do.
The honest limit is that you do not control the server. Some services recompress everything regardless of what arrives, and on those the result is their quality setting and nothing you do changes it. Uploading a correctly sized file still helps, because a smaller, cleaner input gives their encoder less to ruin.