How to do it, step by step
- Crop to the final shape first Decide 4:5, 1:1 or 9:16 before anything else and crop to it in your editor. Letting the platform crop on upload costs you the framing you chose, and cropping after a resize wastes pixels you already paid for.
- Finish the edit, then resize once Do all your colour, exposure and retouching at full resolution. Resize as the very last step, in one move, to 1080 pixels on the short edge. Repeated resizes soften an image more than a single larger one.
- Sharpen lightly after resizing, not before Downscaling softens edges, so a small amount of sharpening applied after the resize restores what the resize took. Sharpening before resizing produces halos that the resize then bakes in.
- Convert to sRGB on export Set the colour profile to sRGB rather than Display P3 or Adobe RGB. Wide gamut files render desaturated wherever the profile is ignored, which is most places a social image ends up.
- Export as JPEG at maximum quality Save at the top quality setting, not at a size-optimised one. You are producing the source for the platform's own compression, so it should be as clean as possible even if the file is a few megabytes.
- Upload the file directly, over a stable connection Post from your library, not from a screenshot, a chat app copy or someone else's feed. A weak connection can cause an app to fall back to a smaller upload, so use wi-fi where you can, then check the posted result at full screen.
The settings that survive
There are five variables and only five. Everything else people argue about online is downstream of these.
| Setting | Use | Why |
|---|---|---|
| Short edge | 1080 pixels | The target the feed serves at. Smaller gets enlarged, much larger gets shrunk hard |
| Aspect ratio | 4:5, 1:1 or 9:16, decided before you crop | An unsupported ratio is cropped or padded for you, and never the way you would have done it |
| Colour profile | sRGB | Wide gamut renders flat wherever the profile is ignored |
| Format | JPEG at maximum quality | Universally accepted, and the platform re-encodes to JPEG anyway |
| Sharpening | A little, applied after the resize | Resizing softens edges; sharpening first creates halos that survive the resize |
Two things are deliberately absent from that table. There is no magic file size, because the platform re-encodes regardless. And there is no format that avoids re-compression, which is why a PNG upload is not the trick it is often claimed to be.
If you want to know what the platform is doing to the file and why these five settings are the ones that matter, the companion page is why do my photos look bad on Instagram.
Doing it on an iPhone
You can do all of this without installing anything, but the built-in editor cannot resize to a pixel width, so the practical routes differ slightly.
The no-app route. Shoot at 4:5 in the Camera app so the crop is already right, edit in Photos, then upload straight from your library. You skip the resize entirely and let the platform do it. This is fine, and it is what most people should do. Set Settings, Camera, Formats to High Efficiency to keep files manageable; the share sheet converts to JPEG when a destination needs it, which is covered in HEIC vs JPEG.
The controlled route. Edit in Lightroom for mobile or Darkroom, both of which let you export at a chosen long edge with a chosen colour space and quality. Set the long edge to 1350 for a 4:5 frame, colour space to sRGB, quality to maximum, then post that exported file. Add a small amount of output sharpening if the app offers it.
One iPhone specific trap: if you edit a photo in a third party app and save back to your library, check that you are then uploading the edited version rather than the original. Several apps save a copy, and the copy is not always the one at the top of your camera roll.
Doing it on Android
The same five settings, reached slightly differently, and with one extra variable that catches people out.
Google Photos edits non-destructively and saves a copy, which is the file you want to upload. It will not let you set an export width, so as on iPhone the simplest approach is to shoot in the final aspect ratio and upload directly.
Snapseed gives you real control for free. In its export settings you can set format to JPEG, quality to 100, and image sizing to a fixed long edge. Set the long edge to 1350, export, and upload that. Snapseed was rebuilt in May 2026 with a new interface, so older walkthroughs describe menus that have moved.
The extra variable is the camera app's own output format. Many Android phones default to a high efficiency format, and some also apply their own scene processing on top. If your photos look over-sharpened or over-saturated before you have touched them, that is the camera app, not the platform, and turning down the processing in the camera settings does more for final quality than any export tweak.
Finally, check whether your gallery app has a share compression option. Some manufacturer galleries reduce images on share by default.
Stories and reels are a different problem
Vertical video and full screen stories are compressed harder than feed photos, because they are served as a continuous stream rather than a single still. The strategy changes accordingly.
Use 1080 by 1920 and nothing else. Anything narrower is enlarged to fill the screen, which is very visible at full screen size.
Avoid fine detail and small text. Thin typefaces, dense patterns and heavy grain all break up under the encoder. If you are adding text, use a heavier weight and larger size than looks necessary.
Keep important content out of the margins. The interface sits on top of your image, so allow clear space at the top and bottom. The exact safe zones are in the Instagram photo sizes guide.
Upload a still as a still. If you want a photo in a story, post it as a photo rather than as a one image video, which goes through the video encoder and looks worse.
And be realistic. A story is shown for a few seconds at arm's length. It is the wrong place to fret over pixel-level quality, and the right place to worry about whether the subject reads clearly at a glance.
Four things that do not help
Every one of these circulates widely and none of them survives a side by side test.
Uploading a PNG. The platform converts to JPEG on the way in, so the only thing a PNG changes is the size of your upload. For photographs it is not a lossless shortcut, it is a slower one.
Posting to a story first, then saving and posting to the feed. This adds a compression pass rather than removing one. It is the opposite of what you want.
Turning on a high quality upload toggle. Where one exists it affects video bitrate rather than exempting stills from re-encoding. Worth switching on, but it is not the answer to a soft photo.
Uploading at 4000 pixels wide so the extra detail survives. It does not survive. The image is reduced to the serving size and the extra data is discarded, with the aggressive downscale usually looking worse than a controlled one you did yourself.
What does help is boring: right size, right shape, sRGB, maximum quality, one hop from original to upload.
The same rules on other apps
Every platform re-encodes. They differ in how much and in what they do to the shape.
| Where | What it does | What to send |
|---|---|---|
| Instagram feed | Resizes to about 1080 short edge, re-encodes as JPEG | 1080 short edge, sRGB, final crop |
| Stories and reels | Full screen, heavier compression | 1080 by 1920, simple detail, bold text |
| Messaging apps | Compress hard by default to save data | Use the document or original size option when quality matters |
| Often offers a size reduction on send | Choose actual size | |
| Print services | No compression benefit from resizing | Send the full resolution original, not a social export |
| Your own website | You control the encoder | Resize to the display width and encode once at high quality |
The last row is the important contrast. A file prepared for a social feed is deliberately small, and it is the wrong file to send to a lab. Printing wants everything you have, which is a separate procedure covered in how to print photos from your phone.
Questions people ask
How to post photos without losing quality?
Crop to the final shape, resize once to 1080 pixels on the short edge, convert to sRGB, sharpen lightly after the resize, and export as JPEG at maximum quality. Upload that file directly rather than a screenshot or a saved copy.
What size should I export a photo for Instagram?
1080 pixels on the short edge, in the ratio you are posting: 1080 by 1350 for 4:5 portrait, 1080 by 1080 for square, 1080 by 1920 for stories and reels. Larger files are shrunk, smaller files are enlarged.
Does uploading a PNG stop Instagram compressing my photo?
No. The platform re-encodes to JPEG whatever you upload, so a PNG only makes the upload larger and slower. Export a maximum quality JPEG instead.
Should I convert my photos to sRGB before posting?
Yes for anything going to a social feed or the web. Wide gamut profiles such as Display P3 render desaturated wherever the profile is ignored, and converting costs only a little saturation in the most extreme colours.
Why does my photo still look soft after I did all this?
Either the original was soft, or it was noisy. Compression struggles with noise and turns it into mush, and no export setting fixes missed focus. Check the original at full screen before blaming the upload.