You export a five-second screen recording as a GIF and it comes out at 38 MB. The same clip as an MP4 is under a megabyte and looks better. This is not a bad exporter. It is the format doing exactly what it was designed to do in 1987.
What GIF actually is
Three constraints explain nearly every oversized GIF:
256 colours per frame. A GIF frame carries a palette of at most 256 entries. A photograph or camera footage contains tens of thousands of distinct colours, so the encoder has to quantise, and to hide the banding it dithers: scattering pixels of two palette colours to fake a third.
Dithering defeats compression. GIF compresses with LZW, which works by finding repeated runs of pixels. Dithering deliberately makes neighbouring pixels differ. So the trick that keeps a photo looking acceptable is the same trick that stops it compressing. If the goal is a small file that still looks right, choosing a modern format solves the problem that no amount of GIF tuning will.
No motion compensation. A video codec stores one full frame and then describes what moved. GIF stores each frame as its own image, with only a simple optimisation for unchanged regions. Thirty frames is thirty images. That keyframe-and-difference scheme is where nearly all of a video's efficiency comes from, and GIF has none of it.
Put those together and you get the rule: GIF is good at flat-colour, low-motion, small-dimension content, and terrible at everything else.
The three dials, in order
Duration. Size is close to linear in length. Three seconds of the interaction that matters beats twelve seconds that includes you finding the menu. Trim before converting, always.
Dimensions. Halving the width quarters the pixels per frame. Most GIFs are displayed in a chat window or a README at around 600–800 px wide; exporting at 1920 and letting the page scale it down wastes three quarters of the file.
Frame rate. GIF timing is stored in hundredths of a second per frame, and browsers historically clamp very small delays, so anything above about 50 fps is not even displayed as encoded. 10–15 fps is fine for UI demos, 20–24 for anything with real motion. Going from 30 to 15 fps halves the frames.
Change them in that order. Cutting length costs you nothing you needed; cutting frame rate is the one people notice.
Colour choices that matter
If your converter exposes them, two settings do most of the work:
Palette scope. A single palette for the whole animation compresses far better than a fresh palette per frame, and looks fine when the scene does not change much. Per-frame palettes are for clips where the colours shift.
Dithering. Turning it off makes flat-colour content smaller and usually cleaner: banding on a UI screenshot is invisible because the source was already flat. Leave it on only for gradients and photographic content, where the banding would be obvious.
When not to use GIF at all
Most places that accepted only GIF ten years ago now accept a silent auto-playing video. GitHub READMEs, most chat clients, Slack, and every browser support a looping muted MP4 or WebM, at roughly one tenth the size with full colour.
The honest checklist:
- Needs to work as an image, in an email, or in something old → GIF.
- Needs transparency with animation → GIF, or APNG/WebP if support allows.
- Anywhere else → a short muted video, converted once from the original.
A working recipe for a UI demo
- Record at the size it will be shown, not full screen.
- Trim to the seconds that carry the point.
- Export at 12–15 fps, 600–800 px wide.
- Single palette, dithering off.
- Check the result at display size, not zoomed in.
That typically lands a UI interaction between 500 KB and 2 MB: small enough for a README, a ticket or a chat message.
Video to GIF exposes the same dials: a start time and length, 5 to 20 fps, and a width from 320 to 800 px. It converts in the browser tab, which matters because screen recordings are also the clips most likely to show an internal dashboard. When the honest answer from the previous section is "this should not be a GIF", GIF to MP4 goes the other way, and the video is usually a fraction of the size.