Drop a PNG above, get a favicon .ico back holding every size a browser asks for.
A favicon is not one image. The .ico container carries the same artwork at several sizes so each place that draws it can take the one that fits: 16 pixels in a browser tab, 32 in a bookmarks bar, 48 in a Windows shortcut, 256 in a desktop tile. Ship a single size and everything else scales it, which is where the blurry tab icons come from.
This builds 16, 32, 48 and 256 in one file, drawing each from your original rather than from the size above it.
Nothing is upscaled. If your source is 64 pixels across, the 256 is dropped rather than invented, because an icon claiming detail it never had looks worse than a smaller one that does not. Start from at least 256 pixels square if you want the full set.
Square art works best. A rectangular image is fitted to the longest side and centred, which leaves space above and below rather than stretching the picture. Crop it square first with the crop tool if you want to control what survives.
Transparency comes through, letting an icon sit on a light or dark tab strip without a box around it.
Reading one instead of writing one: ICO to PNG takes an existing favicon apart and hands back the largest image inside it.
Drop the PNG once and the .ico that comes back covers every size in that list.