File size is four multipliers
GIF cannot compress motion the way video codecs do, so each frame is written out close to complete. The consequence is a file that grows as the product of four quantities: seconds of runtime, frames per second, pixels per frame, and colors in the palette. Reduce any one and the whole product falls; reduce them in the right order and it collapses, mostly without visible damage.
The common mistake is swinging one giant hammer, usually scaling the clip into a postage stamp, and accepting the mush. You get better results from several small cuts, each checked against the size readout before making the next. What the GIF keeps that loop fast because everything runs locally: change a setting, read the new number, keep or revert, with no round trip to anybody's server between attempts.
Pull the levers in this order
- Trim the runtime. The lever nobody respects and the strongest of the four. Cut the dead air before and after the beat that matters, placing the exact boundary frames with arrow-key steps; going from 8 seconds to 4 takes roughly half the file with it.
- Lower the frame rate. Most clips read as smooth anywhere in the 10 to 15 fps band, and a 30 fps source dropped to 12 sheds more than half its frames outright. Slow footage tolerates the bottom of the band; fast motion wants the top.
- Cut the palette. Try 128 colors for real footage or 64 for flat content, and nudge dithering up slightly if a gradient starts showing seams. Both settings usually look identical to the source at a glance.
- Downscale last. Halving the width removes three quarters of the pixels, so this lever is brutal, but it is also the only one viewers notice directly. Save it for when the cheaper three have not closed the gap; 600 to 720 wide covers most demos.
Working to a number
Real-world ceilings cluster tightly. Slack and Reddit stay comfortable somewhere under 2 to 5 MB. A GitHub README just wants the smallest file that still communicates. Email is the strictest room of all: senders commonly aim for roughly 500 KB to 1 MB per GIF, because total message weight drags on deliverability and every kilobyte counts against it.
Whatever the target, the procedure does not change. Start from sane defaults (tight trim, 12 fps, 128 colors), read the estimate, pull the next lever, read again. Close to the line? One more second off the trim or a couple of fps usually finishes the job. Far over? Downscale and you drop a whole tier at once. And when even a disciplined GIF refuses to duck under the ceiling (a busy ten-second clip that has to land near 1 MB, say), stop arguing with 1989: the Output Format switch exports the same edit as a silent H.264 file, where motion compression does the shrinking for you and a bitrate control sets the budget directly. The switch shows up in browsers with a built-in encoder (Chrome, Edge, Safari, with Firefox varying), and the encode is as local as the GIF one.
Where small tips into broken
The goal is the smallest file that still does its job, and overshooting is easy. Guardrails worth keeping:
- Stay above roughly 8 fps unless the clip is nearly still; below that, motion stops looking economical and starts looking broken.
- Stay above roughly 32 colors for anything containing faces or gradients, the territory where banding turns ugly and dithering cannot fully rescue it.
- Downscale rather than crop when the aim is fewer pixels. Cropping changes the composition; scaling keeps the full frame, only smaller. When a tighter composition is actually what you want, the crop tool is pinned to preset ratios (1:1, 9:16, 4:5, 4:3, 16:9), which keeps the output from stretching.
- When quality outranks the last megabyte, shorten the clip instead of strangling the palette, and let dithering carry the gradients.
Any file, any machine
Bring whatever recording you have: MP4, MOV, WebM, AVI, MKV, M4V, plus whatever more obscure formats your browser happens to decode. Phone clips, screen captures, and meeting exports all follow the identical four-lever path, on Mac, Windows, ChromeOS, or Linux, in any of the major browsers, without an account or a watermark entering the picture. An overweight GIF itself qualifies too: drop it in and the same four levers re-encode it lighter, no original video required.
The processing never involved a network to begin with, so after the page loads you could cut the connection entirely and keep exporting. Your video stays on your disk, your GIF appears next to it, and nothing in between saw either one.