Photo & Video10 min read

Why Your Photos Look Worse on Instagram (And How to Fix It)

The photo that looked sharp in your camera roll turns soft and blotchy once it is posted. That is compression, resizing and colour conversion happening on upload. Here is exactly what Instagram does to your image and how to export so it survives.

You spend twenty minutes editing a photo. It looks great in your camera roll. You post it, open your own profile, and the sky has gone blotchy, the edges look slightly smeared and the whole thing has lost its bite.

Nothing went wrong. Instagram did to your image exactly what it does to every image, and most of the damage is avoidable by exporting differently.

What Actually Happens on Upload

Between tapping share and the image appearing in a feed, your file goes through a pipeline. Each stage is lossy.

Stage 1: Resize. Instagram serves images at fixed display widths. The feed has settled on 1080 pixels wide for years. If you upload a 4032 pixel wide photo straight off an iPhone camera, roughly three quarters of the horizontal resolution is discarded by an automated downscale that has no idea what part of the image you care about.

Stage 2: Re-encode. The resized image is compressed as a JPEG at a quality level Instagram selects, tuned for delivery cost across billions of images rather than for your photo.

Stage 3: Format conversion. iPhones shoot HEIC by default. That gets converted, adding another encode step before the one above.

Stage 4: Colour handling. Modern iPhone photos are captured in Display P3, a wider colour space than the sRGB most web delivery assumes. Depending on the path, the conversion can shift saturated colours.

Every stage independently costs detail, and they compound. Worse, if your file was already a heavily compressed JPEG, Instagram is now compressing compression artefacts, which is the fastest way to get the blotchy look.

Why the Damage Lands Where It Does

JPEG compression works by splitting the image into 8 by 8 pixel blocks and discarding the fine detail within each block that the eye is least likely to notice. That model has predictable weak spots, and they explain every complaint people have about Instagram quality.

What breaksWhyWhere you see it
Smooth gradients go blotchySubtle tonal steps fall below the threshold the encoder keepsClear skies, studio backdrops, sunset gradients
Fine texture turns to mushHigh-frequency detail is the first thing discardedHair, fabric weave, foliage, sand
Halos around hard edgesRinging artefacts at high-contrast boundariesText over image, branches against sky, buildings against light
Saturated colour gets patchyChroma is stored at lower resolution than luminanceNeon signs, bright red clothing, deep blues
Shadow areas get muddyLittle tonal variation to preserve, so blocks flattenDark backgrounds, night photography
Grain becomes digital noiseFilm grain is high-frequency detail the encoder cannot keep cheaplyAny heavily grained edit

That last row catches a lot of people. Adding heavy grain in editing is a good look, and it is also the single most expensive thing you can hand a JPEG encoder. The compressor cannot preserve fine random noise at a reasonable file size, so it approximates it into blotches. Grain that looks beautiful in your editor routinely looks like sensor noise after upload.

The Export Settings That Fix Most of It

Export at exactly 1080 pixels on the short side. Not 4032, not 2048. Do the downscale yourself in your editor, where the resampling is done well and you can sharpen afterwards. Uploading a huge file does not give Instagram more to work with. It just guarantees an automated downscale you had no control over.

The three sizes worth knowing:

  • 1080 x 1350 for a 4:5 portrait feed post. This is the crop that occupies the most vertical space on a phone screen, so it is the default worth using.
  • 1080 x 1080 for square.
  • 1080 x 1920 for Stories and Reels.

Convert to sRGB before export. If your editor offers a colour profile choice, pick sRGB. The conversion happens either way. Doing it yourself means you see the result on your own display and can push saturation back where it belongs, instead of discovering the shift after posting.

Export JPEG at high quality, not maximum. Somewhere around 85 to 90 percent is the sweet spot. Maximum quality produces a very large file that Instagram will re-compress anyway, and the extra size buys you nothing downstream. What matters is that your file has no visible artefacts going in, because Instagram compresses whatever it receives, artefacts included.

Sharpen after resizing, gently. Downscaling softens an image. A light sharpening pass at the final size restores the bite. Overdo it and the halos you create become obvious artefacts after Instagram's encode, so err low.

Go easy on grain and heavy texture. If the look needs grain, use less than feels right in the editor. It will read as stronger after compression, not weaker.

The In-App Settings Most People Never Turn On

Instagram deliberately downgrades uploads under some conditions, and two toggles control it.

Turn off data saver. Under Settings, in the media and data quality section, there is an option to use less mobile data. With it on, the app uploads a more compressed file when you are not on WiFi.

Turn on high quality uploads. In the same area there is a setting for uploading at the highest quality available. It is not always on by default.

Post over WiFi with a good connection. With the settings above corrected this matters less, but a poor connection can still push the app toward a smaller upload.

Do not screenshot to crop. A screenshot re-encodes the image at screen resolution and throws away everything above it. Crop in an editor and export fresh.

Avoid the round trip. Editing in one app, saving, re-opening in another, saving again, then applying an in-app filter stacks four lossy encodes before Instagram has even seen the file. Do your editing in one pass and export once.

Things People Blame That Are Not the Cause

Your phone camera. A 12 or 48 megapixel capture is far beyond what a 1080 pixel wide display needs. Resolution is not the bottleneck. The encode is.

Instagram singling out your account. The pipeline is automated and identical for everyone. There is no per-account quality setting.

Posting at the wrong time. This one circulates constantly and there is no mechanism behind it. Compression does not vary by hour.

Using an in-app filter. The filter is applied before the same compression everyone else gets. It does not add a penalty, though a filter that boosts saturation or adds grain gives the encoder a harder job.

Getting the File Right Before It Leaves Your Phone

Most of the fixes above are export decisions, which means the work happens before you open Instagram at all: crop to the right aspect ratio, resize once to 1080, sharpen lightly, and keep the edit to a single pass so you are not stacking encodes.

Filtr is an iPhone camera and editing app for that pass. It handles the shooting and the look in one place, which matters here mostly because it removes the app-to-app round trip that quietly re-encodes your image two or three extra times before upload.

What no editing app can do is undo Instagram's compression, because that happens on their servers after you post. Nothing on your phone controls that stage. The only lever any of us has is what the file looks like going in, and a clean, correctly sized, lightly sharpened 1080 pixel export survives that encode dramatically better than a 4032 pixel file with heavy grain.

The Short Version

  • Instagram resizes to 1080 pixels wide and re-encodes as JPEG. Both stages discard detail
  • Export at 1080 x 1350 for portrait, 1080 x 1080 for square, 1080 x 1920 for Stories
  • Convert to sRGB yourself so you see the colour shift before it happens
  • JPEG at 85 to 90 percent quality. Maximum adds file size, not surviving detail
  • Sharpen after resizing, and lightly, because halos become artefacts
  • Heavy grain is the most compression-hostile thing you can add. Use less than looks right
  • Turn off data saver, turn on high quality uploads, post on WiFi
  • Never screenshot to crop, and never round trip between apps before posting

Frequently Asked Questions

Why do my photos lose quality when I post them on Instagram?

Two things happen on upload. Your image is resized to fit Instagram display widths, commonly 1080 pixels for the feed, and then re-encoded as a JPEG at a quality setting Instagram chooses. Resizing throws away pixels and re-encoding throws away detail, and both happen after whatever compression your own export already applied. The visible result is soft edges, blotchy patches in smooth gradients and mushy fine texture.

What is the best image size to upload to Instagram?

Export at 1080 pixels on the short side for a square or portrait feed post, which means 1080 x 1080 for square and 1080 x 1350 for the 4:5 portrait crop that takes the most vertical space. Uploading something far larger does not add quality because it gets downscaled anyway, and uploading something smaller gets upscaled, which looks worse. Stories and Reels are 1080 x 1920.

Does uploading over WiFi improve Instagram photo quality?

It can. Instagram has a data-saving setting that reduces upload quality on mobile data, and on iPhone there is a Use High Quality Uploads option in the app settings. With data saving on and high quality off, the app deliberately sends a more compressed file. Turning data saver off and high quality uploads on, then posting over WiFi, removes that particular downgrade.

Why do the colours change after I post?

Usually a colour profile conversion. Modern iPhones capture in the wide Display P3 space, and images going through a pipeline that assumes sRGB can shift, most visibly in saturated reds, oranges and deep greens, which come out flatter. Converting to sRGB yourself before export means you see the shift on your own screen and can correct for it, instead of it happening after upload.

Try Filtr: AI Camera & Filters

Mentioned in this article. Download free from the App Store.

More Articles