XConvert
Downloads
Pricing

Convert WOFF to WOFF2 Online

Turn a WOFF web font into WOFF2 in seconds—upload your .woff file, convert, and download the .woff2 result.

Input (WOFF)
🅰
Choose a WOFF font file to convert
Output (WOFF2)
🅰
Output will appear here after conversion

How to Convert WOFF to WOFF2 Online

  1. Upload Your WOFF File: Drag and drop a .woff font into the box, or click "Add Files" to select one from your computer. Batch upload is supported, so you can re-encode an entire family at once.
  2. Confirm Output Format: WOFF2 is preselected as the target. The converter parses the WOFF wrapper, extracts the underlying SFNT (TrueType or CFF/OpenType) tables, then re-wraps them in a WOFF2 container compressed with Brotli — no manual format picker needed.
  3. Keep Glyphs and Metadata (Optional): All glyphs, OpenType features (ligatures, kerning, stylistic sets), and embedded metadata blocks are preserved verbatim. Conversion is lossless at the glyph level; only the compression wrapper changes.
  4. Convert and Download: Click "Convert" — the file is re-encoded in your browser via lazy-loaded opentype.js, and the resulting .woff2 downloads instantly. No upload to a server, no sign-up, no watermark, no installed software.

Why Convert WOFF to WOFF2?

WOFF (Web Open Font Format) was published by W3C in 2012 and wraps a TrueType or OpenType font in a Flate-compressed container. WOFF2, finalized as a W3C Recommendation in March 2018 (and updated to a second edition in August 2024), keeps the same SFNT payload but switches to Brotli compression plus a font-aware preprocessing step. The result is a file that is typically 20–30% smaller than the same font as WOFF (median ~24% for TTF-flavored fonts, per the W3C WOFF2 Evaluation Report), with no change to how the font renders. Re-encoding existing WOFF files to WOFF2 is one of the cheapest performance wins for any site that ships custom typography.

  • Smaller @font-face payloads — Per the W3C WOFF2 Evaluation Report, WOFF2 averages roughly 20–30% better compression than WOFF 1.0 across the Google Fonts corpus (median ~24% for TTF-flavored fonts). A 94 KB WOFF often drops to around 65–75 KB as WOFF2, which compounds quickly across four weights and two styles.
  • 97%+ global browser support in 2026 — WOFF2 ships in Chrome 36+ (2014), Firefox 39+ (2015), Edge 14+ (2016), Safari 12+ (2018), and Opera 23+ (2014). The only modern holdouts are legacy IE11 installs and Opera Mini, which you can serve a WOFF fallback to.
  • Faster Core Web Vitals — Smaller fonts mean a shorter First Contentful Paint and less render-blocking time, especially over slow mobile links. Google's WebPageTest data shows WOFF2 saves 50–200 ms of font-load time on a fast 3G profile versus WOFF.
  • Re-encoding old design systems — Many design tools and font foundries (older Glyphs exports, Font Squirrel's pre-2017 generator, older FontForge builds) emit WOFF but not WOFF2. Re-encoding lets you drop WOFF2 into a modern @font-face stack without going back to the source .ttf or .otf.
  • CDN and hosting cost savings — Bandwidth charged per GB egress benefits directly from the smaller payload (typically 20–30%). For a site with 1 M monthly font fetches at 94 KB each, switching to WOFF2 saves roughly 20–28 GB/month.

WOFF vs WOFF2 — Format Comparison

Property WOFF WOFF2
W3C status Recommendation, Dec 2012 (2nd edition Mar 2018) Recommendation, Mar 2018 (2nd edition Aug 2024)
Compression Flate / zlib (DEFLATE) Brotli + font-specific glyph preprocessor
Typical size vs uncompressed ~40–50% reduction ~50–65% reduction vs uncompressed TTF (typically 20–30% smaller than WOFF, median ~24%)
Decoder complexity Lower; widely tooled Slightly higher, but ships in every modern browser
Browser support ~99% (IE 9+, all modern) ~97% (no IE, no Opera Mini)
Glyph/feature fidelity Lossless Lossless (same SFNT payload)
Container metadata Preserved Preserved
Streaming-friendly Single Flate stream Same; Brotli also single-stream
MIME type font/woff font/woff2
File extension .woff .woff2

Brotli Compression vs Flate — Why the Size Drop

Aspect WOFF (Flate) WOFF2 (Brotli + preprocessor)
Algorithm origin Designed for general-purpose data (1996) Designed by Google for web content (2013)
Static dictionary None 120 KB shared dictionary tuned for web text
Font-aware preprocessing None Reorders glyf/loca tables, transforms glyph data
Typical web-font ratio ~50% of original SFNT ~35–40% of original SFNT
CPU cost to decompress Very low Low (browsers ship optimized Brotli)
Re-decompression on cache hit Avoided via HTTP caching Same

Frequently Asked Questions

Will my OpenType features (ligatures, kerning, small caps) survive the conversion?

Yes — WOFF and WOFF2 are containers around the same SFNT font payload (glyf/CFF/CFF2, GSUB, GPOS, GDEF, etc.). The converter unwraps the WOFF, leaves the SFNT tables untouched, and re-wraps them in a WOFF2 container. Every OpenType feature your WOFF had — ligatures, contextual alternates, stylistic sets, fractions, kerning pairs, variable-font axes — is preserved byte-identical. The glyph outlines render exactly the same.

Is WOFF2 lossy compared to WOFF?

No. Brotli is a lossless general-purpose compression algorithm, and WOFF2's font-specific preprocessor (table reordering and glyph transformations) is mathematically reversible. The decoded SFNT after WOFF2 decompression is bitwise identical to the SFNT inside the source WOFF. Only the container envelope changes.

Do I still need a WOFF fallback in my @font-face rule for 2026?

Probably not. WOFF2 is supported by ~97% of global browsers as of 2026 (Chrome 36+, Firefox 39+, Safari 12+, Edge 14+, Opera 23+). The browsers that don't support it — IE11 and Opera Mini — are below 1% combined in most analytics. If your audience skews heavily enterprise (managed Windows fleets running IE11), keep WOFF as a second src: entry; otherwise, WOFF2-only is fine.

How much smaller will my WOFF2 file be?

Typically 20–30% smaller than the WOFF, with a median of ~24% for TTF-flavored fonts, based on the W3C's WOFF2 Evaluation Report against the Google Fonts corpus. The exact ratio depends on the font: large CJK fonts (Noto Sans CJK, Source Han Sans) often see 35–45% reductions because their glyph data benefits more from Brotli's static dictionary, while small Latin-only fonts with few glyphs may only shrink 15–20%.

Can I convert variable WOFF fonts to variable WOFF2?

Yes. The WOFF2 spec explicitly supports variable fonts (fvar, gvar, HVAR, MVAR, STAT tables). If your WOFF contains a variable font, the WOFF2 output will also be variable with all axes intact. Be aware that variable fonts tend to be larger to start with, so the absolute byte savings are usually higher than for static fonts.

Why is my converted WOFF2 not much smaller than the original WOFF?

A few possible causes: (1) the source WOFF was already highly subset to a small Latin glyph set, leaving little for Brotli to exploit; (2) the source WOFF used aggressive Flate compression with a custom dictionary; (3) the font contains a large embedded color table (COLR/CPAL or sbix) that doesn't compress well. For colour/emoji fonts, the savings are typically closer to 10–15% rather than 30%.

What MIME type and file extension should I use on the server?

Serve WOFF2 with Content-Type: font/woff2 (registered with IANA in 2017) and the .woff2 extension. Older guides recommend application/font-woff2 — this still works in practice but is no longer the registered MIME type. Make sure your CDN doesn't try to gzip the response on top of the already-Brotli'd payload; double-compression wastes CPU and slightly increases size.

Does this run entirely in my browser?

Yes. The page lazy-loads opentype.js plus a WOFF2 encoder and runs the entire conversion in WebAssembly inside your tab. Your font never leaves your machine, which matters if you're working with a licensed commercial typeface whose EULA forbids uploading to third-party servers.

Can I batch convert a whole font family at once?

Yes. Drop multiple .woff files at once and each is re-encoded independently in the same session. There is no per-file size cap beyond what your browser tab can hold in memory, and there is no "Pro" tier or watermark — both regular weights and large CJK families work the same way.

Related Generate tools
Font Face Css GeneratorFont Subsetter
Related Convert tools
Convert Woff To TtfConvert Woff To OtfConvert Woff To EotConvert Ttf To Woff2Convert Otf To Woff2Convert Eot To Woff2

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow