Add your WOFF2 file
Drop one or more .woff2 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 .woff2 font to .woff 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 .woff2 font to .woff repackages the same glyphs and metrics for a different delivery target. 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.
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. For this route the practical draw is broad legacy reach, with browser support stretching back to IE9 and Android 4.4 and lossless wrapper with licensing-friendly metadata — balanced against superseded by WOFF2's stronger compression, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .woff2, operating systems will not install it, so designers juggle separate web and desktop copies of the same font. Switching to .woff buys you broad legacy reach, with browser support stretching back to IE9 and Android 4.4, which is why it is the better fit for web-font serving for audiences on older browsers such as IE9 and early Android. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | WOFF2 web font (.woff2) | WOFF web font (.woff) |
|---|---|---|
| Format type | Container — quality depends on the codecs and settings inside | Container — quality depends on the codecs and settings inside |
| How it stores data | brotli compression over the whole font, preceded by a glyf and loca transformation that re-encodes outline data for better compressibility | each sfnt table is individually zlib-compressed, so the structure mirrors the original font table for table |
| Strongest at | serving fonts on production websites as the default @font-face source | web-font serving for audiences on older browsers such as IE9 and early Android |
| Weak spot | operating systems will not install it, so designers juggle separate web and desktop copies of the same font | superseded by WOFF2's stronger compression |
| Metadata | all metadata of the wrapped font survives untouched, and the container can additionally carry an optional extended-metadata XML block from the vendor | beyond the wrapped font's own name table, the extended metadata block stores vendor, credits, description, and license information as XML |
Drop one or more .woff2 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 .woff in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if WOFF 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 WOFF file. Outputs keep the original filename with the .woff extension.
Since woff2 is container-oriented and woff is container-oriented, the conversion preserves the source content exactly as stored; no additional compression pass is applied beyond what .woff itself requires.
Yes — the .woff2 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.
Support reaches much further back than WOFF2 — IE9, early Chrome and Firefox, and old mobile browsers all handle .woff — which kept it in font stacks for years as a safety net. Modern sites increasingly ship WOFF2 alone, and operating systems continue to require unwrapping before a .woff can be installed.
It depends on the content: each sfnt table is individually zlib-compressed, so the structure mirrors the original font table for table. Convert one representative file first and compare before batch-processing a large set.
In .woff2, all metadata of the wrapped font survives untouched, and the container can additionally carry an optional extended-metadata XML block from the vendor. 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 .woff2 → .woff → .woff2 is not a perfect undo when any lossy step is involved; keep your original if fidelity matters.