2 min read

WOFF vs. WOFF2: The Only Font Format You Need in 2026

For years, developers included a "bulletproof" stack of font formats (.eot, .ttf, .svg, .woff, .woff2) to ensure compatibility with Internet Explorer and older mobile browsers.

In 2026, this is no longer necessary. You only need WOFF2.

1. What is WOFF?

WOFF (Web Open Font Format) was standardized in 2010. It is essentially a wrapper around a standard TrueType (.ttf) or OpenType (.otf) font file.

  • Compression: It uses zlib compression (same as Gzip) to reduce file size.
  • Metadata: It allows foundry metadata to be attached to the file without affecting rendering.

2. What is WOFF2?

WOFF2 was standardized in 2015. It is the successor to WOFF.

  • Compression: It uses the Brotli compression algorithm.
  • Performance: WOFF2 files are typically 30% to 50% smaller than WOFF files.
  • Parsing: It is designed to be decompressed faster by the browser, speeding up the rendering pipeline.

3. Why Drop Legacy Formats?

The "Bulletproof" Syntax (Obsolete)

You might see old tutorials suggesting this massive block of CSS:

/* DO NOT USE THIS IN 2026 */
@font-face {
  font-family: 'MyFont';
  src: url('myfont.eot'); /* IE9 Compat Modes */
  src: url('myfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('myfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('myfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('myfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('myfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

The Modern Syntax (2026 Standard)

Since Internet Explorer is officially dead and all modern browsers (Chrome, Firefox, Safari, Edge) support WOFF2, you can simplify your CSS to just this:

/* THE 2026 STANDARD */
@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff2') format('woff2');
  font-display: swap;
}

Browser Support

  • WOFF2: Supported by 98%+ of global users.
  • The Remaining 2%: Mostly Opera Mini or extremely old Android browsers that likely struggle to render modern JS anyway. For 99.9% of WordPress sites, serving a fallback is wasted bandwidth for the majority.