Free online font subsetter
Subset a font to the characters you need
Drop in a font or a whole family, choose the characters your site uses, and see the real file size as you go. You get WOFF2 files and CSS with the matching unicode-range, with ligatures and kerning intact.
Font subsetter
Keep only the characters you need.
Private by design · no file upload
1. Add your fonts
Up to 25 MB per file3. Convert and download
Select a font to get started.
Advanced options
Loading options…
How to subset a font
- Add your font files above. Every weight and style you add uses the same settings.
- Pick character sets, type extra characters, or enter Unicode ranges. The size updates as you change them.
- Check the preview. Characters your subset removes are highlighted.
- Keep every OpenType feature, or untick the ones you don't need.
- Convert, then download the WOFF2 web font kit with its
@font-faceCSS.
Why subset a web font
A complete font often carries thousands of characters your pages never show. Removing them can cut the file to a small fraction of its size, so text appears sooner, especially on slow mobile connections.
The sizes shown are measured on the real subset files, not estimated. The same panel also sets the font-display value, local() sources, base64 embedding, and the font folder used in the CSS.
Good to know
Subsetting questions
Are my fonts uploaded?
No. Subsetting runs in your browser with HarfBuzz, the same text engine many browsers and design tools use. The fonts never leave your device.
Will ligatures and kerning still work?
Yes, by default every OpenType feature is kept, including ligatures, kerning, and stylistic alternates, and the glyphs those features need come along. If you know you will never use a feature, untick it in the list to save a little more space.
What is unicode-range, and do I need it?
unicode-range tells the browser which characters a font file covers, so it only downloads the file when the page uses one of them. The web font kit adds the exact range of characters your subset keeps, so you can serve several subsets of one family side by side.
Which character set should I pick?
Start with Latin, as Google Fonts serves it: English and Western European letters, plus the curly quotes, dashes, ellipsis, € and ™ that real text uses. It is selected by default. Add Latin Extended-A for Central and Eastern European languages. If your text is fixed, such as a logo or a headline, untick the sets and type it into Extra characters instead.
Can I subset a variable font?
Yes. The axes are kept, so the subset still covers the full weight range. The CSS lists that range in font-weight.
Am I allowed to subset a font?
Subsetting changes the font file, so check that your license allows modification. Many open-source licenses do, while some commercial web font licenses limit it.