Why Korean Fonts Are 13 Times Bigger Than English Ones

Photo by Raphael Schaller on Unsplash

Malgun Gothic, the Korean font that ships with Windows, is 13.46 MB on my PC. Arial, sitting in the same folder, is 1.05 MB. That makes the Korean font file almost thirteen times larger, and anyone who has tried to put a Korean font on a website has run into some version of that gap.

The obvious guess is that Korean is a complicated script. It is not, really. Korean has 24 basic letters. The size comes from how those letters are stored, and once you see the arithmetic, the way Korean web fonts are delivered today makes a lot more sense.

The number: 28,215 glyphs against 4,651

I wrote a short script that reads the tables inside each font file and counts what is there. These are the fonts installed on my own Windows PC, measured in October 2026:

Font file Size Glyphs Hangul syllables
Malgun Gothic (malgun.ttf) 13.46 MB 28,215 11,172
Arial (arial.ttf) 1.05 MB 4,651 0
Segoe UI (segoeui.ttf) 0.96 MB 5,394 0

Malgun Gothic also covers 7,476 Chinese characters, because Korean text still uses hanja in names, legal documents and some newspapers. But even without those, the Korean syllables alone outnumber everything in Arial more than twice over.

Where 11,172 comes from

Korean letters are not written in a line the way Latin letters are. They are stacked into syllable blocks: a consonant, a vowel, and optionally a final consonant, arranged into a square. The word 한글 is two blocks, each built from three letters.

A font cannot just draw the letters once and line them up. The shape and position of each letter change depending on what else is in the block. So digital Korean fonts draw every possible block as its own glyph, and the Unicode standard gives each of them its own code point. The count is plain multiplication:

📌 19 initial consonants × 21 vowels × 28 final options (including none) = 11,172 syllables. Unicode reserves exactly that many code points for them, U+AC00 to U+D7A3, and Malgun Gothic maps every one.

An English font needs one “a”. A Korean font needs a separate drawing of 가, 각, 갂, 갃 and so on, eleven thousand times. Multiply that by eleven thousand and you have most of the 13 MB.

Korean text in Hangul spelled out in pink and blue neon

Photo by Tsuyuri Hara on Unsplash

Most of those syllables are almost never used

The old Korean character set that most of the country used for decades, KS X 1001, only included 2,350 of the 11,172 syllables. It was a selection of the ones that actually appear in normal writing, and for everyday text it was mostly enough.

That same character set is the basis of the cp949 encoding that still causes broken Korean text on foreign computers, which I covered in why files from Korea arrive as gibberish. The 2,350 limit had one memorable failure: names and newer words using a syllable outside the list could not be typed in some older systems at all.

For fonts, the gap between 2,350 and 11,172 is an opportunity. I counted the distinct syllables on four pages of my own Korean developer blog, sidebar and menus included. Each used between 313 and 358. Sending all eleven thousand to every visitor is wasteful.

How Korean web fonts are actually delivered

Google Fonts deals with this by cutting the font into many small pieces and letting the browser fetch only the ones a page needs. Each piece is declared with a CSS unicode-range, and the browser downloads a slice only if the page contains a character from it. I requested the regular weight of each font from the Google Fonts API and added up the slices:

Google Fonts, regular weight Slices All slices combined
Noto Sans KR 124 1.78 MB
Noto Sans (Latin and other scripts) 8 155 KB

The Korean slices average about 15 KB each. I checked those same four blog pages against Google’s slice boundaries: each would need between 17 and 20 of the 124 slices, a few hundred kilobytes rather than the full 1.78 MB. The compressed WOFF2 format also makes even the full set far smaller than the 13 MB desktop file.

⚠️ The trade-off is requests, not bytes. Slicing saves bandwidth, but a long Korean article can trigger dozens of small font downloads, and text in an unloaded slice briefly renders in a fallback font. Self-hosting a single font file avoids that and costs megabytes instead. Neither option is free.
a printed page of Korean text showing many different Hangul syllable blocks

Photo by COSMOH on Unsplash

What this means if you are building a Korean site

If you only need Korean text to display, the cheapest choice is not to ship a font at all. Windows has Malgun Gothic, Macs and iPhones have Apple SD Gothic Neo, and Android has a Korean system font. A CSS font stack that names those first costs nothing to load.

If the design calls for a specific Korean typeface, use a service or build step that subsets it, either the way Google Fonts does with unicode-range slices, or by generating a file that contains only the syllables your pages use. On the pages I measured, that would mean roughly 300 to 360 syllables instead of 11,172.

What not to do is the thing the file sizes invite: dropping a full desktop TTF into a stylesheet. At 13 MB, that is larger than everything else on most pages put together.

❓ FAQ: Frequently Asked Questions

Why is a Korean font file so large?

Korean letters combine into syllable blocks, and fonts draw each possible block separately. Unicode defines 11,172 of them, so a complete Korean font carries over ten thousand glyphs before counting Latin letters or Chinese characters.

Do Chinese and Japanese fonts have the same problem?

Yes, for a different reason. They need thousands of distinct characters rather than combinations of a small alphabet, so their fonts are also large and are delivered in slices the same way.

How many Korean syllables does a normal page use?

Far fewer than the full set. The old KS X 1001 standard covered 2,350 syllables and that handled most everyday writing, and any single page uses only a fraction of even that.

Is it safe to rely on system fonts for Korean?

For body text, generally yes. All major desktop and mobile systems include a Korean font. The text will look slightly different on each platform, which matters for branding but rarely for readability.

Font measurements come from the files installed on my Windows PC, read with a small script that counts glyphs and mapped code points. Google Fonts slice counts and sizes were measured from the Google Fonts CSS API for the regular weight in October 2026 and will change as Google updates its fonts.