🔤 Font Subsetter
Subset TTF, OTF, or WOFF2 fonts — keep only the character ranges you need and reduce font file size by up to 90%
Drop a font file here or click to browse
TTF · OTF · WOFF2
About this tool
Font subsetting removes glyphs your website doesn't use, slashing font file size by 50–90%. A full Noto Sans with Latin + Cyrillic + CJK weighs 3–6 MB; subset to Latin-only and it drops below 100 KB — cutting page load time and bandwidth for every visitor.
Select the Unicode ranges your content actually uses: Latin for English/French/Spanish, Cyrillic for Russian/Ukrainian, CJK for Chinese/Japanese, and so on. You can also paste specific characters into the custom field. The tool uses the HarfBuzz shaping engine to produce a valid, standards-compliant subset font.
Example: a 2.1 MB font with full Latin + Cyrillic + Greek + CJK coverage, subsetted to Latin only, shrinks to 62 KB — a 97% size reduction while keeping all A–Z, a–z, 0–9, punctuation, and accented characters intact.
FAQ
What formats are supported? ›
TTF (TrueType), OTF (OpenType with CFF or TrueType outlines), and WOFF2. The output keeps the original format — a TTF in gives a TTF out. WOFF is also accepted but less common.
Will the subset font still work as a web font? ›
Yes. The subset font is a valid, self-contained OpenType file with correct cmap, name, and glyph tables. It works in @font-face declarations, desktop apps, and anywhere the original font worked — just smaller.
Why is my CJK font still large after subsetting? ›
CJK fonts have tens of thousands of glyphs. Even a "small" subset of ~3,000 common CJK characters can still be several megabytes. For web use, consider serving CJK fonts via a service that splits them by character frequency, or stick to system fonts for CJK text.
Does subsetting affect hinting or OpenType features? ›
HarfBuzz preserves the OpenType tables (GSUB, GPOS, etc.) for the kept glyphs. Hinting data is preserved as well. Ligatures, kerning, and other features continue to work for the included character set.