I published a tutorial last month with 14 screenshots. After it went live, I checked the page weight out of curiosity: 38MB. Thirty-eight megabytes — for a page that is mostly text.
Every screenshot was a PNG, straight from my Mac's screenshot tool. A single full-screen Retina capture was 4.2MB. I had uploaded them exactly as they came out of the OS, the way most of us do.
Why screenshots are so heavy
Three things conspire against you:
- Retina resolution. A screenshot on a modern display is 2x or 3x the CSS pixels. That 1440px-wide illustration in your article is actually a 4320px-wide PNG.
- PNG is lossless. Great for crisp UI text, terrible for file size. Any photo-like gradient or shadow in the shot balloons fast.
- Nobody compresses before uploading. Platforms will happily serve your 4MB original to every single reader.
The kicker: after compression, my 4.2MB screenshot came out at 380KB — and I could not tell the difference at article width. The detail PNG preserves is detail no reader will ever see, because the image is displayed at a fraction of its native resolution anyway.
The 30-second fix
I don't hand-tune screenshots anymore. My workflow now:
- Take the screenshot as usual — PNG, full Retina glory.
- Drop it into ZipPic's image compressor — free, runs entirely in your browser, no signup, no upload.
- It compresses locally and shows a live before/after comparison. Nudge the quality slider until the text edges still look crisp.
- Download, then upload the compressed version to your post.
That 14-screenshot tutorial went from 38MB to under 5MB. Load time went from "go make coffee" to instant — and every reader on mobile data got a faster page for free.
The part nobody thinks about: what's in the screenshot
Screenshots are uniquely sensitive uploads. Open tabs, file paths, a Slack DM in the background, an API key sitting in a terminal window you forgot was visible. Every "free online compressor" that asks you to upload a screenshot is asking you to hand all of that to a stranger's server first.
I started compressing locally for the file size. I keep doing it for the privacy. Nothing leaves your machine — the work happens in your browser via WebAssembly, and the file you download is the only copy that ever moves.
Next time you write a tutorial, try this: take one PNG screenshot, run it through a local compressor, and compare them side by side at article width. If you can't spot the difference — and you won't — there's no reason to ever upload the original again.
Top comments (0)