Updated September 2026
ICO vs PNG vs SVG: Which Favicon Format Should You Use?
Modern browsers will happily accept several different favicon formats, and that is exactly where the confusion comes
from: ICO, PNG and SVG all work, but they are not interchangeable, and picking the wrong one — or only one —
means your icon looks wrong somewhere. Here is what each format is actually good for.
.ICO — the universal fallback
An .ICO file is not a single image: it is a small container that can hold several resolutions of the same icon in one
file (X-Icon Editor packs 64x64, 32x32, 24x24 and 16x16 into one .ico for exactly this reason). The browser picks
whichever size fits the context — a sharp 16x16 for the tab, a larger one for a taskbar shortcut — instead of
scaling a single image up or down.
It is also the one format every browser and operating system has supported since favicons existed, and the one browsers
fall back to automatically at /favicon.ico if you do not specify anything else. If you can only ship one
file, this is still the one to ship.
PNG — required for phones, PWAs and tiles
Apple touch icons, Android/Chrome home-screen icons and Windows tiles do not accept .ico at all — they specifically
require PNG:
<link rel="apple-touch-icon" href="/apple-touch-icon.png"> — 180x180 PNG, no transparency
(iOS renders transparent areas as black).
manifest.json icons for Android/Chrome and installable PWAs — typically 192x192 and 512x512 PNG.
- Windows Start menu tiles — 150x150, 310x150 and 310x310 PNG, referenced via meta tags.
See our icon sizes cheat sheet for the full breakdown of which size
goes where.
SVG — sharp at any size, with a catch
<link rel="icon" type="image/svg+xml" href="/icon.svg"> lets you ship one vector file that stays crisp
on any display density, and (with a bit of CSS inside the SVG) can even switch colors automatically for dark and light
browser themes. The catch is support: Chrome, Firefox and Edge render SVG favicons, but Safari’s support has
historically been inconsistent, which is why SVG should be an addition to an .ico fallback, not a replacement for it.
What we recommend
For most sites, the practical set is: a multi-resolution .ico at the root for universal support (exported
directly from X-Icon Editor), a 180x180 PNG for apple-touch-icon, and 192x192 / 512x512 PNGs referenced from
a manifest.json if you want a proper Android/PWA icon. An SVG icon is a nice-to-have on top of that, not a
replacement for it. Build the base design once in the editor and export the
resolutions you need from it, so every version stays visually consistent.