FT Font Tools

Font Subsetter — Remove Unused Glyphs

Subset TTF, OTF, WOFF and WOFF2 fonts to only the characters you need with HarfBuzz hb-subset. Export WOFF2, WOFF or TTF, see size savings and preview — all in your browser.

🔒 Runs entirely in your browser — nothing is uploaded

Drop a font here or click to browse

TTF, OTF, WOFF or WOFF2. The font is processed on your device.

Add character sets

Advertisement

Make web fonts load faster by removing unused glyphs

Most fonts ship with far more characters than a website needs: accented letters for dozens of languages, Greek and Cyrillic alphabets, math symbols, arrows and alternates. Every one of those glyphs adds bytes that visitors download before your text can appear in the right typeface. Subsetting creates a copy of the font that contains only the characters you choose, which can cut the file size by 80–95% and noticeably improve page load times and Core Web Vitals.

This subsetter uses hb-subset, the same HarfBuzz engine that Google Fonts relies on, compiled to WebAssembly and running in your browser. It keeps the OpenType layout tables that apply to the retained characters, so kerning, ligatures and contextual forms still work. The result can be saved as WOFF2 for the web, as WOFF, or as a plain TTF or OTF with the same outline type as your source file.

Choosing which characters to keep

For a logo, headline or icon font, type the exact text and nothing else. For body text, start with the Basic Latin preset and add Latin-1 or Latin Extended-A if your content includes accented names or European languages. Use the unicode-range field for precise control: enter values such as U+0000-00FF or U+2000-206F, and wildcards like U+4?? are accepted too. The counter shows how many code points are selected, and the preview lets you type freely — any character that falls back to a system font was removed from the subset.

The generated @font-face rule includes a unicode-range descriptor. Browsers use it to download the font only when a page actually contains those characters, which makes it easy to split one family into several small files, for example one for Latin and one for Cyrillic. Remember that subsetting modifies the font, so confirm that your license allows it before publishing the result.

How to use

  1. Load a fontDrop a TTF, OTF, WOFF or WOFF2 file onto the box or click to browse. Its glyph count and outline type are shown.
  2. Choose the charactersType the text you need, tick character sets such as Basic Latin or Cyrillic, and optionally add a CSS unicode-range.
  3. Create the subsetPick WOFF2, WOFF or TTF/OTF output and press Create subset. HarfBuzz removes every glyph you did not select.
  4. Check and downloadCompare the size and glyph count, test the preview rendered with the new font, then download it and copy the CSS.

Frequently asked questions

How much smaller will my font get?
It depends on how many characters you keep. A full Latin, Greek and Cyrillic font of 200 KB often drops below 20 KB when reduced to Basic Latin, and a logo font with a dozen characters can shrink to 2–3 KB.
Will ligatures and kerning still work?
Yes. HarfBuzz keeps the OpenType layout rules that apply to the characters you keep, including kerning and standard ligatures. Tick “Keep all OpenType features” to also retain optional features such as small caps or stylistic sets.
What does “Remove hinting” do?
Hinting instructions help fonts render crisply on low-resolution Windows screens. Modern browsers barely use them, so removing them saves space. Untick the option if you target older Windows systems.
Is my font uploaded anywhere?
No. The HarfBuzz subsetter and the WOFF2 encoder are WebAssembly modules that run inside your browser tab. Your font never leaves your device.
Can I subset any font I own?
Subsetting modifies the font, so check the license first. Open-source fonts under the SIL Open Font License allow it; many commercial licenses require a web license or forbid modification.
Advertisement