Make your web fonts dramatically smaller

Upload a font and strip out the characters, languages and features you don't use, often cutting file size by 70% or more. Faster fonts mean faster pages and better Core Web Vitals, and your font files never leave your browser.

[ Questions ]

Font subsetting, answered

Rheed MacPherson, founder of Signal Studio

Can’t find your answer?

Book a Discovery call and ask us directly.

Book a Discovery call
What is font subsetting?

Subsetting makes a copy of a font that holds only the characters, OpenType features and variable axis ranges you need. The letters you keep look exactly the same, but the file is a fraction of the size.

Are my font files uploaded anywhere?

No. The subsetter runs entirely in your browser, using WebAssembly. Your fonts are never sent to a server, which matters for commercial fonts with strict licences.

How much smaller will my font get?

It depends on how many languages the font covers. A multilingual font cut down to Western European characters usually shrinks by 70 to 95%. A font that already covers only Latin may shrink by 30 to 60%, mostly from WOFF2 compression and removed hinting.

What happens if a visitor types a character I removed?

The browser shows that one character in the next font in your font-family stack. The unicode-range in the CSS also tells the browser to skip downloading the subset on pages that do not need it.

Am I allowed to subset my font?

Open source fonts under the SIL Open Font License can be subset freely. Commercial fonts vary, so check your web font licence. Many foundries allow subsetting for self-hosting, and some require you to keep the original name. The tool warns when a font says it must not be embedded.

Does subsetting help Core Web Vitals?

Yes. Smaller fonts download sooner, which shortens the time your headline is invisible or shown in a fallback font. That improves Largest Contentful Paint and, with font-display: swap and good fallback metrics, reduces layout shift.

Can I subset Google Fonts?

Yes. Download the family, add the files here and self-host the result. Google already splits its fonts by script, so the biggest gains come from exact text subsets and from limiting variable weights.

Rheed MacPherson, founder of Signal Studio

Can’t find your answer?

Book a Discovery call and ask us directly.

Book a Discovery call
Signal Studio
Book a Discovery call
FONT-SUBSETTER.MD FONT-SUBSETTER

# Font Subsetter

 

Make web fonts smaller in your browser: keep only the characters, features and weights you use, then download WOFF2 and the CSS. Free, nothing uploaded.

 

## What it does

 

Makes TTF, OTF, WOFF and WOFF2 fonts smaller by keeping only the characters, OpenType features and variable axis ranges a site uses, then writes WOFF2 (and WOFF or TTF/OTF if asked) with matching @font-face CSS, an exact unicode-range and a preload tag. Several fonts at once download as one ZIP.

 

## How it works

 

The font is opened in the browser and its scripts, features and axes are listed. HarfBuzz, the text engine inside Chrome, Firefox and Android, removes every glyph, feature and axis range left out. The subset is compressed to WOFF2 with Google's Brotli encoder. Everything runs as WebAssembly in the browser.

 

## What to keep

 

Start from the languages the site is written in. English: Basic Latin and General Punctuation, which covers curly quotes, dashes and the ellipsis. Western European: add Latin-1 Supplement and the euro sign. Polish, Czech, Turkish, Māori and Vietnamese: add Latin Extended-A and Latin Extended Additional. A logo or headline font: keep the exact text, often under 5 KB.

 

## Features and axes

 

Keep kerning, ligatures and contextual alternates: they make text look right and cost little. Stylistic sets, character variants, fractions and alternate figures can go unless the CSS turns them on. For a variable font, limiting weight to the range in use, for example 400 to 700, removes the design data for every other weight; fixing an axis makes a static font.

 

## Private

 

Fonts never leave the browser: nothing is uploaded, which matters for commercial fonts with strict licences.

 

## What is font subsetting?

 

Subsetting makes a copy of a font that holds only the characters, OpenType features and variable axis ranges you need. The letters you keep look exactly the same, but the file is a fraction of the size.

 

## Are my font files uploaded anywhere?

 

No. The subsetter runs entirely in your browser, using WebAssembly. Your fonts are never sent to a server, which matters for commercial fonts with strict licences.

 

## How much smaller will my font get?

 

It depends on how many languages the font covers. A multilingual font cut down to Western European characters usually shrinks by 70 to 95%. A font that already covers only Latin may shrink by 30 to 60%, mostly from WOFF2 compression and removed hinting.

 

## What happens if a visitor types a character I removed?

 

The browser shows that one character in the next font in your font-family stack. The unicode-range in the CSS also tells the browser to skip downloading the subset on pages that do not need it.

 

## Am I allowed to subset my font?

 

Open source fonts under the SIL Open Font License can be subset freely. Commercial fonts vary, so check your web font licence. Many foundries allow subsetting for self-hosting, and some require you to keep the original name. The tool warns when a font says it must not be embedded.

 

## Does subsetting help Core Web Vitals?

 

Yes. Smaller fonts download sooner, which shortens the time your headline is invisible or shown in a fallback font. That improves Largest Contentful Paint and, with font-display: swap and good fallback metrics, reduces layout shift.

 

## Can I subset Google Fonts?

 

Yes. Download the family, add the files here and self-host the result. Google already splits its fonts by script, so the biggest gains come from exact text subsets and from limiting variable weights.