How to Make a Font File Smaller Without Breaking It
- Subsetting removes unused glyphs and shrinks font files 50–90%
- Browser-based subsetter: upload and download — no software needed
- CLI tools (glyphanger, fonttools) offer more control but require setup
- Google Fonts subsetting is automatic via unicode-range but only for hosted fonts
Table of Contents
There are three practical ways to make a font file smaller: subset it in the browser, run a command-line tool, or switch to a CDN that does subsetting for you. The right choice depends on how many fonts you are optimizing, how often you need to do it, and whether you want to spend time setting up a local toolchain. This guide walks through all three, starting with the fastest option.
Method 1: Subset in the Browser — No Setup Required
The quickest way to make a single font file smaller is a browser-based subsetter. Upload your TTF, OTF, or WOFF file, choose which characters to keep — Basic Latin, Extended Latin, or a custom character set — and download the result. The file size, glyph count, and a character preview update in real time as the tool processes your file.
This approach works well when you have one or a handful of fonts to optimize and do not want to configure a Node.js environment. The output is ready to drop directly into your project's font folder — same format, same filename convention, just smaller.
Method 2: glyphanger — For Automated or Batch Subsetting
Glyphanger is a Node.js CLI tool that can subset fonts based on the actual characters used on a live web page (by crawling it), a provided text file, or a Unicode range string. It is more powerful than a browser tool for batch operations or when you want the subset to match exactly what appears on specific pages of your site.
Setup requires Node.js and the fonttools Python library (pip install fonttools), which adds friction. For developers already running a build pipeline, it integrates cleanly as an npm script. For designers who just need to optimize a font once, the browser approach is faster from start to finish.
Sell Custom Apparel — We Handle Printing & Free ShippingMethod 3: Google Fonts — Automatic Subsetting via CDN
If you are using a Google Font, the Google CDN already delivers subsetted font files automatically based on the unicode-range descriptor in the CSS it generates. When a visitor loads your page, the browser checks which characters it needs for that page and downloads only the relevant font subsets from Google's servers.
This requires no action on your part — it works the moment you embed the standard Google Fonts link. The tradeoff is the external dependency: the font loads from Google's CDN rather than your own server, which adds a DNS lookup and connection step. Self-hosting a subsetted version (methods 1 or 2) is often faster for sites that use the same font across many pages.
How Much Size Reduction Can You Expect?
Reduction depends on how many glyphs the original font contains and how many you are keeping. Typical results:
- Full Latin font (~800 glyphs) subsetted to Basic Latin (~95 glyphs): 80–90% reduction
- Full Latin font subsetted to Extended Latin (~200 glyphs): 60–75% reduction
- Display font used only for a heading (~30 characters): 90–95% reduction
The Font Subsetter shows you the exact glyph count before and after, so you can verify the reduction before downloading.
Always Verify After Subsetting
After replacing the font in your project, do a visual check of every page that uses it. Any character your subset does not include will fall back to the browser's default system font — usually a different typeface entirely. The mismatch is obvious: a single word or character will look clearly different from the surrounding text.
If you spot a missing character, re-open the subsetter, switch to Extended Latin or add the specific character via Custom, and download again. The process takes under a minute.
Make Your Font Smaller Right Now
Upload a TTF, OTF, or WOFF file and choose your character set. Your smaller font downloads in seconds — free, no account needed.
Open Font Subsetter FreeFrequently Asked Questions
Does compressing a font with zip or gzip make it smaller?
You cannot zip a font file and serve it directly — browsers do not accept zipped fonts. WOFF and WOFF2 formats have compression built in at the format level. Subsetting (removing glyphs) is the right approach for further size reduction.
Can I subset a variable font?
Variable fonts can be subsetted for character coverage, though axis subsetting (limiting weight or width ranges) requires specialized tooling beyond basic glyph removal. A browser subsetter handles glyph removal on variable font TTF files.
Will a smaller font file affect how the text looks on screen?
No. Subsetting only removes glyphs that are not in your chosen character set. The rendering quality, kerning, spacing, and hinting for all retained characters are identical to the original.

