Compress WOFF fonts by subsetting them
WOFF zlib-compresses each table, but the glyphs you never draw are still inside. This cuts them out and writes WOFF1 back.
or browse your device. Everything is processed on this device
No WOFF to hand?
How to subset and compress a WOFF
It is unpacked in this tab with per-table zlib. Nothing is uploaded.
Latin covers an English or Western European site. Widen it if your pages carry other alphabets.
The result panel says how many glyphs went and what stopped working. Read it before you ship.
You get a WOFF1 back for legacy stacks. For any modern site, convert the subset to WOFF2 next.
What a WOFF compressor can and cannot do
WOFF1 wraps each font table in zlib. Recompressing without removing glyphs can save a little when the original encoder used a weak setting, and can just as easily save nothing. It is not where the large percentages come from.
Subsetting is. Unpack the WOFF, cut the glyph set to the characters your pages render, drop hinting and unused metadata if you want, then wrap the result as WOFF1 again. On a full retail font that is commonly an order of magnitude smaller.
WOFF2 does the same job with a better container: one brotli stream and table transforms, typically another ~30% under WOFF1 for the same outlines. Every current browser supports it. This page keeps WOFF1 on the way out for the pipelines that still name .woff in their CSS.
If you only needed a format conversion, unpack and repack without subsetting will not invent a dramatic saving. Prefer WOFF2 and a real subset over chasing zlib level flags.
WOFF and font subsetting FAQ
Is WOFF the same as WOFF2?
No. WOFF1 uses per-table zlib; WOFF2 uses brotli and a different table layout. WOFF2 is smaller and is the one to ship on the web today. This page reads and writes WOFF1 only.
Can WOFF be compressed further without subsetting?
Sometimes by a few per cent if the original zlib pass was weak, often by nothing. Large savings always come from removing glyphs, hinting or metadata.
What is font subsetting?
Cutting the font down to the characters you use. The tool unpacks the WOFF, keeps those glyphs and their composite pieces, rebuilds the tables, and packs WOFF1 again.
Will subsetting break my text?
Yes, if you drop a character you still render. It will fall back to another font or show as a box. Check real pages before replacing the file in production.
Should I use WOFF or WOFF2?
WOFF2 everywhere you can. It is about 30% smaller than WOFF for the same font, and browsers that cannot read it are vanishingly rare. Keep WOFF only as a deliberate legacy fallback.
Is it legal to subset a font I bought?
It depends on the licence. Open Font Licence fonts usually allow it; commercial webfont licences vary. Licence name records are never stripped here.
Related
Same format joins the queue. Anything else re-routes to its own tool.