The thing nobody tells you: X doesn't keep your GIF
Here's the plot twist. When you post a GIF on Twitter, X takes it, throws it away, and replaces it with a silent looping MP4 it generates on its own servers. That little "GIF" badge in the corner is theater. What your followers actually watch is a re-encoded video.
Why this matters for a gif for Twitter: you're not optimizing for how the file looks on your desktop. You're optimizing for what survives a round trip through X's encoder. A 256-color GIF with aggressive dithering can look gritty or smeared once X re-compresses it, because you've already thrown away color data and then X squeezes what's left. The fix is to hand the encoder clean, generous input and let it do the compressing.
So the workflow is a little counterintuitive. You still make a real GIF, but you treat it more like a high-quality source clip than a tiny over-optimized reaction. Make a good GIF first, the way you would in our high-quality converter, and let X handle the diet.
The numbers X cares about
Twitter's GIF rules are stricter than most platforms, and they shift over time, so treat these as commonly cited targets rather than gospel. Stay inside them and your upload usually goes through without getting rejected on upload:
- File size: commonly cited as up to 15 MB on the web, and historically tighter (around 5 MB) from the mobile apps. Aim for under 5 MB and you're safe on every surface.
- Length: keep it to roughly 15 seconds. Shorter loops read better in a fast-scrolling feed anyway.
- Dimensions: width and height are typically expected between 8 and 1280 pixels. Going wider than 1280 buys you nothing, since X downsizes it.
- Frame rate: X re-encodes to its own playback, so 12 to 15 fps in your source is plenty. Motion stays smooth, the file stays small.
- Aspect ratio: roughly between 1:3 and 3:1. In practice, stick to 16:9, 1:1, or 4:5 and you'll never hit the edge.
The single most useful number here is 1280 pixels wide. That's the ceiling X displays at, so exporting a 1280-wide GIF gives the re-encoder maximum detail to work with without wasting bytes on resolution nobody sees.
Dimensions: build for the timeline, not your monitor
On a phone, the timeline is a narrow column. A wide 16:9 clip shrinks to a thin band with thumbs of dead space above and below it. That's fine for a screen recording or a landscape demo, but if your moment is a face, a product close-up, or anything vertical, you're wasting most of the screen.
Pick your ratio with intent and lock it so nothing stretches:
- 16:9 for screen recordings, gameplay, and anything you shot in landscape. It's the natural fit for desktop captures.
- 1:1 (square) for reaction moments and single-subject clips. It claims more vertical real estate in the feed than 16:9 and crops out distracting edges.
- 4:5 when you want the tallest footprint a single image gets before X treats it as portrait video. Great for mobile-first accounts.
- 9:16 only if the source is genuinely vertical. X will letterbox a tall GIF, so don't force it.
Our crop tool snaps to these exact ratios (1:1, 9:16, 4:5, 4:3, 16:9) so you're not eyeballing pixel math. Frame the subject, lock the ratio, done. Whatever you captured, you bring the video file in and crop from there.
Loops, trims, and the 15-second window
GIFs loop forever, so the smartest Twitter GIFs are built to loop cleanly. A clip that ends roughly where it started reads as one continuous motion instead of a hard cut and a jump. You don't need extra software to do this; you just need to choose your in and out points well.
This is where frame-accurate trimming earns its keep. Drop your in and out points on the timeline, then nudge each one a single frame at a time with the arrow keys until the loop seam disappears. A two-to-six second loop is the sweet spot: long enough to land the moment, short enough that it hasn't gotten old by the third pass. You have 15 seconds to work with, but you almost never need them.
Trimming tight does double duty. Every frame you cut is bytes you never ship, so a four-second loop is both punchier and dramatically smaller than the full ten-second take. If you're fighting the file-size ceiling, the fastest win is almost always a shorter clip, not heavier compression. Our guide to making a small GIF from video goes deeper on squeezing the last megabytes.
Why a local converter is the right call here
The GIFs that actually perform on X are usually the ones pulled from something you recorded: a screen capture of a bug, a clip from a livestream, a moment from a video you shot. That footage is yours, and it doesn't need to take a detour through some conversion server you've never heard of just to become a four-second loop.
What the GIF runs the entire conversion client-side, right in your browser tab. Nothing uploads, there's no account to make, and there's no watermark stamped across your post. You drag in an MP4, MOV, WebM, or basically anything your browser can decode, trim it, crop it, watch the estimated output size update live, and download. The footage never leaves your machine. Open the converter and you're working in seconds.
It's free and ad-supported, which is a small toll for never uploading your footage and never wearing a watermark on a public post. Posting to other platforms too? The same approach works for GIFs on Instagram and elsewhere; only the size and dimension targets change.