How to favicon sizes, formats, and browser support — complete reference
- Step 1Reference the size table — The minimum viable favicon set is: favicon.ico (16, 32, 48 in one file), favicon.svg (scalable, modern browsers), apple-touch-icon.png (180×180), android-chrome-192x192.png, android-chrome-512x512.png.
- Step 2Build the HTML head snippet — Add: link rel=icon href=/favicon.svg type=image/svg+xml, link rel=icon href=/favicon.ico sizes=any, link rel=apple-touch-icon href=/apple-touch-icon.png, link rel=manifest href=/site.webmanifest.
- Step 3Validate your implementation — Use realfavicongenerator.net's checker or Lighthouse's PWA audit to verify all required sizes are present and correctly linked. Fix any reported missing sizes before production launch.
Frequently asked questions
What is the minimum favicon set I can get away with?+
For a basic non-PWA site: favicon.ico (contains 16×16 and 32×32), one PNG at 32×32, and apple-touch-icon.png at 180×180. This covers all browsers and iOS. Add 192×192 and 512×512 PNGs only if you have a PWA.
Do I need a 16×16 favicon PNG separately from the ICO?+
No. Modern browsers that support PNG favicons have sufficient pixel density to use the 32×32 PNG for tab icons. The 16×16 size is mainly needed inside the ICO file for very old browsers.
What size icon does Microsoft Edge use for the Start menu tile?+
Edge uses the 150×150 PNG defined in browserconfig.xml for Windows Start menu tiles. This is rarely used in practice — most sites skip browserconfig.xml for modern PWAs which use site.webmanifest instead.
Does the apple-touch-icon need a rounded corner?+
No. iOS automatically applies the rounded corner mask and gloss effect (older iOS) to your apple-touch-icon. Supply a square PNG — do not pre-round the corners, or you will see double rounding. Use apple-touch-icon-precomposed for the old style without system effects.
Privacy first
Every JAD SVG tool runs entirely in your browser using the DOM API and Canvas. Your SVG files never leave your device — verified by zero outbound network requests during processing.