By default ICO file format store data as BMP file format which is an uncompressed image format, that is why the favicon.ico file is so big.
You can either save the data as PNG by exporting using GIMP, or send it compressed by gzip. Beware that not all browser support PNG format favicon.ico, and those very old browsers (IE < 6) neither support gzip compression.
Nowadays, most modern browsers support <link>
method into the HTML source code to specific favicon of different size and format. You can add something like this into your source code to use PNG and SVG file format favicons.
<head>
<link rel="icon" href="/favicon-32x32.png" type="image/png" sizes="32x32">
<link rel="icon" href="/favicon-16x16.png" type="image/png" sizes="16x16">
<link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="any">
</head>
You can check more tips to optimize your favicon in this guide.