Sam's Web Format Field Guide (2025)

  • 18th May 2025
  •  • 
  • 8 min read

Sam’s Web Format Field Guide (2025)

What works, what’s changed, and why any of it still matters

I got my first taste of the internet in 1993 when I was in high school. I was no stranger to computers, but I wanted to see one of those cool BBSs I’d heard about. AOL and CompuServe were around, but they were pay-to-play and I was saving my money for my weekly comic book habit.

Back then, 9,600 bit/s dial-up modems were common and 14.4 kbps was top of the line. Images were sparse and economized down to the pixel. Audio was mostly 8-bit. And video? Painful. If you wanted to watch a 1-minute video of someone walking uphill both ways in the snow, it would take well over an hour to download it (streaming wasn’t a thing yet) which tied up your home phone line the whole time for everyone in the house (cellphones weren’t common, and there was no such thing tethering).

So I grew up with the difference between 10KB and 10MB being the line between working and broken. And I’ve been working with web formats long enough to remember when “transparency” meant saving a GIF with just the right background color, and when everything on the web ran on a plug-in and a prayer.

Between 2000 and 2015, I wrote a few posts here breaking down which image, audio, and video formats were worth using, and why. I’d run tests, benchmark file sizes, and translate the shifting sands of browser support into simple, practical choices I could point other people to in conversation, in workshops, and for my own reference when I forgot.

And here I am in 2025 doing it again.

Why? Because these fundamentals still matter, and the landscape has shifted just enough that if you’re not paying attention, you’re probably overloading your site, misunderstanding your options, or defaulting to whatever your build tool gave you. Or more likely whatever you copy-pasted off the web or out of your favorite AI.

I’m not against doing that at first, or in a pinch. I’ve certainly done it! But if you’re going to depend on something (or want others to use it) you’re going to need to understand how it works.

Unfortunately, I find that most people still don’t understand web formats deeply.

They might know some compression settings or recognize terms like “lossless” or “WebP,” but they often don’t know what tradeoffs they’re making. Or how a little bit of the right kind of knowledge can unlock cleaner, lighter, faster, and ultimately more creative and fulfilling work.

So, time to reboot the field guide. This time with a little sense-checking and formatting support from my favorite LLM and yours: ChatGPT. Use this as a reference, I know I will. It’s kinda long. (Sorry?)

But if you take only one idea from this post, let it be this: Formats are not just containers. They’re decisions.

And understanding your decisions gives you leverage when the defaults stop making sense. Enjoy!

Markdown Grab’n Go

If you’re hip to markdown files, just Save link as…

  1. web_image_format_reference
  2. web_video_format_reference
  3. web_audio_format_reference
  4. web_font_format_reference
  5. web_compression_format_reference

If not, scroll to your heart’s content.

Note: These aren’t all the image/video/audio/font/compression formats that exist on the web — but if you’re deviating from these… you probably shouldn’t. I might, if I had a really good reason. But even then, I’d exhaust these first.


✅ Web Image Format Reference

FormatTypeBest ForTransparencyAnimationAvg File Size (500×500)Notes
SVGVectorIcons, logos, UI elements✅ Yes✅ Yes🚀 Tiny (1–20KB)Code-based, infinitely scalable, CSS/JS friendly
PNGRasterTransparent images, screenshots✅ Yes❌ No📦 Medium (50–300KB)Lossless, bulky for photos
JPG/JPEGRasterPhotos, gradients, backgrounds❌ No❌ No📉 Small (30–150KB)Lossy, great for detailed images
GIFRasterSimple animations, memes✅ Limited²✅ Yes🧱 Large (200–500KB)256 colors max, legacy use only
WEBPRasterAll-purpose modern web image✅ Yes✅ Yes🔥 Smallest (20–100KB)Superior compression, supports animation/transparency
AVIFRasterPhotos, high-efficiency compression✅ Yes✅ Yes🧊 Ultra-small (10–50KB)Cutting-edge, limited older browser support
HEICRasterApple photos, mobile uploads✅ Yes✅ Yes💾 Tiny (10–50KB)Not natively supported in all browsers
  • File sizes are estimates based on a 500×500 px image with average detail and compression.
  • ² GIF supports only binary transparency (on/off).
  • AVIF and WEBP are excellent replacements for PNG + JPG if browser support is acceptable.

🎥 Web Video Format Reference

FormatCodecBest ForTransparencyAudio SupportAvg File Size (1-min, 720p@24fps)Notes
MP4H.264Universal playback, self-hosting❌ No✅ Yes~20–50MBMost compatible format, best fallback
WEBMVP9/VP8Modern browsers, open standard❌ No✅ Yes~15–35MBGood quality, smaller size, not supported in Safari pre-16
AV1AV1Cutting-edge compression❌ No✅ Yes~10–25MBSmallest size, limited device support
GIFFrame-basedTiny looping animations✅ Limited²❌ No~5–15MBVery inefficient for video; not recommended
MOVProRes/etc.Editing, Apple-specific use✅ Partial✅ Yes~50–200MBNot web-optimized, use for source only
  • Benchmarked at 1280×720 (720p), 24fps, Constant RF 23–25 equivalent.
  • ² GIFs are image sequences with no real video compression or audio.
  • Use MP4 (H.264) for universal compatibility and WEBM or AV1 for modern lean delivery.

🎧 Web Audio Format Reference

FormatCodecBest ForStreamingBrowser SupportAvg File Size (1-min @128kbps)Notes
MP3MPEG-1 Layer 3Universal playback, podcasts✅ Yes✅ Full~1MBMost compatible, lossy but efficient
AACAAC-LCStreaming audio (YouTube, iTunes)✅ Yes✅ Full~0.9MBBetter quality than MP3 at same bitrate
OGGVorbisOpen-source alternative✅ Yes✅ Most (not Safari <14)~0.9MBSmaller size, good quality
OPUSOpusVoice/video calls, modern web✅ Yes✅ Most (not Safari <13)~0.5–0.8MBBest compression for voice, adaptive bitrate
WAVPCMRaw audio, editing/mastering❌ No✅ Full~10MBUncompressed, not ideal for web use
FLACFLACLossless music streaming✅ Yes✅ Most (except Safari pre-16)~4–5MBAudiophile-grade, larger size
AIFFPCMApple-based uncompressed audio❌ No✅ Partial~10MBLike WAV, but less portable
  • Benchmarked at 128kbps unless format dictates otherwise (Opus varies adaptively)
  • MP3 is still the safest fallback for universal access
  • OPUS and AAC offer the best efficiency for streaming or embedding voice/music online
  • WAV/AIFF are ideal for editing, not delivery

🔤 Web Font Format Reference

FormatCompressionBrowser SupportBest ForAvg File Size (1 weight)Notes
WOFF2✅ Best✅ Full (Chrome, Firefox, Edge, Safari ≥10)Modern web font delivery~20–40KBMost efficient, preferred format
WOFF✅ Good✅ Full (fallback)Fallback for older browsers~30–70KBSlightly larger than WOFF2
TTF❌ None✅ MostApp development, older Android~100–150KBEditable, not optimized for web
OTF❌ None✅ PartialDesktop publishing, macOS native~100–200KBAdvanced typography features, heavier
EOT❌ None⚠️ Only IE 6–11Legacy IE support only~50–100KBObsolete; use only if supporting IE8
SVG❌ None⚠️ ObsoleteEarly iOS use only~100–200KBDeprecated, avoid use
  • WOFF2 is the gold standard for modern web use — compact, fast, and broadly supported.
  • Include WOFF as a fallback for legacy browsers.
  • Avoid TTF/OTF for production use unless embedding for native apps or editing.
  • Subsetting fonts (e.g., Google Fonts API or tools like FontForge, Glyphhanger) can dramatically reduce file size.
  • Only include weights and styles actually in use to avoid bloat.

📦 Web Compression Format Reference

FormatTypeBest ForCompression RatioSpeedBrowser SupportNotes
ZIPArchiveFile downloads, email attachments✅ Good (~2–3×)✅ Fast✅ Native via downloadMost universal archive format
GZIP (.gz)Stream/SingleHTTP compression, log files✅ Great (~2–5×)✅ Very fast✅ Full (server/client)Standard for HTTP content compression
BROTLI (.br)Stream/SingleWeb asset delivery (JS/CSS/HTML)✅ Excellent (~3–6×)⚠️ Slower✅ Full (modern browsers)Better than GZIP for static assets
TARArchivePackaging multiple files (Linux)❌ None (no compression)✅ Fast❌ No browserOften used with GZIP or BZIP2
TAR.GZArchive+CompressUnix packages, scripts✅ Great✅ Fast❌ No browserCommon for open-source software
7ZArchiveLarge backups, ultra-compression✅ Best (~10×+)❌ Slower❌ No browserHigh compression ratio, lower compatibility
RARArchiveProprietary archives✅ Good⚠️ Slower❌ No browserRequires special tools, license-restricted
ZSTD (.zst)StreamLogs, modern backups✅ Excellent✅ Very fast❌ No browserDesigned for speed and efficiency
  • For the web, focus on GZIP (default) and Brotli (modern, smaller).
  • Use ZIP for downloadable file bundles (multi-platform support).
  • Avoid formats that require manual extraction unless used for tech-savvy users.
  • Brotli is now preferred for JS/CSS/HTML in production web servers (e.g., with NGINX or Cloudflare).

Whether you’re optimizing page load, making design decisions, preserving accessibility, or just trying to avoid another uncompressed 10MB PNG loading on mobile, know that format literacy gives you options most people don’t even realize they have.

And if you’ve made it this far, you probably care about this too! Yay!!!

I guess I’ll keep updating these guides as I find better ways to teach, share, and test them. If you’ve got additions, feedback, or horror stories from the front lines of format failure, I’d love to hear them.