Compress images for Instagram

Nothing fails to upload on Instagram, it just re-encodes everything you post. Hand it the right dimensions and you lose far less.

Feed post
1080 px wide (1:1, 4:5 or 1.91:1)
Story / Reels
1080×1920, 9:16 portrait
Key setting
Highest-quality upload is off by default
Instagram re-compresses anyway, sizing it right first loses less

Target size 8 MB

Scales down proportionally, never crops. May shrink further if the target size demands it.
Compressed by default at near-lossless quality

Drop images or videos here

Or click to browse, or just hit Ctrl + V to paste a screenshot

Images: JPEG / PNG / WebP / GIF / BMP · Videos: MP4 / MOV / WebM / AVI

This page is not like the others

Everywhere else the problem is a hard cap: go over it and the upload fails. Instagram accepts almost anything, and then re-encodes it. You never see an error, you just notice the posted image looks worse than the one on your phone.

So what you control is not whether it passes, but what Instagram is given to work with.

Recommended dimensions

PlacementSizeRatio
Feed (square)1080×10801:1
Feed (portrait)1080×13504:5
Feed (landscape)1080×6081.91:1
Story / Reels1080×19209:16

They share one number: 1080 px wide. Anything larger is scaled down on Instagram's side regardless. Portrait 4:5 occupies the most screen space in the feed, which is why so many accounts default to it.

Why quality drops

1. The original does not help

Counterintuitive, but the same logic as LINE. A 4000 px, 8 MB camera file gets scaled to 1080 px and re-encoded with Instagram's parameters. Resize it yourself to 1080 px at high quality, around 500 KB to 1 MB, and Instagram's pass has far less scaling to do, so it damages far less.

2. Odd aspect ratios get rescaled

Upload something like 1234×987 and Instagram forces it into the nearest supported ratio. That rescale is quality lost for nothing. Crop to a standard ratio first.

3. The upload-quality setting is off

It lives under Settings → Account → Cellular data use, and it ships disabled. While off, Instagram pre-compresses to save bandwidth, so your image is compressed twice. Turning it on is the single highest-impact thing you can do.

The workflow

  1. Pick "Feed post (1080 px wide)" or "Story / Reels (1080×1920)" above.
  2. Drop the image in, the long edge scales to the target proportionally, never cropped.
  3. Before posting, turn on the highest-quality upload setting in the app.

This tool does not crop to ratio, only scale. If your original is not already 1:1 or 4:5, crop it in your phone's editor first, then bring it here to resize.

Frequently asked questions

Does Instagram have a file size limit?

It does, but you will almost never hit it. The real issue is that Instagram always re-encodes your image, and the result depends entirely on what you hand it. Give it the right dimensions and the loss is small; hand it a raw camera file and Instagram’s own parameters decide.

Why does 1080 px matter?

That is the maximum width Instagram displays a feed image at. Upload a 4000 px original and it gets scaled to 1080 and re-encoded anyway, the extra pixels only slow the upload and make the re-encode harder to predict. Resizing to 1080 px wide first usually comes out cleaner.

Why do my photos look blurry after posting?

Three usual causes: a non-standard aspect ratio forcing an extra rescale, an oversized original triggering more aggressive re-compression, and the "upload at highest quality" setting being off. The third catches most people out, it is off by default.

Where is the "highest quality upload" setting?

In the Instagram app: Settings → Account → Cellular data use. Turning it on tells Instagram to upload the high-resolution version instead of pre-compressing to save bandwidth. It affects final quality more than most people expect.

Are Stories and Reels the same size as posts?

No. Feed posts are 1080 px wide; Stories and Reels are 1080×1920 (9:16 portrait). The wrong ratio gets cropped or letterboxed, so the two are separate options above.