Favicon generator — full icon pack from one image
Drop one logo and get every favicon size, a multi-size .ico, the apple-touch-icon, a site.webmanifest and the HTML snippet, zipped and ready to upload.
- Runs in your browser
- Files are never uploaded
- Free, no account
| File | Size | Used by |
|---|---|---|
| favicon.ico | 16, 32, 48 | Legacy browsers, Windows shortcuts, the default lookup at /favicon.ico |
| favicon-16x16.png | 16 | Browser tab, bookmarks bar |
| favicon-32x32.png | 32 | Retina tab, Windows taskbar shortcut |
| favicon-48x48.png | 48 | Windows site shortcut |
| favicon-64x64.png | 64 | High-DPI tab, Safari pinned fallback |
| favicon-128x128.png | 128 | Chrome Web Store, extension icon |
| apple-touch-icon.png | 180 | iOS and iPadOS home screen |
| android-chrome-192x192.png | 192 | Android home screen |
| android-chrome-512x512.png | 512 | Android splash screen, PWA install |
| site.webmanifest | — | Android install prompt, PWA name, theme colour |
How to generate a favicon pack
- Drop in a square image — an SVG or a PNG of 512 px or more gives the best results.
- Add a background colour if your logo is transparent. iOS paints transparency black on the home screen, so a solid background is usually what you want.
- Add a little padding if the mark is dense; around 10% keeps a wordmark from touching the edges.
- Check the real-size previews. If the 16 px version is a smudge, the mark is too detailed for a browser tab.
- Download the ZIP, unpack it into your site root, and paste the HTML snippet into your
<head>.
Every image is rendered from a 1024 px master by repeated halving rather than one big downscale, which is what keeps the 16 and 32 px versions readable instead of mushy. All of it happens in this tab — your logo is never uploaded.
What each file is for
| File | Size | Consumed by |
|---|---|---|
favicon.ico | 16, 32, 48 | Legacy browsers, Windows shortcuts, and the default request to /favicon.ico when nothing else matches |
favicon-16x16.png | 16 | Browser tab and bookmarks bar at 1× density |
favicon-32x32.png | 32 | Retina tab, taskbar shortcut, most browser UI |
favicon-48x48.png | 48 | Windows site shortcuts |
favicon-64x64.png | 64 | High-DPI tabs and some extension surfaces |
favicon-128x128.png | 128 | Chrome Web Store, packaged apps |
apple-touch-icon.png | 180 | iOS and iPadOS “Add to Home Screen” |
android-chrome-192x192.png | 192 | Android home screen |
android-chrome-512x512.png | 512 | Android splash screen and PWA install dialog |
site.webmanifest | — | PWA name, icons, theme colour, install behaviour |
The HTML you need
Five links and one meta tag cover every current browser and platform. Anything beyond this —
the dozens of msapplication-* tags and Apple size variants that older generators
emit — has been unnecessary for years.
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#0f172a">
If you also ship an SVG favicon, add
<link rel="icon" type="image/svg+xml" href="/favicon.svg"> before the PNG
lines. Browsers that support it will prefer the vector; the rest fall through to the PNGs.
Inside an .ico file
ICO is a container, not an image format. It begins with a six-byte ICONDIR header — two reserved bytes, a type field of 1 for icons, and a count — followed by one sixteen-byte directory entry per image. Each entry records the width and height as single bytes (with 0 meaning 256), the colour depth, the payload length and the byte offset where that payload begins. The payloads then follow, back to back.
Historically each payload was a headerless BMP with an awkward AND mask for transparency. Since Windows Vista the payload may instead be a complete PNG file, which is smaller, has real alpha, and is what this tool writes at 16, 32 and 48 pixels. Every browser and every supported Windows version reads it. The whole container is assembled here in JavaScript — there is no server-side ImageMagick call in the middle.
Designing a mark that survives 16 pixels
A favicon is 16 device pixels on a standard display. That is enough for one bold shape or one letter, and nothing else. Some rules that hold up:
- Drop the wordmark. Use the symbol, or a single initial. Text below about four characters is illegible at 16 px.
- Thicken the strokes. A hairline that looks elegant at 512 px disappears entirely at 16.
- Increase the contrast. Subtle tonal differences merge into a single grey once the image is a handful of pixels.
- Test on both themes. A dark navy mark vanishes against a dark browser chrome. If yours does, ship a second SVG favicon with a
prefers-color-schememedia query inside it. - Keep the silhouette distinctive. At tab size, people recognise shape and colour, never detail.
Why your new favicon is not showing
Favicons are cached more aggressively than almost anything else on the web, and the cache is
often separate from the normal page cache. In order of likelihood: your browser is holding the
old one (open the icon URL directly and hard-reload it), a CDN is holding it (purge the path),
or a service worker is serving a stale copy. Adding a query string such as
/favicon.ico?v=2 to the link tags is the pragmatic fix, and works on every layer
at once.
Questions
What size should my source image be?
Square and at least 512 × 512 pixels, or an SVG. Everything is scaled down from a 1024 px master using stepped halving, which keeps small sizes crisp; scaling a 64 px source up to 512 cannot invent detail and always looks soft.
Do I still need favicon.ico in 2026?
Yes, but only as a safety net. Browsers request /favicon.ico by default when no link tag matches, and a few feed readers, RSS clients and corporate proxies still expect it. It costs a couple of kilobytes, so include it.
How is the .ico file built?
The ICO container is a small header, one 16-byte directory entry per image, then the image payloads. This tool writes complete PNG files as those payloads at 16, 32 and 48 pixels — the PNG-in-ICO form that every browser and every supported Windows version reads.
Why does my icon look wrong on an iPhone home screen?
iOS ignores transparency in the apple-touch-icon and fills it with black, then applies its own rounded mask. Turn the background option on and give the icon a solid colour, and leave the corner radius at zero so iOS can apply its own shape.
Where do the files go?
All of them belong in the root of your site, next to index.html, and then the HTML snippet goes in the head of every page. If you serve them from a sub-folder, change the leading slash in each path to match.