About this tool
Remove unused glyphs and build a web-optimized WOFF2 font subset.
The Font Subsetter & WOFF2 Converter plans a font subset: you load a font from your own machine, paste the exact characters your site needs, and it reports which of them the font can render and exports a JSON manifest recording the source file, the requested character set and the covered set. It deliberately does not fabricate a WOFF2 file — browsers have no native WOFF2 encoder, so the manifest is the honest output and the actual repackaging is done by a dedicated tool such as pyftsubset from fonttools. The font never leaves your browser, which matters when the licence forbids uploading it.
Open Font Subsetter & WOFF2 Converter on AltFTool — it loads instantly in your browser.
Pick your font with the "Local file(s)" chooser — it is read in the browser session and never uploaded, which is what makes this usable on a licence that forbids sending the file out.
Paste the exact characters your page needs into "Characters, metadata edits, or processing notes" — leave it blank to test A–Z, a–z and 0–9 — then press Run local workbench.
The result reads "N/M requested characters supported", lists the characters that resolved, and downloads altftool-font-subset-manifest.json; the WOFF2 subset row states that a dedicated encoder such as pyftsubset is required.
The requested characters are checked against the font first, so you find missing glyphs at planning time rather than after the subset ships.
The JSON records source filename, requested characters and covered characters — a handover artefact for a build script or a colleague.
Rather than emitting a renamed file and calling it a WOFF2 subset, it states plainly that browser-native WOFF2 encoding is unavailable.
No. It exports a JSON subset manifest and explicitly reports that no browser-native WOFF2 subset was fabricated. Browsers can decode WOFF2 but expose no encoder, so a genuine subset has to be built with a dedicated tool — pyftsubset from the fonttools package with --flavor=woff2 is the standard route.
It registers your font under a temporary family through the FontFace API and asks the browser, for each unique character you entered, whether that family can render it at 24px. The result is a supported-of-requested count plus the list of characters that resolved.
No. The file is read locally and registered in your browser session only. That is the point of doing the audit here — many commercial font licences prohibit sending the file to a third-party service, even a conversion one.
Because a full Latin-plus font carries hundreds of glyphs a given page never draws, and the unused outlines are pure download weight. Cutting a face to only the characters a headline or a UI actually uses routinely removes the large majority of the file, which is why subsetting is standard practice for self-hosted web fonts.
Add the Font Subsetter & WOFF2 Converter widget to your blog or website — free, responsive, no signup. Just keep the “Widget by AltFTool” credit link visible.
<iframe src="https://www.altftool.com/embed/widget/font-subsetter-woff2-converter"
title="Font Subsetter & WOFF2 Converter — free AltFTool widget"
width="100%" height="640" style="border:0;border-radius:12px;overflow:hidden"
loading="lazy" referrerpolicy="no-referrer-when-downgrade" allow="clipboard-write"></iframe>
<p style="font-size:12px;margin:4px 0 0">Widget by <a href="https://www.altftool.com/tools/all/font-subsetter-woff2-converter?utm_source=embed&utm_medium=widget" rel="nofollow">AltFTool — free online tools</a></p>