Font Subsetting Guide: Smaller Files, All Glyphs
Subsetting is the highest-impact font optimization available. Here is how I subset fonts safely without dropping glyphs users need. Font subsetting is the practice of removing glyphs from a font file that the site does not use, and it is the single most effective way to reduce font file size. A typical Latin variable font from Google Fonts includes coverage for Latin Extended, Vietnamese, and several other writing systems, and that coverage can double or triple the file size. Subsetting to the characters a site actually uses routinely cuts file size by sixty percent or more. The risk is dropping a glyph that the site does need, which produces a visible gap in the text. Here is how I subset safely. Identify the Character Sets You Need Before subsetting, I audit the actual character content of the site. For an English-only site, the basic Latin range covers most text, but the site likely also uses curly quotes, em dashes, and other punctuation from the Latin Extended range. For a multilingual site, I need to account for every language the site will display. I extract all unique characters from the site content and use that set as the basis for the subset, with a margin for content that may be added later. The common Unicode ranges I work with are Basic Latin (U+0020 to U+007E), Latin-1 Supplement (U+00A0 to U+00FF), Latin Extended-A (U+0100 to U+017F), and Latin Extended-B (U+0180 to U+024F).