Changing a font file from TTF or OTF to WOFF2 is usually a packaging decision, not a visual redesign. Use the converter above to choose a delivery format, decide which tables must remain, and subset only when you know every character the website will use.
The current tool processes up to 10 fonts at once, with a 20 MB limit per file. It runs in the browser so licensed font files are not sent to an upload endpoint. Conversion does not expand the license: confirm that the font agreement permits web embedding, modification, subsetting, and the intended number of sites or users.
How to convert a font online
- Add the font files. Drag, browse, or paste supported files.
- Choose an output. Select WOFF2, WOFF, TrueType, OpenType, EOT, or SVG font.
- Choose tables to keep. Preserve kerning when spacing matters and retain hinting only when the target requires it.
- Decide whether to subset. Leave it off unless you have a verified character set.
- Convert and test. Download the result, load it on a test page, and inspect every weight, style, language, symbol, and fallback.
Which font format should you choose?
| Format | Typical use | Check before delivery |
|---|---|---|
| WOFF2 | Primary web-font delivery in modern browsers | Server MIME type, CORS headers, preload use, and license |
| WOFF | Fallback for an older web-support requirement | Whether the legacy audience still justifies another file |
| TTF / TrueType | Desktop workflows or systems that request TrueType outlines | Embedding permissions and application compatibility |
| OTF / OpenType | Desktop or publishing workflows that request OpenType | Outline type and advanced-feature support in the destination |
| EOT | A specific legacy Internet Explorer requirement | Whether the project still supports that browser generation |
| SVG font | A specialized legacy or interchange workflow | Modern browser support is not the reason to choose it |
The W3C WOFF2 specification defines WOFF2 as a compressed web-font container using Brotli. Compression can reduce transfer size without deliberately simplifying glyph outlines.
Format conversion and subsetting are not the same operation
A format conversion can preserve the font's outlines and layout data while writing them into another container. Subsetting intentionally removes glyphs and related data. That distinction matters: a small subset may work on an English landing page and fail later when a customer name contains an accented character, a price uses another currency, or translated copy is added.
Keep a full original outside the web build. Treat the subset as a generated delivery asset, not the master font.
Kerning, hinting, and other tables
| Choice | What it affects | Safe default |
|---|---|---|
| Kerning | Pair-specific spacing such as combinations in headings and logos | Keep it unless the destination has a documented reason not to |
| Hinting | Instructions for rasterizing outlines on some older or specific systems | Test the target devices before removing it |
| Subset | The glyphs and characters that remain available | Off until the required repertoire is complete |
Removing a table because it looks large is not automatically an optimization. Measure the transfer saving and compare it with the visual, language, and compatibility cost.
Build a safe character subset
- Collect visible page copy, navigation, forms, validation messages, and dynamically loaded content.
- Add uppercase, lowercase, numbers, punctuation, currencies, mathematical signs, and legal symbols the product may display.
- Add every supported language, name, and user-generated character range.
- Generate the subset and run automated pages plus real content.
- Force failures: accents, smart quotes, em dashes, non-breaking spaces, and localized prices.
Static subsetting is risky for user-generated content because the next character is unknown. A full font or a carefully designed language-specific family may be safer than one aggressive subset.
Deploy the converted font correctly
- Use a consistent family name and matching weight/style declarations.
- Serve WOFF2 with the correct font MIME type.
- Configure cross-origin access when the font and stylesheet use different origins.
- Preload only the file needed immediately; unnecessary preloads compete with critical resources.
- Define a practical fallback stack and test layout shift.
- Keep proof of the license and the conversion settings used for the build.
Why local font processing matters
Fonts are often licensed assets rather than ordinary uploads. The live SocialPageAtlas converter states that parsing and rewriting happen on the device and that there is no upload endpoint. Local processing reduces unnecessary distribution, but it does not override the font license or remove the need to secure the downloaded output.
Troubleshooting converted fonts
| Problem | Likely cause | What to check |
|---|---|---|
| Missing characters | The subset omitted a glyph or mapping | Rebuild from a complete character inventory |
| Headings look uneven | Kerning or layout data was removed | Convert again with required tables preserved |
| Font downloads but does not render | MIME, CORS, CSS source, or internal naming mismatch | Inspect the network response and computed font family |
| One weight appears for every style | Incorrect CSS weight/style mapping | Match each file to its real metadata |
| The file is not smaller | The source was already optimized or extra tables remain | Compare formats and subset only when safe |
Choose the format for the delivery environment
For a modern website, WOFF2 is the usual first candidate; for another workflow, follow its documented requirement. Preserve the master, test the output, and remove characters only with evidence. To create decorative Unicode text rather than convert a font file, use the Instagram font generator. Browse more utilities in the creator toolbox.