TLDR
Instagram stores photos at a maximum width of 1080 px, crops anything outside 1.91:1 to 3:4, and recompresses every upload. Posts go blurry when the file fights that pipeline: too small, far too large, screenshotted, pre-compressed, or the wrong ratio. The fix is to upload exactly what Instagram serves: 1080×1350 px for portrait posts and carousels, exported as PNG or maximum-quality JPG, sent to your phone without a messaging app in between.
Why are my Instagram posts blurry?
Because Instagram never shows the file you uploaded. It shows its own copy, resized and recompressed, and the further your file is from what Instagram wants, the more that copy degrades.
Instagram publishes the rules in its Help Center:
Instagram's own advice follows from that table: use the latest version of the app and "upload a photo with a width of at least 1080 pixels with an aspect ratio between 1.91:1 and 3:4."
Read the table as a list of things Instagram will do to your image if you do not do them first. Each one is a chance to lose sharpness. A file at exactly 1080 px wide in a supported ratio skips the resize and the crop, and only the compression is left.
The six causes, in the order worth checking
We render carousel exports all day, and blurry results trace back to the same short list. Check them in this order, because the early ones are both the most common and the fastest to rule out.
1. The file is smaller than 1080 px wide. An 800 px image stays 800 px on Instagram's servers and is then stretched across a phone screen with far more pixels than that. It looks soft everywhere. Check the pixel dimensions of the file, not how it looks in your gallery.
2. It is a screenshot. A screenshot of a design, or of a photo open in another app, captures your screen's rendering rather than the original, usually at the wrong size and with interface chrome cropped off by hand. Export the real file.
3. It travelled through a messaging app. Sending slides to your phone through a chat app often recompresses them before Instagram ever sees them. Move files with AirDrop, a cloud drive, or a "send as file" option.
4. It was a compressed JPG to begin with. Instagram compresses every upload. A JPG saved at low quality already has artifacts, and the second pass compounds them, most visibly around text and hard edges.
5. It is far larger than 1080 px. A 4000 px photo gets sized down by Instagram, with Instagram's choice of resampling. Photographs survive this well. Designs with small text do not: thin letterforms lose their edges. Resize to 1080 px yourself, where you can see the result.
6. The ratio is wrong. Anything outside 1.91:1 to 3:4 is cropped, and in a carousel the orientation you choose applies to every slide, so a mismatched slide is cropped and scaled to fit the first one. Scaling means softness. The ratio rules are in our guide to mixed aspect ratios in a carousel.
If all six check out and the post still looks soft, look at it on a second device before changing anything. A problem that shows on one phone only is that phone, not the post.
Why does Instagram ruin photo quality?
It trades quality for speed, on purpose. Every photo is stored at a size and compression level that loads fast on a poor connection, and there is no setting that exempts your account.
What you control is how much work you leave for Instagram to do. A file that is already 1080 px wide and in a supported ratio needs no resizing and no cropping, so the only loss is one pass of compression on a clean source. A file that is oversized, off-ratio, and pre-compressed takes three hits.
There is one relevant setting. In the app, go to your profile, tap Menu, find Media quality under Your app and media, and turn on Upload at highest quality. Instagram documents it for reels and notes that higher-quality uploads may take longer. Switch it on and leave it on. It does not lift the 1080 px limit for photos, so it complements the right export; it does not replace one.
Why carousels blur more than photos
A carousel of designed slides is mostly text, and text is the hardest thing to compress. A photograph hides softness in its own texture. A 28 px caption on a flat background shows every artifact.
Three carousel-specific failures sit on top of the general six:
- Type that is too small. Text that is tiny at 1080 px wide does not survive compression and reads as blur even when the file is technically sharp. Body text needs to be legible on a phone at arm's length. This and six other problems are in our list of Instagram carousel design mistakes.
- One odd slide. Nine slides at 1080×1350 and one at 1080×1080 means one of them gets cropped to match. Export the whole set at one size.
- Preview and export that disagree. Some tools draw the editor preview and the exported file through different render paths. The preview looks crisp; the file does not. Open an exported slide at 100% zoom before you upload it, at least once per tool.
How to export so Instagram has nothing to fix
The widths and ratios come straight from Instagram's limits. The format advice is ours: PNG is lossless, so the only compression your text ever sees is Instagram's.
Pick the size before you design, not at export (a carousel maker that opens every canvas at 1080×1350 makes the choice for you). A layout built at 800×1000 and scaled up at the end is soft before it leaves your computer. Why 1080×1350 is the default, and how the 3:4 profile grid crops it, is covered in the Instagram carousel size guide.
Stories and reels blur for different reasons
Stories and reels run through a video pipeline, and the limits above describe feed photos. If your stories or reels look soft, the feed-photo fixes only partly apply. What does carry over: turn on Upload at highest quality, start from a file at the surface's native shape (9:16 for both), and avoid screenshots and files forwarded through chat apps. For reels, Instagram's stated minimums are 30 frames per second and 720 pixels of resolution.
Sharp by construction
The manual path works: design at 1080×1350, export PNG at 100%, check a slide at full zoom, move the files to your phone without recompressing them, and upload from an up-to-date app with highest-quality upload turned on. Do that every time and blur stops being a mystery.
It is also five places to slip, on every post. xcarousel removes the ones on the design side. The editor is a canvas at the real pixel dimensions, and the export is that same canvas captured directly, so there is no second render path that could disagree with what you approved. Slides come out at exactly 1080×1350, or 1080×1080 if you switch ratio, with no scaling step to get wrong. Instagram will still compress them, as it compresses everything. It just will not have anything to fix first.