Skip to main content

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 file

3. Convert and download

Select a font to get started.

Advanced options

Loading options…

Subset fonts

Character sets

OpenType features

Variable font axes

Add a variable font to fix or narrow its axes.

Line spacing and hinting
CSS in the web font kit

Compare fallback fonts in the fallback generator ↗

Fallback fonts

CSS and code snippets

Add fonts to see the CSS.

Your CSS choices are saved in this browser.

How to subset a font

  1. Add your font files above. Every weight and style you add uses the same settings.
  2. Pick character sets, type extra characters, or enter Unicode ranges. The size updates as you change them.
  3. Check the preview. Characters your subset removes are highlighted.
  4. Keep every OpenType feature, or untick the ones you don't need.
  5. Convert, then download the WOFF2 web font kit with its @font-face CSS.

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.