Last updated
Tips for Best Compression Results
- Start with the highest quality source GIF — compressing an already-compressed GIF degrades quality faster
- Use frame optimization for animations where most of the image stays static between frames
- Reduce color palette to 128 first — it's often invisible and saves 20–30%
- Try 15 fps before reducing quality — frame rate reduction is usually less noticeable than color loss
- Consider animated WebP if your target platform supports it — typically 30–50% smaller than optimized GIF
- For email, keep GIFs under 1 MB and test in Outlook (which only shows the first frame)
- Crop unnecessary whitespace around the animation before compressing
Examples
Example 1: Basic Compression Results
Typical compression results for common GIF types:
GIF Type | Original | Compressed | Reduction
--------------------------|----------|------------|----------
Simple logo animation | 450 KB | 180 KB | 60%
Screen recording (short) | 2.4 MB | 980 KB | 59%
Emoji / reaction GIF | 320 KB | 145 KB | 55%
Product demo animation | 5.1 MB | 1.8 MB | 65%
Loading spinner | 28 KB | 11 KB | 61%
Results vary based on content complexity, number of colors, and frame count. Animations with large static areas compress best.
Example 2: Color Palette Reduction
GIF supports up to 256 colors per frame. Reducing the palette is one of the most effective optimizations:
Original palette: 256 colors → File size: 1.2 MB
Palette reduction results:
128 colors → 890 KB (26% smaller, visually identical for most content)
64 colors → 650 KB (46% smaller, slight banding on gradients)
32 colors → 480 KB (60% smaller, noticeable quality loss)
16 colors → 310 KB (74% smaller, significant quality loss)
Recommended: Start at 128 colors and reduce until you see visible banding.
Example 3: Frame Optimization
Frame disposal optimization only updates changed pixels between frames instead of replacing the entire frame:
Animation: 30-frame loading spinner (only center 50px changes per frame)
Without frame optimization:
Each frame: full 400×400 image = 160,000 pixels updated
Total data: 30 × 160,000 = 4,800,000 pixels
With "do not dispose" frame optimization:
Each frame: only 50×50 changed area = 2,500 pixels updated
Total data: 30 × 2,500 = 75,000 pixels
Size reduction: ~94% for this type of animation