Turn a WOFF2 web font into WOFF in a few clicks—upload your .woff2 file and download the converted .woff font instantly.
.woff2 font into the box, or click "Add Files" to load one from your computer. Batch is supported, so you can re-encode every weight and style of a family in one pass.opentype.js plus an in-tab WOFF2 decoder, and the resulting .woff downloads instantly. No upload to a server, no sign-up, no watermark.WOFF2 is the dominant web-font format in 2026 — every current Chrome, Firefox, Edge, and Safari ships native WOFF2 support — but a meaningful slice of legacy traffic still needs WOFF 1.0. Internet Explorer 9, 10, and 11 only understand WOFF; they cannot decode WOFF2 in any build. Older Android Browser builds, some kiosk firmware, the AWT/Swing font loader in older JVMs, and certain e-reader and embedded-device browsers also speak WOFF but not WOFF2. Re-encoding a WOFF2 down to WOFF is the standard way to ship a single @font-face rule that covers both modern and legacy targets without going back to the source .ttf or .otf.
@font-face with the format("woff") descriptor. Browsers walk the src: list in order, so listing WOFF2 first and WOFF second lets modern browsers grab the smaller WOFF2 while IE drops to WOFF. Without that fallback, IE silently substitutes the system font..woff but predates .woff2.| Property | WOFF2 | WOFF |
|---|---|---|
| W3C status | Recommendation, March 2018 (2nd edition August 2024) | Recommendation, December 2012 (2nd edition March 2018) |
| Compression | Brotli + font-specific glyph and table preprocessor | Flate / zlib (DEFLATE), via compress2() |
| Typical size vs source SFNT | ~30-50% of source | ~50-60% of source |
| Size relative to each other | typically 20–30% smaller than WOFF (median ~24% for TTF-flavored fonts) | typically 20–30% larger than WOFF2 |
| Global browser support (2026) | ~97% (no IE, no Opera Mini) | ~96-99% (IE 9+, all modern) |
| Internet Explorer support | None (IE 11 does not decode WOFF2) | IE 9, 10, 11 with format("woff") |
| Glyph and feature fidelity | Lossless | Lossless |
| Variable-font support | Yes (fvar, gvar, HVAR, MVAR, STAT) |
Yes (same SFNT payload) |
| MIME type | font/woff2 (IANA-registered 2017) |
font/woff (IANA-registered 2017; older guides use application/font-woff) |
| File extension | .woff2 |
.woff |
| Streaming-friendly | Single Brotli stream | Single Flate stream |
| Audience or scenario | WOFF2 only | WOFF2 + WOFF fallback |
|---|---|---|
| Consumer site, mostly mobile and modern desktop | Yes | Optional; saves a few KB of HTML |
| B2B SaaS targeting enterprise IT | Probably fine | Recommended if analytics show >0.5% IE traffic |
| Government, banking, healthcare portals | Risky | Recommended |
| Kiosks, digital signage, set-top boxes | Risky | Recommended (test on target device) |
| Internal intranet on a managed Windows estate | Depends on the estate | Recommended if IE11 is in the fleet |
| PDF / EPUB / InDesign pipeline | N/A | WOFF often required by the toolchain |
| Greenfield marketing site, 2026+ | Yes | Optional |
The @font-face pattern that covers both, listing the smaller WOFF2 first so modern browsers grab it: src: url('font.woff2') format('woff2'), url('font.woff') format('woff');.
Backward compatibility, not size. WOFF2 wins on bytes-on-the-wire for any browser that supports it, but IE 9/10/11 and various older embedded browsers cannot decode WOFF2 at all — they need WOFF in the same @font-face rule, or they drop to the system font. You convert WOFF2 to WOFF when you only have the WOFF2 source and need to add the legacy fallback.
Yes. WOFF and WOFF2 are both thin containers around the same SFNT payload (glyf/CFF/CFF2, GSUB, GPOS, GDEF, fvar, gvar, etc.). The converter decompresses the WOFF2 back to its underlying SFNT, leaves every table untouched, then re-wraps in a WOFF 1.0 container. Ligatures, contextual alternates, stylistic sets, kerning pairs, fractions, and variable-font axes are all preserved byte-identical.
Yes — at the font level. WOFF2's Brotli compression and its preprocessor (table reordering, glyph transforms) are mathematically reversible, so the SFNT recovered from a WOFF2 is bitwise identical to the SFNT that was originally encoded into it. The output WOFF carries that same SFNT. The compression wrapper changes, but no glyph data is lost.
On the W3C's Google Fonts evaluation corpus, WOFF averages roughly 30% larger than the equivalent WOFF2. A 65 KB WOFF2 typically becomes a 90-95 KB WOFF. The ratio narrows for highly subset Latin fonts (sometimes only 20% larger) and widens for large CJK families like Noto Sans CJK or Source Han Sans, where Brotli's font-aware preprocessor extracts more value from the glyph stream.
Probably not, but it depends on your audience. WOFF2 is supported by ~97% of global browsers as of 2026; the holdouts are IE 11 (out of mainstream support since June 2022 but still pinned in some managed Windows fleets) and Opera Mini, both well under 1% combined in most analytics. If you serve banking, healthcare, government, or a heavily-managed enterprise intranet, ship the WOFF fallback. For a 2026 consumer marketing site, WOFF2-only is reasonable.
Content-Type: font/woff. This is the IANA-registered media type as of 2017 (RFC 8081). Older deployment guides specify application/font-woff — that still works because most browsers sniff the format anyway, but font/woff is the current registered type. Make sure your CDN doesn't apply gzip on top of the already-Flate-compressed WOFF body; double-compression burns CPU for negligible gain.
Yes. The WOFF 1.0 second-edition Recommendation (March 2018) explicitly accommodates variable-font tables — fvar, gvar, HVAR, MVAR, STAT — because the WOFF container is just a wrapper around the SFNT, and modern SFNT supports variable fonts. If your WOFF2 holds a variable font, the converted WOFF will be variable too with all axes intact. Be aware that older browsers that need WOFF (IE 11) don't support variable fonts at all, so the variable WOFF is mainly for forward-compatible tooling, not actual IE rendering.
@font-face source on every browser?For browsers WOFF was designed for — IE 9+, Chrome 5+, Firefox 3.6+, Safari 5.1+, Edge 12+, Opera 11.1+ — yes. Per caniuse, WOFF has roughly 96-99% global support. The notable exceptions are Opera Mini (no WOFF support), Android Browser 2.1 through 4.3, and pre-IE 9 builds, which are statistically negligible in 2026. Reference the file in @font-face with format("woff") and you're good.
No. The page lazy-loads opentype.js and a WOFF2 decoder, then runs the entire decode-and-re-encode pipeline in WebAssembly inside your tab. Your font file never touches our servers, which matters for licensed commercial typefaces whose EULA forbids uploading to third-party services. There is no per-file size cap beyond your tab's available memory, no Pro tier, and no watermark.