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.

WOFF
No WOFF selected
Drop a file to start
Drop WOFF files here

or browse your device. Everything is processed on this device

No WOFF to hand?

How to subset and compress a WOFF

01
Drop the WOFF in

It is unpacked in this tab with per-table zlib. Nothing is uploaded.

02
Choose the characters you need

Latin covers an English or Western European site. Widen it if your pages carry other alphabets.

03
Check what it dropped

The result panel says how many glyphs went and what stopped working. Read it before you ship.

04
Download, or move to WOFF2

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.

Drop more files

Same format joins the queue. Anything else re-routes to its own tool.