Here's the frustrating truth about Instagram: it re-compresses every image you upload. Even if you upload a perfect JPEG, Instagram's servers will re-encode it — and if your file is already heavily compressed, the second round of compression compounds the quality loss. Blocky gradients, muddy shadows, colour banding on skies.
The fix is counterintuitive: send Instagram a high-quality file, not a small one. Let it do one clean compression pass, rather than compressing on top of your already-compressed version.
Instagram targets roughly 150–200 KB for feed photos and 1–3 MB for Stories/Reels. If your upload is smaller than the target, Instagram re-encodes it anyway to standardise quality across its CDN.
Instagram uses JPEG compression internally. If you upload a PNG, it gets converted. If you upload a WebP, same thing. So format doesn't matter much — what matters is the quality of the source file you give it.
Get the dimensions right first, or Instagram will crop and resize before compressing:
| Format | Recommended size |
|---|---|
| Square post | 1080 × 1080 px |
| Portrait post (best reach) | 1080 × 1350 px |
| Landscape post | 1080 × 566 px |
| Story / Reel | 1080 × 1920 px |
| Profile photo | 320 × 320 px (upload at 400×400+) |
If your image is larger than these dimensions, Instagram will scale it down. That's fine — scaling down loses less quality than scaling up.
For Instagram uploads, use JPEG at 85–92% quality. This is the sweet spot:
Avoid going below 80% for Instagram. At lower quality settings, Instagram's second compression pass becomes visible — especially in gradients (blue skies, smooth backgrounds) and sharp edges (text, logos).
Option 1 — Use the Social Media Optimizer (fastest):
This handles everything in one click.
Option 2 — Manual control:
Shoot at the highest resolution available. Start with the best source material. Instagram has less to destroy if you give it more to work with.
Don't compress twice. Edit your photo, export once at high quality, then upload. Don't compress for web, then upload that to Instagram. Go back to the original export.
For text and graphics, use PNG. If your image contains text, logos, or sharp geometric shapes, upload as PNG. Instagram still converts it, but a clean PNG source gives it cleaner data to work with than a JPEG where the text has already been through lossy compression.
For dark images, go higher quality. Instagram's compression is harshest on dark areas, shadow detail, and subtle gradients. For night shots or moody portraits, bump quality to 90–92%.
Avoid double-editing. If you're using Lightroom or Photoshop, export at 90%+ JPEG and upload directly. Don't run that export through another compressor before Instagram.
For Stories and Reels (1080 × 1920 px), the same principle applies, but Instagram is generally less aggressive about compressing video-first formats. Still:
Instagram will compress your image no matter what. Your job is to give it the cleanest possible source so the result still looks sharp.
The formula: correct dimensions + JPEG at 85–90% quality = minimal degradation after Instagram's re-compression.
Anything smaller or lower quality just means Instagram has worse source material to work with, and the result on screen will show it.