Favicon generator
Turn an image or two letters into a real favicon.ico, PNGs from 16 to 512px, an Apple touch icon, HTML tags and a web manifest. Free, no sign up, runs in the browser.
Used in the web manifest and the tab preview.
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="icon" href="/favicon-32x32.png" type="image/png" sizes="32x32">
<link rel="icon" href="/favicon-16x16.png" type="image/png" sizes="16x16">
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="/site.webmanifest">
How to use it
- 1Type one or two letters and pick a fill color, or upload a PNG, JPG, WebP or SVG.
- 2Set the corner radius, and for images the padding and background.
- 3Check the tab preview at 16px and the decoded favicon.ico.
- 4Download the files, then paste the HTML tags and the manifest into your site.
Which files a site needs
- favicon.ico at the site root, holding 16, 32 and 48 pixel versions. Browsers, feed readers and search engines still request it by that path.
- favicon.svg when the mark is simple. It stays sharp at every size and can respond to dark mode with a media query inside the file. The tool writes one for letter marks.
- 32 and 16 pixel PNGs for browsers that prefer PNG over ICO, declared with
sizes. - apple-touch-icon.png at 180 pixels for the iOS home screen. iOS rounds the corners itself and shows transparent areas as black, so this one is rendered square and should be opaque.
- 192 and 512 pixel PNGs listed in
site.webmanifest, used by Android, install prompts and splash screens.
How the ICO is built
An ICO file is a small container: a 6 byte header with the image count, a 16 byte directory entry per image holding its width, height, bit depth, byte length and offset, then the image data. Since Windows Vista the entries may be PNG files rather than raw bitmaps, and every browser reads that form. The tool draws each size on a canvas, lets the browser encode it as PNG, writes the header bytes itself and packs the three PNGs. It then hands the result back to your browser as an image, so the green check means the file was decoded by a real ICO reader. Nothing is uploaded; the canvas, the encoding and the download all happen on this page.
Letter marks that survive 16 pixels
At tab size there is room for about two bold letters. Use a heavy weight, strong contrast between fill and letters, and a corner radius around 20 percent so the shape reads as a tile rather than a circle. Thin serifs and three letter abbreviations blur into a smudge. The same goes for uploaded logos: wordmarks and fine detail need a dedicated small version, usually just the symbol.
Where the files go
Put the files in the public root and paste the <link> tags into <head>. With the Next.js App Router you can skip the tags: app/favicon.ico, app/icon.png, app/apple-icon.png and app/manifest.webmanifest are picked up by file name and the metadata is generated for you.
Frequently asked questions
Is my image uploaded anywhere?
No. The file is read into an image element and drawn on canvases inside your browser. The page makes no network requests with it.
Do I still need favicon.ico?
Yes, as a fallback. Many clients request /favicon.ico without reading the HTML, and Google lists ICO among the formats it reads for search results.
Why is my icon blurry at 16 pixels?
Detail that works at 512 pixels cannot survive a 32 times reduction. Use the letter mark, or upload a simplified version of the symbol for the small sizes.