How to reduce font file size without losing quality (using FontForge)

written by

Filip Załęski
Co-founder

PUBLISHED ON

09 Mar 26

category

Table of contents

    Key takeaways

    1. Removing unused glyphs is the fastest way to reduce font file size without losing quality - and it requires no design changes.
    2. FontForge is free, open-source, and works on Windows, macOS, and Linux.
    3. In this example, Inter Regular goes from 302 KB to ~10 KB (30× smaller) after removing non-Latin glyphs.
    4. Export as WOFF2 - the most compressed, widely-supported web font format available.
    5. Font optimization is one of the highest-impact fixes in a broader Webflow page speed audit.

    FontForge is a free, open-source font editor that lets you remove unused glyphs from a font file, reduce its size by up to 97%, and export a lightweight WOFF2 file - without any visible change to how the font looks on screen. This guide walks through the full process step by step.

    What is FontForge?

    FontForge is a free, open-source font editor available for Windows, macOS, and Linux. It gives you full control over the glyphs inside a font file - letting you edit, remove, or reorder characters and export the result in any web font format including WOFF2.

    Most web developers reach for FontForge specifically for one task: glyph subsetting - removing characters the website never uses. A standard font file often contains thousands of glyphs covering Latin, Cyrillic, Greek, Arabic, extended punctuation, and special symbols. If your site only uses English, you are forcing every visitor to download characters they will never see.

    FontForge lets you keep only the characters you need and discard the rest. The font looks and behaves identically on screen - it is just dramatically smaller.

    Why font file size matters for page speed

    Fonts are one of the most overlooked sources of page weight. Because they load globally - on every page, for every visitor - even a small reduction compounds across the entire site. As part of a complete Webflow page speed optimization strategy, font subsetting consistently delivers one of the highest effort-to-impact ratios.

    The most common reasons font files become unnecessarily large:

    • The font includes character sets for dozens of languages the site never uses
    • Multiple font weights (400, 500, 600, 700, 800) load on every page, each as a separate file
    • Fonts are served in TTF or OTF format instead of the more compressed WOFF2
    • External font APIs (Google Fonts, Adobe Fonts) load additional blocking requests

    If your site loads multiple font families or weights, the cumulative weight can easily reach 500 KB–1 MB of fonts alone. Each of those kilobytes counts toward Webflow's bandwidth limits and increases Time to First Byte and First Contentful Paint on every page load.

    Results: how much can you actually save?

    Before walking through the steps, here is the concrete result from this example - optimizing Inter Regular using FontForge with a Latin-only subset:

    MetricBefore optimizationAfter optimization
    Font file size302 KB (Inter Regular)~10 KB
    Size reduction-~30× smaller (96.7%)
    Glyphs includedFull charset (all languages)Latin only (A–Z, a–z, 0–9, punctuation)
    Visual quality-Identical - no visible change
    Export formatTTF / OTFWOFF2

    That is a 96.7% reduction in font file size with zero visual change. If your site loads 3–4 font weights, the same process applied to each can save 800 KB–1.2 MB of total page weight - a meaningful improvement to Lighthouse scores and Core Web Vitals across every page on the site.

    QUICK WIN: Even reducing a font from 300 KB to 80 KB (a conservative subset) across 4 weights saves 880 KB per page load. At 10,000 monthly visits, that is 8.8 GB of bandwidth saved per month.

    How to remove unused glyphs in FontForge: step by step

    This tutorial uses Inter Regular (302 KB) as the example font. The same process applies to any TTF, OTF, or WOFF font file.

    Step 1- Download and install FontForge

    Download FontForge from the official FontForge website. It is available for Windows, macOS, and Linux - and completely free. Install and launch it.

    Step 2- Open your font file

    In FontForge, go to File → Open and select the font file you want to optimize. FontForge accepts TTF, OTF, WOFF, and WOFF2 files.

    Once loaded, FontForge displays a glyph grid - a visual map of every character in the font. For Inter Regular, this includes several hundred glyphs spanning Latin, Cyrillic, Greek, extended punctuation, and special symbols.

    Step 3 - Select the glyphs you want to keep

    Click and drag to select the characters your site actually uses. For a standard English-language website, this typically means:

    • Uppercase letters: A–Z
    • Lowercase letters: a–z
    • Numbers: 0–9
    • Common punctuation: . , ! ? : ; ' " ( ) - - / @ # & % $ + = space
    • Any accented characters your content uses (é, ü, ñ, etc.)

    Hold Shift and click to extend the selection. Hold Ctrl (Windows/Linux) or Cmd (macOS) to add individual glyphs to the selection.

    QUICK WIN: Not sure which characters your site uses? Copy all text from your site into a text editor and scan it. Or use Glyphhanger (a Node.js CLI tool) to automatically crawl your site and identify the exact glyph set needed.

    Step 4 - Invert the selection

    You have selected the glyphs you want to keep. Now invert the selection to select everything you want to remove:

    Edit → Select → Invert Selection

    FontForge will now highlight all the glyphs that are not in your keep list - all the Cyrillic characters, Greek alphabet, extended symbols, and any other characters your site does not use.

    Webflow Bandwidth:

    What You Need to Know

    Decode what’s happening behind the scenes,

    Get the ebook

    Step 5 - Remove the unused glyphs

    With the unused glyphs selected, delete them:

    Encoding → Detach & Remove Glyphs

    This permanently removes the selected characters from the font file and keeps only the glyphs in your original selection. The glyph grid will now show a much smaller, cleaner character set.

    Step 6 - Export as WOFF2

    Generate the optimized font file:

    File → Generate Fonts

    In the format dropdown, select WOFF2. WOFF2 uses Brotli compression and is the most efficient web font format available - significantly smaller than TTF, OTF, or even WOFF. It has full support in all modern browsers.

    During export, FontForge may show warnings about em-size or other metrics. In most cases these can safely be ignored for subsetting purposes.

    Your exported WOFF2 file now contains only the glyphs your site needs. Upload it to Webflow via Project Settings → Fonts → Upload a font, then assign it to your elements as you would any custom font.

    Naming tip: When uploading a subsetted font to Webflow, rename it slightly (e.g. 'Inter Web' instead of 'Inter') so Webflow does not attempt to reconnect to the Google Fonts API for the same family name. This ensures your custom file is always used.

    When font subsetting is worth doing

    Subsetting makes the most sense when:

    • Your site loads multiple font weights (each weight is a separate file - all benefit from subsetting)
    • The font file is over 100 KB and your site only uses a standard Latin character set
    • You are targeting Core Web Vitals improvements, particularly LCP and FCP
    • You want to reduce Webflow bandwidth usage across high-traffic pages
    • You are self-hosting fonts rather than loading them from Google Fonts or Adobe Fonts

    Subsetting is less necessary when:

    • You are using Google Fonts or Adobe Fonts CDN - these services already handle subsetting automatically via unicode-range descriptors
    • The font is a variable font - subsetting variable fonts is more complex and not covered by this guide
    • The font already has a small file size (under 30 KB) - the effort may not be worth it

    FontForge alternatives: other ways to reduce font file size

    FontForge is the most powerful option, but it is not the only one. Here is how it compares to other tools:

    ToolBest forInterfaceFree?
    FontForgeFull glyph control, custom subsettingDesktop appYes - open source
    TransfonterQuick format conversion + subsettingBrowser (online)Yes (free tier)
    Font SquirrelWebfont kit generationBrowser (online)Yes
    Glyphhanger (CLI)Automated subsetting from page crawlCLI / Node.jsYes - open source
    Adobe Fonts / Google FontsFast font delivery, no subsetting neededCDN embedYes (with caveats)

    For most Webflow projects, FontForge or Transfonter will cover all subsetting needs. If you are working in a team that runs automated performance pipelines, Glyphhanger is worth exploring - it can crawl your live Webflow site and generate an exact subset based on characters that actually appear on-page, eliminating any guesswork.

    Font optimization as part of a broader performance strategy

    Font subsetting is one of several font-specific fixes in a complete performance workflow. If you are working through a full Webflow page speed optimization checklist, the full font optimization sequence looks like this:

    1. Subset fonts with FontForge (this guide) - remove unused glyphs from each weight
    2. Export as WOFF2 - always use WOFF2 over TTF, OTF, or WOFF
    3. Limit font families and weights - audit your project and remove any weight where the visual difference is negligible
    4. Remove external font API connections - upload fonts as custom files and rename them to prevent Webflow reconnecting to Google Fonts or Adobe Fonts
    5. Consider system fonts for body text - system fonts require zero download and can eliminate body font loading entirely

    Together, these steps typically reduce total font weight from 400–800 KB to under 50 KB - enough to produce a measurable improvement in Lighthouse scores and Core Web Vitals on any page. If your site also handles high traffic, reducing font file size contributes directly to lower Webflow bandwidth costs since every font file download counts against your plan's bandwidth allocation.

    Summary

    Removing unused glyphs is the single most impactful way to reduce font file size without any visual change. For a standard English-language Webflow site:

    • Open the font in FontForge
    • Select the glyphs you need (A–Z, a–z, 0–9, punctuation)
    • Invert the selection and use Detach & Remove Glyphs
    • Export as WOFF2
    • Upload to Webflow and rename to prevent API reconnection

    Applied to every font weight your site loads, this process typically reduces total font weight by several hundred kilobytes - a meaningful, measurable improvement to page speed, Core Web Vitals, and Webflow hosting costs. It sits alongside image compression and script auditing as one of the three fastest wins in any Webflow performance optimization project.

    Frequently Asked Questions

    1

    /

    6

    How do you remove unused glyphs in FontForge?

    Open the font in FontForge, select the glyphs you want to keep, then go to Edit → Select → Invert Selection to highlight everything else. Remove the unused glyphs via Encoding → Detach & Remove Glyphs, then export the result via File → Generate Fonts in WOFF2 format. The full step-by-step process is covered above.

    2

    /

    6

    How do I reduce font file size without losing quality?

    Remove unused glyphs from the font file - this is the most effective technique and has zero impact on visual quality. A font with unused Cyrillic, Greek, and extended characters removed looks identical on screen. The only difference is file size. For a standard English-language website, a Latin-only subset is sufficient and typically reduces file size by 60–97% depending on how many languages the original font supported.

    3

    /

    6

    Is FontForge free?

    Yes. FontForge is fully free and open-source, available under the BSD licence. It is available for Windows, macOS, and Linux from fontforge.org.

    4

    /

    6

    Can FontForge edit existing fonts?

    Yes. FontForge lets you open any TTF, OTF, WOFF, or WOFF2 file and modify it - including editing glyph shapes, adjusting spacing and kerning, adding or removing characters, and changing font metadata. For web performance work, the most common use is glyph removal, as covered in this guide.

    5

    /

    6

    What font formats does FontForge support?

    FontForge can open and export TTF, OTF, WOFF, WOFF2, SVG fonts, and several others. For web use, always export as WOFF2 - it is the most compressed format with full modern browser support.

    6

    /

    6

    FontForge vs Glyphs - which should I use for font optimization?

    FontForge and Glyphs serve different purposes. Glyphs is a professional font design tool for macOS (paid), best for creating or extensively editing typefaces. FontForge is a free cross-platform editor better suited for optimization tasks like subsetting and format conversion. For the purpose of reducing font file size on a Webflow site, FontForge is the right tool - Glyphs is more than you need.