favicon generator
One image.
Every icon a browser asks for.
38 files across Apple, Android, Windows and the browsers that still want an .ico — each one labelled with what it is for. Generated on this page, from your file, which never leaves your device.
Drop an image here
SVG, PNG, JPG, WebP · raster at least 256 × 256
Options13 files
Per-platform settings
Progressive web app
What Android and Chrome read from site.webmanifest when someone installs your site.
Windows tiles
browserconfig.xml, read when a site is pinned to the Windows start screen.
Rounded corners
Rounds the icons and leaves the corners transparent — nothing is filled in behind them. Off unless you ask for it.
Paths and caching
How the generated tags point at the files.
favicon.ico
One .ico holds several resolutions. The default 16/32/48 covers tabs, retina tabs and Windows shortcuts; larger sizes mostly inflate the file.
Questions
Why 38 files instead of one favicon.ico?
Because no two platforms agree. Browsers still request /favicon.ico, iOS wants a specific apple-touch-icon.png, Android reads sizes out of a manifest, and Windows still pulls tile images from browserconfig.xml. This produces all 38 files named exactly the way each platform expects, plus the manifests that reference them.
Is my image uploaded anywhere?
No. Generation runs in your browser using a WebAssembly build of libvips. You can confirm it yourself: open your browser's network tab and watch while it runs — there is no upload request.
What source images work best?
SVG gives the sharpest result, because the vector is rasterised fresh at full resolution before the icons are cut. For raster sources, 256×256 is the minimum and 512×512 or larger is recommended; below that the largest icons are upscaled and you will see a warning.
What is the difference between the modern, legacy and full presets?
Modern is the default and produces 13 files: ICO, SVG, the favicon PNGs, a single apple-touch-icon and the PWA manifest icons — only what current browsers request, and every one of them linked from the snippet you paste. Legacy adds 20 more: per-device Apple sizes and the Android names an older generator popularised, for a page that already declares them. Full adds the Windows tile images on top, for regenerating a site that still declares those. Most new sites only need modern.
Why is apple-touch-icon.png 180×180 but apple-icon.png 192×192?
apple-touch-icon.png at 180×180 is the one Safari picks for a home screen shortcut, and the one it looks for at your site root when no link tag names an icon. apple-icon.png is a different name, from an older generator rather than from Apple: nothing in the snippet links it and Safari does not search for it, so it is only useful if your own page already declares it. That is why it appears in legacy and full, and why those presets say so in a warning.