Compress TTF fonts by subsetting them

A TrueType file is already raw outline data. The saving is cutting the glyphs you were never going to draw, and this does that on your own machine.

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

or browse your device. Everything is processed on this device

No TTF to hand?

How to subset and compress a TTF

01
Drop the TrueType font in

The tables are read in this tab. Nothing is uploaded and nothing leaves the machine.

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 the smaller TTF

Use it where a desktop app or a build step still wants TrueType, or convert to WOFF2 for the web.

What compressing a TTF actually means

TTF is not a compressed container. It is an sfnt: a directory of tables, each stored raw. Re-encoding one without removing anything hands back a file of the same size, or slightly larger once padding and checksums are rewritten. The only honest saving is throwing data away.

Most of that data is glyphs. A font that ships Latin, Cyrillic, Greek and symbols can carry thousands of outlines; an English language interface draws a couple of hundred. Subsetting rebuilds the glyph, metric and character-map tables around the survivors and leaves the rest behind.

Hinting and metadata are the smaller levers. Hinting instructions help older low-DPI Windows screens and cost tens of kilobytes on a heavily hinted face; metadata tables hold names and screen-size records a browser never reads. Both are optional here, and the licence name records stay either way.

If the font is going on a website, WOFF2 is the better final container: same subset, roughly another third off. This page keeps TrueType on the way out so tools that cannot read WOFF2 still get a file they understand.

TTF and font subsetting FAQ

Can a TTF be compressed without subsetting?

Not usefully. The outlines are already stored raw, so there is no container codec to turn up. gzip on the wire helps a download, but the file on disk only shrinks when glyphs, hinting or metadata come out.

What is font subsetting?

Font subsetting is cutting a font file down to the characters you actually use. The subsetter reads the font's character map, works out which glyphs those characters need, follows composite glyphs to their components, then rebuilds the glyph, metric and character-map tables around what is left.

Will subsetting break my text?

Yes, if you cut a range you actually use. Any character not in the subset falls back to the next font in your stack. Check names, prices and user-generated text before you ship: those are where stray accents and currency symbols hide.

Does subsetting remove kerning and ligatures?

Here, yes. Subsetting renumbers glyphs, and the GPOS and GSUB tables point at the old numbers, so they are dropped rather than left pointing at the wrong letters. Body text rarely notices; large display type might.

Should I serve TTF or WOFF2 on a website?

WOFF2. It is the modern web font container, roughly 30% smaller than WOFF and far smaller than raw TTF over the network. Keep a TTF around only when a desktop app, an email client or a build tool cannot read WOFF2.

Is it legal to subset a font I bought?

It depends on the licence. Most open licences allow modification; many commercial licences allow subsetting for your own site and forbid redistributing the result. This tool never strips the licence description or licence URL from the name table.

Drop more files

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