ClarifyPix
Back to Blog

Instagram Kept Ruining My Photos Until I Figured Out These Three Things

I spent a year wondering why my photos looked fine in my camera roll but terrible on Instagram. The answer was not better equipment. It was understanding how Instagram's compression actually works and feeding it files it could not ruin.

ClarifyPix Team2026-06-18

June of 2025, I posted a photo of a sunset over the Shenzhen skyline to my Instagram. I had taken it with a Sony A7III. The raw file was 24 megapixels. I had edited it carefully in Lightroom. On my computer monitor, zoomed in to 100 percent, you could count the windows on the Ping An Finance Centre. I was proud of this photo.

An hour after posting, I checked it on my phone. The sky had compression banding. The building edges were soft. The windows I could count on my monitor had blurred into a gray smear. I showed it to a friend next to me and he said "that looks fine for a phone photo." I had shot it on a two thousand dollar camera. Instagram made it look like a 2015 smartphone snapshot.

That was the day I started taking Instagram compression seriously. Over the next six months, I tested over two hundred uploads with different settings, resolutions, file formats, and workflows. Here is what actually made a difference.

What Instagram does to your photo the moment you hit upload

Instagram does not store your original file. The first thing that happens after you upload is that Instagram re-encodes your image to its own specifications. If your file is too large in pixel dimensions, it downsamples it. If it is too large in file size, it applies heavier compression. If it is in the wrong color space, it converts it, often badly. All of this happens before anyone sees your post.

The target resolution for feed posts has been 2000 pixels on the long edge for a few years now. If you upload a 6000x4000 photo from your camera, Instagram crushes it down to 2000 pixels wide. The downsampling algorithm it uses is fast and aggressive. It favors speed over quality because it processes millions of uploads per minute. Your carefully edited 24 megapixel master file gets run through what is essentially a bulk converter. The result looks like it was processed through a bulk converter.

If you upload a photo that is below about 1080 pixels wide, Instagram stretches it up. The upscaling is a basic bicubic algorithm, not an AI model. It makes your photo bigger but it does not add any new detail. The result is a larger image that looks softer than the smaller original. You lose either way. Too big, you get compression artifacts. Too small, you get blur.

The 2000 pixel sweet spot

After testing roughly fifty uploads at different resolutions, the pattern became clear. Photos uploaded at exactly 2000 pixels on the long edge consistently looked better than photos uploaded at higher or lower resolutions. At 2000 pixels, Instagram does not need to resize your image at all for the main feed display. It just applies its standard JPEG compression, no resampling involved. That is as good as it gets on Instagram.

The tricky part is that most photos do not start at exactly 2000 pixels. A raw file from a modern camera is 4000 to 8000 pixels wide. An AI-generated image from Midjourney is typically 1024 to 2048 pixels. A photo pulled from a website might be 800 pixels. Almost nothing comes out of the source at exactly 2000 pixels. You have to resize intentionally before uploading.

For photos that are larger than 2000 pixels, the conventional wisdom is to resize down in Lightroom or Photoshop. That works fine. But for photos that are smaller than 2000 pixels, which includes most AI generated images and many photos pulled from messaging apps, simple resizing makes things worse. Stretching a 1024 pixel image to 2000 pixels with basic bicubic resizing is exactly what Instagram does. Doing it yourself beforehand just gives you a softer starting point for Instagram to compress further.

Where AI upscaling actually helps

This is where upscaling comes in. If your photo is below 2000 pixels, you want to bring it up to 2000 pixels with something better than basic resizing. AI upscalers like Real-ESRGAN were trained to predict what a higher resolution version of an image should look like. They add genuine new pixel detail rather than just averaging existing pixels together.

I tested this with a 1024x1024 Midjourney generation. I uploaded one version resized to 2000x2000 with Photoshop bicubic resampling, and one version upscaled to 2048x2048 with ClarifyPix 2x AI upscaling then slightly cropped to 2000x2000. The AI-upscaled version was visibly sharper on Instagram. The texture details that the AI model had added during upscaling survived Instagram's compression better than the original pixels did.

The cost for that difference was 2 credits and about four seconds of processing. Whether that is worth it depends on what you are posting. For a throwaway story, probably not. For a feed post you want to look its best, especially if people will zoom in, the difference is noticeable. I now upscale any AI-generated art I post to Instagram as a matter of routine.

The color space mistake I made for a year

Here is something nobody told me until I had been posting for over a year. Instagram displays everything in sRGB. If you export your photos in Adobe RGB or ProPhoto RGB or Display P3, Instagram converts them to sRGB on upload. And its color space conversion is not great. Adobe RGB photos often come out looking slightly desaturated and flat because Instagram squashes the wider color gamut into sRGB without proper rendering intent.

The fix is simple. Export everything in sRGB. Yes, ProPhoto RGB preserves more color information in your editing workflow. Keep using it there. But when you export for Instagram specifically, convert to sRGB as the final step. Do not let Instagram do the conversion for you. I made this change in my Lightroom export preset and my photos immediately looked punchier and more accurate on Instagram, even though I had changed nothing about the edit itself.

The same goes for the color profile of AI-generated images. Most AI tools output in sRGB by default, but some can be set to output in other color spaces. Check your export settings. If your AI tool gives you a choice, pick sRGB for anything destined for Instagram.

The file size ceiling nobody talks about

Instagram does not publicly document a specific file size limit for photo uploads, but through testing I found that files larger than about 1 megabyte get noticeably more aggressive compression than files under 1 megabyte. The threshold is not exact. I have gotten clean results with 1.2 megabyte files and terrible results with 0.9 megabyte files. But as a general rule, keeping your exported JPEG under 1 megabyte avoids triggering the heavy compression pass.

This creates a balancing act. You want high enough JPEG quality to preserve detail, but not so high that the file size crosses Instagram's threshold and triggers worse compression than a lower quality export would have. For a 2000x2000 pixel image, I found that exporting at about 76 percent JPEG quality typically produces a file between 600 and 900 kilobytes. That is the zone where Instagram tends to leave things alone.

Export at 100 percent quality and your 2000 pixel image might be 3 or 4 megabytes. Instagram will compress that aggressively and the result will look worse than if you had exported at 76 percent in the first place. Counterintuitive but true. I verified this with side by side uploads of the same photo at different quality levels. The 76 percent JPEG looked better on Instagram than the 100 percent JPEG every time.

What changed with the new portrait ratio

Sometime in 2025, Instagram shifted its default aspect ratio from square to 3:4 portrait. The ideal upload size became 1500x2000 pixels instead of 2000x2000. This matters because a 3:4 photo takes up more vertical space in the feed. More screen real estate means any quality issues are more visible.

A portrait photo at 1500x2000 needs 3 million pixels. A square photo at 2000x2000 needs 4 million pixels. The quality ceiling is slightly lower for portrait photos because of the smaller pixel budget. This makes pre-upscaling even more important for portrait orientation posts. If your source image is a vertical crop from a wider photo, you might be starting with even fewer pixels than you think. An uncropped 3:4 area from a 1024x1024 AI generation is only about 768x1024. That is nowhere near the 1500x2000 ideal.

For portrait photos destined for Instagram, upscale your source image first, then crop to 3:4, then export at 2000 pixels tall. The upscaling step gives you enough pixels to crop without dropping below the target resolution. This workflow costs one extra step but the alternative is posting a photo that Instagram stretches up from 1024 pixels to 2000 pixels, and that looks exactly as bad as it sounds.

What I do for every post now

I have settled into a routine that takes maybe two minutes per photo. It is not the most efficient workflow in the world, but it produces the most consistent results I have gotten from Instagram, and I have tried a lot of approaches.

First, I make sure my source image is at least close to 2000 pixels on the long edge. If it is significantly smaller than that, I run a 2x or 4x AI upscale depending on how far below the target I am. Second, I crop to the final aspect ratio in my photo editor. Third, I export as sRGB JPEG at approximately 76 percent quality, targeting under 1 megabyte file size. Fourth, I transfer the exported file to my phone and upload from there. Uploading from desktop sometimes triggers different compression behavior than mobile uploads. Mobile uploads consistently produce better results.

Is all of this ridiculous for a social media post? Maybe. But if I spent three days generating and curating an AI artwork, or if I drove two hours and waited for golden hour to capture a landscape, the extra two minutes of export workflow are worth it. Instagram will never show your photo at its full quality. The goal is not perfection. The goal is minimizing how much additional damage Instagram does on top of the baseline compression everyone gets.

If your photos look fine on your phone but disappointing after posting, the problem is probably not your camera or your editing. It is the file you are giving Instagram. Feed it a 2000-pixel sRGB JPEG under one megabyte and it will do a lot less damage than if you let it figure things out on its own.