Add your WOFF file
Drop one or more .woff files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Converting a .woff font to .woff2 repackages the same glyphs and metrics for a different delivery target. Free, private, and validated — the file never leaves your browser.
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.Converting a .woff font to .woff2 repackages the same glyphs and metrics for a different delivery target. WOFF, extension .woff, wraps an OpenType or TrueType font in zlib compression plus a small header and an optional metadata block, creating a format websites could legally and efficiently serve. It was the format that ended the web's font drought and made @font-face mainstream.
WOFF2 (.woff2) is the current web-font format: a font's sfnt tables preprocessed and squeezed with Brotli compression so pages download less type data. It is purely a transport wrapper — decompressing a .woff2 reconstructs a working TrueType or OpenType font. For this route the practical draw is the smallest deliverable font format, cutting load time and bandwidth and lossless — full fidelity of the wrapped font is preserved — balanced against operating systems will not install it, so designers juggle separate web and desktop copies of the same font, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .woff, superseded by WOFF2's stronger compression. Switching to .woff2 buys you the smallest deliverable font format, cutting load time and bandwidth, which is why it is the better fit for serving fonts on production websites as the default @font-face source. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | WOFF web font (.woff) | WOFF2 web font (.woff2) |
|---|---|---|
| Format type | Container — quality depends on the codecs and settings inside | Container — quality depends on the codecs and settings inside |
| How it stores data | each sfnt table is individually zlib-compressed, so the structure mirrors the original font table for table | brotli compression over the whole font, preceded by a glyf and loca transformation that re-encodes outline data for better compressibility |
| Strongest at | web-font serving for audiences on older browsers such as IE9 and early Android | serving fonts on production websites as the default @font-face source |
| Weak spot | superseded by WOFF2's stronger compression | operating systems will not install it, so designers juggle separate web and desktop copies of the same font |
| Metadata | beyond the wrapped font's own name table, the extended metadata block stores vendor, credits, description, and license information as XML | all metadata of the wrapped font survives untouched, and the container can additionally carry an optional extended-metadata XML block from the vendor |
Drop one or more .woff files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Select .woff2 in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if WOFF2 is selectable, the route is real and validated.
Press Convert. The font tables are parsed and rewritten locally with fonteditor-core; glyph outlines, hinting, and kerning survive the trip.
Each result is signature-checked before the download unlocks, so a failed encode can never masquerade as a valid WOFF2 file. Outputs keep the original filename with the .woff2 extension.
Since woff is container-oriented and woff2 is container-oriented, the conversion preserves the source content exactly as stored; no additional compression pass is applied beyond what .woff2 itself requires.
Yes — the .woff file is processed inside your browser tab and never uploaded. The font tables are parsed and rewritten locally with fonteditor-core; glyph outlines, hinting, and kerning survive the trip. Close the tab and the file is gone from memory.
Chrome, Firefox, Safari, and Edge have all supported .woff2 for years — coverage is effectively universal outside long-dead browsers like Internet Explorer, which never adopted it. Because no operating system accepts it for installation, workflows convert to TTF or OTF whenever a font must leave the browser.
It depends on the content: brotli compression over the whole font, preceded by a glyf and loca transformation that re-encodes outline data for better compressibility. Convert one representative file first and compare before batch-processing a large set.
In .woff, beyond the wrapped font's own name table, the extended metadata block stores vendor, credits, description, and license information as XML. Re-encoding through the browser pipeline does not carry embedded metadata into the output, which doubles as a privacy scrub — check the exported file if you specifically need tags preserved.
Yes — the reverse route exists as a separate tool. Bear in mind that round-tripping .woff → .woff2 → .woff is not a perfect undo when any lossy step is involved; keep your original if fidelity matters.