← All posts

Tweet Screenshots for Instagram: Sizes, Crops and a Workflow That Scales

· 7 min read

Instagram imposes three constraints at once: it displays feed images at 1080px wide, it will not show anything taller than 4:5 in the feed, and it re-encodes every upload as JPEG. A phone screenshot of a tweet fails all three simultaneously — wrong width, wrong shape, and exactly the kind of small grey text that JPEG handles worst.

None of that is hard to work around. It just has to be decided before you export, not after.

What size should a tweet image be on Instagram?

1080 × 1350 for the feed, 1080 × 1920 for Stories and Reels, 1080 × 1080 for a square carousel. Instagram serves feed images at 1080px wide and scales everything to fit that.

Upload something wider than 1080 and Instagram downscales it, which is fine and often better than fine — a slight downscale sharpens text. Upload something narrower and it gets upscaled, which is never fine.

Three frames drawn to scale: a phone screenshot at 9:19.5, an Instagram feed post at 4:5, and a Story at 9:16, each with a tweet card inside. Phone screenshot 9:19.5 Feed 1080 × 1350 · 4:5 Story / Reel 1080 × 1920 · 9:16
All three are drawn at the same width, because Instagram normalises everything to 1080px wide. The phone screenshot is the only one whose shape the feed will not show.

Why does a phone screenshot of a tweet look bad on Instagram?

Because it is the wrong shape and the wrong resolution at the same time, and the JPEG re-encode punishes exactly the parts you care about.

What are the numbers you actually need?

The card renders 598px wide. Export at 2× and it is 1196px — just over Instagram’s 1080. That is the entire calculation, and it is why 2× is the default.

With the ratio set to 3:4, a 2× export is 1196 × 1594. With 9:16 it is 1196 × 2126. Both are comfortably above the 1080 × 1350 and 1080 × 1920 targets, which means Instagram is downscaling in both cases and never guessing at pixels it does not have. The guide’s export settings section explains where the ratio, the corner radius and the multiplier each apply.

A bar chart comparing export widths — 598px at 1×, about 1000px for a tweet inside a phone screenshot, 1196px at 2× and 1794px at 3× — against Instagram’s 1080px display width. 1× export 598px Tweet in a phone shot 1000px 2× export 1196px 3× export 1794px Instagram shows 1080px
Anything left of the dashed line gets upscaled by Instagram. A 2× export clears it with a little room, which is why a slight downscale — the cheapest sharpening there is — happens instead.

Feed, Stories or carousel — which settings for each?

Feed, single image

Set the card ratio to 3:4 and export at 2×, giving 1196 × 1594. Instagram will crop that to 4:5 in the feed, and here is why that is fine rather than a problem: going from 3:4 to 4:5 at a fixed width removes about 6% of the height, split top and bottom — roughly 50px at each end. The 3:4 export centres the card vertically inside the frame, so those 50px are padding, not text.

If you would rather nothing be cropped at all, leave the ratio on Original and drop the PNG onto a 1080 × 1350 canvas in any editor. The transparent corners mean you can put any background behind it, which is the version that looks deliberate.

A 3:4 export beside the same image cropped to 4:5, showing that the bands removed at the top and bottom contain padding rather than the card. Exported at 3:4 1196 × 1594 shaded = removed by the feed Shown at 4:5 1080 × 1350 the card is untouched
Going from 3:4 to 4:5 at a fixed width removes about 6% of the height, split between the two ends — roughly 50px each on a 1594px image. Because the 3:4 export centres the card, that is padding.

Stories and Reels

Set 9:16 and export at 2×: 1196 × 2126, exactly the Story shape.

Story interface covers roughly the top and bottom 250px of a 1920-tall canvas — the profile row up top, the reply bar at the bottom. The 9:16 export centres the card vertically, so it lands inside the safe zone by construction. Keep your own captions and stickers out of those bands too.

If you have the original post, add a link sticker. It is the one place on Instagram where crediting the source is a single tap for the reader.

Carousels

Which theme survives Instagram’s compression best?

Light for small text, Lights out for a dark grid. Dim is the one that suffers most, because #15202B is exactly the sort of low-contrast dark blue that JPEG banding shows up in.

JPEG spends its bits on luminance edges and discards subtle gradients, particularly in dark areas. Light theme — near-black text on white — is the highest-contrast case and comes through cleanest at any size.

Lights out holds up well too: pure black has no gradient left to band, so what you get back is close to what you sent.

Dim is the risky one. It looks excellent on screen and can pick up faint blocking around the text after compression, most visibly on a slow connection where Instagram serves a harder-compressed copy.

That said, exporting at 1196px rather than 900px matters more than which theme you pick. Get the resolution right first. Which appearance settings matter walks through the three themes side by side.

A workflow for a whole series of cards

Decide the destination first, set the appearance once, and then change nothing but the text.

  1. Decide feed (3:4) or Story (9:16) before you start. Exporting a set twice because you changed your mind is the main way this gets slow.
  2. Set the theme once, and set the number format to match your audience rather than the tweet.
  3. Paste the first tweet, fill in the counts, export at 2×.
  4. For every card after that, change only the text and the numbers. Theme, ratio and export size persist between exports, so the set stays consistent without you thinking about it. If a count is meant to read as none at all, enter 0 — the engagement fields hide the number and leave the icon, which is what X does.
  5. Rename the files in slide order before you upload. Instagram’s picker follows the order you tap, and getting slides four and five the wrong way round is the most common way a good carousel goes bad.
  6. Write the caption with the author’s @handle and a link, and fill in Instagram’s alt text field with the tweet text. That field is the only place where the words inside your image are machine-readable — for screen readers and for Instagram itself.

Credit, alt text and what not to do

Name and handle on the card, handle and link in the caption, tweet text in the alt field. Never change what someone wrote.

Getting the credit right takes about ten seconds and it is what readers expect. Keep the display name and @username accurate on the card itself, repeat the handle in the caption, and link to the original post wherever a link is possible.

Instagram’s “Edit alt text” field — under Advanced settings when you post — is worth filling in every time. Paste the tweet text into it. Screen readers get the content, and so does Instagram’s own indexing.

What not to do is simpler: do not edit what someone wrote and present it as theirs. Every PNG exported here carries an invisible note in its file metadata identifying it as a synthetic image, and the terms prohibit stripping it or using the tool to impersonate anyone. If you want the shortcut route instead, how to screenshot a tweet covers capturing the real thing on every device.

Set the ratio to 3:4 or 9:16, export at 2×, and you are already at the right size.

Open the tool

The settings behind this

The sections of the guide this post relies on:

Keep reading