Image
Compress Resize Crop Rotate Flip Compress to a size AVIF WebP JPEG PNG JPEG XL
Background Remover Font Video How it works FAQs ★ Write a Review

Subset fonts to WOFF2, instantly

Drop your fonts here

Upload one or more fonts — WOFF2 + Brotli, nothing uploaded to any server

TTF · OTF · WOFF · WOFF2 — single or batch

Font Compressor

Pick exactly the characters you need — nothing ever leaves your browser.

3,200+Files optimised
50%+Avg size reduction
$0Cost, always
About this tool

Why subset and convert to WOFF2?

A typical TTF font file ships hundreds of glyphs you'll never use — Cyrillic, Greek, mathematical symbols — even if your site only needs the Latin alphabet. Subsetting strips out everything you don't need, and WOFF2's Brotli compression shrinks what's left further than any other web font format.

Up to 90% smaller

A 300KB font carrying every Unicode script often compresses down to under 15KB once subset to just the characters your site actually renders.

Faster text rendering

Smaller font files mean less time blocking text paint — directly improving your First Contentful Paint and Cumulative Layout Shift scores.

Same visual identity

Subsetting only removes glyphs you don't use — every character your site actually displays renders pixel-identical to the original font.

Tips for the best results

Paste your real site copyThe "auto-select from text" box finds exactly which characters you need — paste your homepage copy for the tightest possible subset.
Upload one weight at a timeSubset Regular, Bold, and Italic as separate files rather than a single variable font, for the smallest output per weight.
Keep punctuation and symbolsDon't forget em dashes, smart quotes, and currency symbols if your copy uses them — they're easy to miss when hand-picking characters.
Add font-display: swapPair your subsetted WOFF2 with font-display: swap in your @font-face rule so text never stays invisible while the font loads.
Questions

Questions about this tool

How do I compress a font file?

Drop a TTF, OTF, WOFF or WOFF2 file onto the page. It is converted to WOFF2, whose Brotli compression is the tightest of any web font format, and you can subset it at the same time — pick the characters your site actually renders and every other glyph is dropped. Nothing is uploaded; the work happens in your browser.

What is font subsetting, and why does it matter so much?

A typical TTF ships hundreds of glyphs you will never use — Cyrillic, Greek, mathematical symbols — even when your site only sets Latin text. Subsetting removes the ones you do not reference. It is usually a far bigger saving than the format change: a 300KB font carrying every script often lands under 15KB once cut to the characters a site really displays.

Is WOFF2 better than TTF or WOFF for a website?

Yes, for serving on the web. WOFF2 uses Brotli rather than the older zlib in WOFF, and TTF is not compressed for delivery at all, so the same outlines ship smaller as WOFF2. Every browser in current use decodes it. Keep the original TTF or OTF for editing — WOFF2 is a delivery format, not a working one.

Will subsetting change how my font looks?

No. Subsetting removes glyphs, it does not redraw them. Every character your site displays renders pixel-identical to the original. The risk is not quality but coverage: if a glyph is cut and later appears in your copy, the browser substitutes a fallback face for it. Paste your real page text into the auto-select box so the subset matches what you actually publish.

How do I use the compressed font on my site?

Reference it in an @font-face rule with format('woff2') and add font-display: swap so text is never invisible while the file loads. If you subset to a specific script, declare a matching unicode-range so the browser only fetches the file when a character in that range is needed.