ICO vs PNG favicons
One is a container, one is an image — and yes, you still want both.
Updated · 3 min read
The confusion starts with a category error: PNG is an image; ICO is a container that holds several images. One .ico file typically packs 16, 32, and 48-pixel versions of your icon, and whatever reads it picks the size it needs. Once you see that, the "which format" question mostly answers itself: modern browsers happily take PNG (or SVG) favicons, but the .ico still has jobs nothing else does.
Where .ico still earns its keep
- The pathless request. Crawlers, feed readers, old bookmarks, and browsers with no icon tag in sight request
/favicon.icoby convention. If the file isn't there, that's a 404 in your logs and a blank icon in whatever asked. - Windows itself. Desktop shortcuts, pinned taskbar sites, and Explorer previews want real .ico files — a PNG renamed to .ico is a corrupt file to them, not an icon.
- Multi-size sharpness in one reference. The 16px entry can be hand-tuned separately from the 48px one inside the same file — the tab icon gets its own careful pixels instead of a blurry downscale.
Where PNG (and SVG) win
For everything that isn't the fallback: PNGs are smaller per size, every tool on earth edits them, and the manifest icons Android and install surfaces use are PNG by spec (192 and 512px). An SVG favicon goes further still — one file, every resolution, dark-mode aware. The modern setup is therefore not either/or: SVG or PNG referenced in your tags for quality, .ico sitting at the root for everything that expects it.
The one mistake to avoid
Renaming a .png to favicon.ico. Browsers sniff the real bytes and often cope, so it "works on my machine" — then Windows shortcut pinning or an icon library reads the header, finds no ICO directory, and shows nothing. A real converter writes the actual container: proper directory entries, one per size, 32-bit alpha intact. Ours does it in the browser — your logo never uploads anywhere — and hand-renders each size for sharpness.