Faster Page Loads
Smaller font files download faster, improving the LCP (Largest Contentful Paint) metric, which is crucial for site performance.
Reduce web font file size by creating a font subset. Keep only the characters you need, with support for custom characters, Unicode ranges, and a live preview. Boost your site performance and Core Web Vitals.
A font subsetter reduces font file sizes by extracting only the characters (glyphs) you actually need. A full font file may contain thousands of glyphs for multiple languages, but a website typically uses only a few hundred. Subsetting a font from 500 KB to 50 KB dramatically improves page load speed. This tool processes fonts locally using opentype.js -- no font files are uploaded.
Keep only the characters your website actually uses. Supports TTF, OTF, WOFF, and WOFF2 with Unicode ranges and live preview — all in your browser.
Upload your .TTF, .OTF, .WOFF, or .WOFF2 font file using the drag-and-drop area.
Enter all the characters that are actually used on your site into the text box. You can also add common Unicode ranges, such as U+4E00-9FFF for Chinese characters.
Select your desired output format, either OTF or TTF, from the export settings.
Click 'Create Subset'. The tool will generate a new, smaller font file. Download the optimized font and use it in your project.
Smaller font files download faster, improving the LCP (Largest Contentful Paint) metric, which is crucial for site performance.
Users see your text content quicker, reducing wait times, which can lower bounce rates and increase satisfaction.
Page speed is a key ranking factor for search engines like Google. Optimizing fonts is a powerful way to improve your Core Web Vitals score.
Your font files are processed locally. Never uploaded, never stored, never sent to a server.
Modern font files (OTF, TTF, WOFF, WOFF2) contain much more than letter shapes. A typical Latin font includes uppercase and lowercase letters, digits, punctuation, accented characters, ligatures, alternate glyphs, kerning pairs, and OpenType features (small caps, old-style figures, contextual alternates). A comprehensive font family can include 1,000+ glyphs. When you use a font on a website that only displays English text, you're shipping 90% of the font's data unused -- wasting bandwidth and slowing page load.
Font subsetting solves this by extracting only the glyphs you need. For an English-only website, you might need just the 95 printable ASCII characters -- reducing the font from 500 KB to 20-50 KB. For a site that uses basic Latin + common accented characters, you might need 200 glyphs. The subsetting tool uses opentype.js to parse the font's binary structure, extract the specified glyphs and their associated metrics (kerning, advance widths), and rebuild a valid font file with only those glyphs.
The WOFF2 format provides additional compression on top of subsetting. WOFF2 uses Brotli compression, which achieves 20-40% smaller files than WOFF. Modern browsers (Chrome, Firefox, Safari, Edge) all support WOFF2. The optimal approach is to subset the font to the needed glyphs, then encode it as WOFF2 for maximum compression. A 500 KB TTF font can be reduced to a 15 KB WOFF2 subset -- a 97% reduction.
For most websites, the simplest strategy is to subset to the Unicode Basic Latin range (U+0020 to U+007E), which covers all ASCII characters. This is sufficient for English content. For multilingual sites, subset to the specific Unicode ranges needed for each language and use the unicode-range CSS property to load only the relevant subset for each page. Google Fonts uses this technique -- it serves different subsets based on the page's content.
When subsetting, be careful not to remove glyphs that are referenced by OpenType features. For example, small caps feature (smcp) replaces lowercase letters with small capital versions -- if you remove the small caps glyphs, the feature will break. Our tool preserves the font's feature definitions but only includes the glyphs you specify. If you need OpenType features, include all glyphs that those features reference. For body text on the web, it's often best to disable complex OpenType features and subset to just the basic letterforms.
A side-by-side comparison of popular font subsetting tools.
| Feature | NovaTools | Font Squirrel | Everything Fonts |
|---|---|---|---|
| Privacy (no upload) | 100% browser | Uploads to server | Uploads to server |
| TTF, OTF, WOFF input | All formats | Limited | |
| WOFF2 output | |||
| Custom character sets | Limited | ||
| Preserves OpenType features | |||
| No registration | Email required |
Font Squirrel and other server-based subsetters require uploading your font files. Our tool uses opentype.js to parse and subset fonts entirely in your browser -- your custom or licensed fonts never leave your device.
This tool runs entirely in your browser using a client-side JavaScript font manipulation library.
Discover the best free tools for developers that boost productivity without breaking the bank. From code formatters to API testers, these tools will streamline your workflow.
Learn 12 text case styles, when to use camelCase, PascalCase, snake_case, kebab-case and Title Case, and how programming conventions differ by language.
Learn what Base64 is, when to use standard vs URL-safe Base64, and how to encode or decode text locally in your browser without uploading data.