A reliable TTF to WOFF2 workflow
- Check whether the license permits web embedding, conversion and modification/subsetting.
- Keep only the weights the page actually uses.
- Use a WOFF2 converter such as fonttools or woff2_compress.
- Choose a latin or latin-ext subset when the full glyph set is unnecessary.
- Declare the format in @font-face and verify fallback and loading in DevTools.
WOFF2 and performance
A smaller font can reduce transfer, but preloading unused weights can hurt priorities. Measure size, download time, CLS and LCP instead of assuming every font improves the result.
Does the online tool create a WOFF2 file?
CometWeb previews the font, lets you choose a glyph subset and generates a downloadable WOFF2 file locally in the browser. Check glyph coverage, weights and your @font-face declaration before shipping.
Declaration and glyph checks
Test ąćęłńóśźż and ĄĆĘŁŃÓŚŹŻ, digits, currencies and punctuation at each used weight. A subset named latin does not guarantee Polish glyphs. unicode-range only controls file selection; it does not add missing glyphs, and an incorrect range can force fallback.
@font-face {
font-family: "Site Font";
src: url("/fonts/site-regular.woff2") format("woff2");
font-style: normal;
font-weight: 400;
font-display: swap;
}
body { font-family: "Site Font", sans-serif; }Use a converter that supports WOFF2, such as fonttools or woff2_compress, select the required subset and verify the result in an @font-face declaration. Renaming the extension is not conversion.
Usually yes. WOFF2 uses Brotli compression and a structure suited to web fonts. The difference depends on the font, glyph count and subset.
WOFF2 works in modern browsers. Add a WOFF fallback only when real traffic or browser support requirements justify it.
Sources & further reading
- W3C — WOFF File Format 2.0 standard
- MDN — @font-face format() docs
- Google Fonts — Knowledge docs