Drop a square picture and get the full set: a favicon.ico containing several sizes in one file, PNGs from 16 up to 512 pixels, and the 180 pixel apple-touch-icon. The .ico is assembled properly rather than being a renamed PNG, which matters because a browser asks the file which sizes it holds. A picture that is not square is cropped from the centre rather than squashed, since a squashed logo at 16 pixels is unrecognisable.
This page loads no libraries at all — the work is done by the browser itself. Your file is read on your own machine and never sent anywhere — open your browser's network tab and watch while you use it.
Because different places ask for different ones: the tab wants 16 pixels, the bookmarks bar 32, a desktop shortcut 48. A single file holding all three lets each consumer pick, which is what the format was designed for. A renamed 32 pixel PNG works in most modern browsers and looks blurry everywhere the browser has to scale it.
For most sites: favicon.ico at the root, a 32 pixel PNG, the 180 pixel apple-touch-icon for iOS home screens, and 192 and 512 pixel PNGs if you have a web manifest. The rest are there for completeness. All of them are produced so you do not have to come back.
It is cropped to a square from the centre, not stretched. At sixteen pixels a stretched logo turns into a smear and nobody can tell why, whereas a centre crop at least keeps the proportions of whatever survives. If the important part is off-centre, crop it yourself first.
Yes — a proper icon directory with an entry per size, each pointing at a PNG payload, which every browser since Windows Vista reads. The byte layout is checked by a test that would catch an offset being off by one, because a malformed .ico is not rejected by anything: it simply shows nothing.
Everything here is free and works the same way — in your browser.