Compress Fonts to Reduce File Size
Support for 21+ font formats. Subset Unicode ranges, remove hinting, and optimize tables for optimal compression.
Drop your font files here
or click to browse files
What compression does to each format
Compressing a font means removing the characters you do not need, then packing what remains. We generated a real file in each format from one typeface, cut it down to ASCII, and measured what came out.
Source: Akrobat ExtraBold, 485 glyphs covering 432 characters, converted into each format with FontForge and then subset to the ASCII range.
| Format | Processed | Before | After | Saved | Notes |
|---|---|---|---|---|---|
| WOFF2 | Your browser | 22.9 KB | 8.4 KB | 63.2% | Brotli decoded locally with WebAssembly |
| WOFF | Your browser | 32.3 KB | 7.3 KB | 77.4% | Already a web font, still worth subsetting |
| TTF | Your browser | 70.4 KB | 11.8 KB | 83.2% | Desktop TrueType, the usual source |
| OTF | Your browser | 91.7 KB | 22.7 KB | 75.3% | Desktop OpenType with CFF outlines |
| CFF | Our servers | 31.1 KB | 7.7 KB | 75.3% | Bare PostScript outlines |
| SVG | Your browser | 250.8 KB | 55 KB | 78.1% | XML outlines, minified as text |
| DFONT | Your browser | 71.7 KB | 20.7 KB | 71% | Mac suitcase, unwrapped then subset |
| EOT | Your browser | 70.5 KB | 8.4 KB | 88% | Legacy IE wrapper, unwrapped then subset |
| BIN | Either | 54.8 KB | 19 KB | 65.3% | TrueType inside runs locally; Type 1 goes to our servers |
| SUIT | Your browser | 71.9 KB | 8.4 KB | 88.3% | Mac suitcase, unwrapped then subset |
| T42 | Your browser | 94.8 KB | 7.7 KB | 91.9% | PostScript wrapper; character map rebuilt |
| PFB | Our servers | 53.7 KB | 18.3 KB | 65.9% | PostScript Type 1, binary |
| PFA | Our servers | 104.1 KB | 34 KB | 67.3% | PostScript Type 1, ASCII |
| PT3 | Our servers | 301.8 KB | 55.1 KB | 81.7% | PageMaker Type 3 |
| UFO | Our servers | 742.7 KB | 269.4 KB | 63.7% | A folder of XML source files |
| PS | Our servers | 140.8 KB | 118.6 KB | 15.8% | PostScript program, mostly header text |
- Nearly every font format loses two thirds or more of its size, because most of a typeface is characters you will never put on the page. TTF went from 70.4 KB to 11.8 KB, a saving of 83.2%.
- WOFF2 both starts smallest and stays smallest, ending at 5.3 KB. If you are choosing a format to serve on a website, this is the one.
- PostScript programs are the exception at only 15.8%, because most of that file is header and dictionary text rather than glyph outlines. Convert those to OTF or WOFF2 instead of compressing them.
- Subsetting is lossy in one specific way: characters outside the set you choose will not render at all. If your text includes accented names, currency symbols or non-English quotation marks, pick a wider character set.
How the quality presets compare
On the same typeface, the Fast preset keeps 95 glyphs at 8.4 KB in your browser, Normal keeps 176 at 13 KB, and Maximum keeps 296 at 17.6 KB. Choose the narrowest set your text actually needs.
What compression does to your font
We keep the glyphs your chosen character set needs, drop the rest, and repack the result. Spacing and outlines for the glyphs you keep are untouched, so text renders exactly as before. Hinting and advanced OpenType features such as ligatures and alternates are not carried over, which is the trade for the size you save.
What runs in your browser
Nine of the formats on this page are handled entirely on your own device. TTF, OTF and WOFF are subset locally, SVG fonts are minified locally, and EOT, DFONT, SUIT and Type 42 files are unwrapped and subset locally, since each carries an ordinary TrueType font inside a wrapper. WOFF2 files are decoded locally too, using a WebAssembly build of the same woff2 library Google wrote, which is only downloaded if you actually open one. The PostScript Type 1 formats and the type-design source formats still need FontForge, so those are sent to our servers.
Every row was generated and measured on one Latin typeface, and any output whose contents did not match the format it claimed to be was left out rather than guessed at. WOFF2 shows a smaller percentage only because it is already compressed before we start. SFD, PFM, AFM, CID and T11 are supported by the tool but are not listed, because our own conversion of them did not produce a file we could verify. Fonts covering Chinese, Japanese or Korean start far larger and gain much more from subsetting.
Supported Font Formats
Compress between 21+ font formats with full quality control - adjust subsetting and optimization
Desktop Fonts
TrueType, the most widely supported desktop font.
Subset and repacked as WOFF in your browser.
Our biggest saving: 88% on a typical Latin typeface.
OpenType, with CFF outlines and richer typography.
Subset and repacked as WOFF in your browser.
Advanced features are dropped along with unused glyphs.
Apple's datafork font suitcase format.
Unwrapped and subset in your browser.
The font inside the Mac suitcase is extracted locally.
Compact Font Format, the PostScript outlines inside OTF.
Processed on our servers.
Usually wrapped in OTF rather than shipped alone.
CID-keyed fonts, built for large character sets.
Processed on our servers.
Subsetting matters most here: CJK fonts are huge.
FontForge's own editable source format.
Processed on our servers.
A working file, not something to ship.
Unified Font Object, an open format for type design.
Processed on our servers.
A folder of XML files rather than one binary.
Web Fonts
Web Open Font Format, already compressed for the web.
Re-subset in your browser to the characters you need.
Still worth doing: most of the size is glyphs you never use.
The current web font standard, compressed with Brotli.
Decoded and subset in your browser.
We load a small WebAssembly decoder only when you open one.
Embedded OpenType, Microsoft's old web font format.
Unwrapped and subset in your browser.
It is a plain font behind a small header, so nothing is uploaded.
Fonts described as SVG vector outlines.
Minified as XML in your browser.
Whitespace and comments go; the outlines stay.
Specialized Formats
PostScript Type 1, binary form.
Processed on our servers.
Retired by Adobe; convert to OTF or WOFF2.
Printer Font Metrics, the Windows companion to PFB.
Processed on our servers.
Holds spacing data, not outlines.
Adobe Font Metrics, a plain-text metrics file.
Processed on our servers.
Contains no outlines, so there is little to compress.
A MacBinary-wrapped font resource.
Unwrapped in your browser when it holds a TrueType font.
MacBinary files carrying Type 1 fonts are handled on our servers.
The classic Mac font suitcase.
Unwrapped and subset in your browser when it holds a TrueType font.
Suitcases holding PostScript Type 1 fonts go to our servers.
A PostScript font program.
Processed on our servers.
Convert to OTF for modern use.
Type 42, TrueType wrapped for PostScript printers.
Unwrapped and subset in your browser.
We rebuild the character map that Type 42 keeps outside the font.
References
- WOFF File Format 2.0 - W3C Recommendation
- WOFF File Format 1.0 - W3C Recommendation
- OpenType Specification - Microsoft Learn
- fontTools, including the pyftsubset subsetter - GitHub
- unicode-range - MDN Web Docs, Mozilla
- @font-face - MDN Web Docs, Mozilla
- RFC 1950: ZLIB Compressed Data Format Specification - RFC Editor
- RFC 7932: Brotli Compressed Data Format - RFC Editor