You exported at 2x PNG and ended up with a folder nobody can upload. What Figma is doing, what to change before export, and how to shrink the zip.

You hit Export all. PNG. 2x.
Ten minutes later the folder is 1.8 GB.
Slack won't take the zip. Your fan is loud. You're not even done sending files to the dev.
Figma did what you asked. Big PNGs. One per frame. No compression pass for the web.
That's it. That's the whole problem.
Figma exports a picture of your frame. PNG keeps every pixel. Transparency too.
Nothing wrong with that if you're editing. Bad if you're emailing 200 files to a client.
One phone screen at 2x might be 3 MB. Twelve landing sections? 40 MB before icons. Add dark mode variants and old exports you forgot to delete.
Small site, real numbers:
You're at ~70 MB on a good day. Keep shipping for a few weeks and 2 GB is normal.

Figma picks quality. You pick whether the folder can be sent.
At 1x, width and height are what you designed.
At 2x, both double. Pixel count goes up 4× (2 × 2).
At 3x, it's 9× the pixels of 1x.
File size follows. A 3x PNG is not "a bit" larger than 2x. It's another league.
One full-screen mobile frame (about 390 × 844 at 1x), exported as PNG:
| Scale | Rough size on disk |
|---|---|
| 1x | ~0.5 to 1.5 MB |
| 2x | ~2 to 6 MB |
| 3x | ~5 to 15 MB |
Now multiply by every screen, every state, every "just in case" export from last month.

2x for retina when the asset is actually shown big on a phone. Skip 3x on everything.
PNG when you need transparency or flat UI that has to stay sharp.
JPG for photos and full-bleed images. Same photo as JPG is often 5 to 10× smaller than PNG.
SVG for icons and simple logos. One file instead of three PNG sizes.
WebP when you run the site and browsers are fine with it. Skip it for random email attachments.
What I see in bad export folders:

PNG is not "best." It's "lossless." Use it when you need that.
Big frames. Export the slice you ship, not the whole playground artboard.
Heavy blur and shadow on the layer. That stuff bakes into the PNG. Simplify for export when you can.
Crap outside the crop still counts if it's inside the export box. Tighten the frame.
Ten button states × three breakpoints × 2x PNG. Export what goes live this week.
One preset for everything (PNG 2x on all layers) is how folders hit 2 GB.
Set export per component: SVG icons, JPG photos, PNG only where you need alpha.
Before you re-export the whole file, open the folder and sort by size.
On Mac: Finder → Size. On Windows: Details, sort by size.
You'll see a few files eating half the folder.
Watch for:
@3x on tiny UIcopy / v2 duplicatesFix the worst 5 files. Sometimes that's enough to get under Slack's limit.
You don't always need new software. You need a better preset on the 14 MB hero.
@2x so nobody guesses.How wide will this show on the site? In CSS pixels.
If it's 400px wide on the page, you don't need a 2400px-wide file. Export around 1.5× to 2× the display width for retina.
Quick picks:
| Where it goes | Export |
|---|---|
| App icon (24px on screen) | SVG, or tiny PNG |
| Card image (~360px wide) | JPG 1.5x, or PNG 2x if it's UI |
| Full-width hero | JPG 1.5x to 2x; PNG only if you need transparency |
| PDF / print | Higher scale is fine |
Dev says "it's blurry"? Check display size first. A 400px slot with a 400px 1x file looks soft on retina. A 400px slot with a 3x monster file looks sharp and wastes space.
Select a frame or layer. Look at the bottom-right Export section. Hit + to add a setting.
You can stack multiple exports on one layer (SVG + PNG 2x). That's how you stop using one global preset for the whole file.
For a batch: mark layers with export settings, then Export from the file menu or right-click the selection.
Export for lets you target iOS, Android, or web. Don't blindly take the highest scale it suggests. Match your real site.
These change, but the pain is the same:
assets/ is hundreds of MB.You feel it first in Slack or email. The fix is still smaller files, not a bigger upload button.
Even good exports are often bigger than they need to be on disk. PNGs from design tools can shrink 30 to 70% with a second pass. You usually can't see the difference.
Keep the raw folder. Name it exports_raw or add the date.
Compress a copy. Send exports_web or exports_compressed to the client.
Don't upload 500 MB to a random website for NDA work. Do it locally.
Compresso works here: drop the folder, folder mode keeps your subfolders, output sits next to the original as _compressed. Files stay on your machine.
80 to 200 images? 1.5 GB down to a few hundred MB is common. Depends on what's in the folder, but that's the usual range.
After compression:

Raw = archive. Compressed = Slack, email, git.
Plugins can batch-rename or apply presets. They don't change the math.
Good for: same preset on a component set, @2x suffixes, only marked layers.
Skip "AI optimize everything" if you can't see the settings.
Plugins save clicks. You still pick format and scale.
Don't panic.
Next project, fix presets on day one. Cheaper than fighting a 2 GB zip every Friday.
In your Figma template:
20260601_client_raw → compress → 20260601_client_webZip still huge? It's almost always scale, wrong format, or no compression pass.
Stop exporting the whole file as 2x PNG. Fix settings. Compress a copy. Then send.

Building products to help you move faster. Follow me for updates and tips.