A typical web font ships every Latin glyph plus extensive language coverage you do not use. Subsetting to just the characters you render trims it by 50–80%.
For English-only sites, a Latin-only subset is typically 30–50KB instead of 200KB+. Variable fonts add more savings — one file, many weights.
Tools: glyphhanger or pyftsubset. For Google Fonts, append ?text=... to the URL for dynamic subsetting.