A Complete Favicon Set
A favicon is not one file. A browser tab wants 16 and 32 pixels, a bookmark bar wants 48, iOS wants a 180-pixel touch icon, and an installable app wants 192 and 512. Shipping only favicon.ico leaves every one of those to be guessed at by scaling.
Open the Favicon GeneratorWhat is in the archive
PNGs at 16, 32, 48, 180, 192 and 512 pixels; favicon.ico; favicon.svg; site.webmanifest with your site name and theme colour already filled in; and a README with the exact <link> tags to paste into <head>.
The .ico is a real one
Renaming a PNG to .ico is a common shortcut that Windows Explorer and older browsers quietly reject. The file this tool writes is a proper ICO container with three images inside it — 16, 32 and 48 — each a full PNG payload, indexed by a directory that a decoder can walk.
Built from letters or from your own artwork
Type one or two characters and pick a shape, colours or a gradient, and a font; or upload your own mark and position it on the canvas. Either way the drawing happens in your browser on a canvas — an uploaded image is never sent anywhere.
Step by step
- Set the letters or upload your logo, then choose the shape, colours and font.
- Enter your site name so the web manifest is usable without editing.
- Check the preview strip, which shows the icon at every size next to a mock browser tab.
- Download the ZIP and copy the tags from README.txt into your <head>.
Frequently asked questions
Do I still need favicon.ico in 2026?
Modern browsers prefer the PNG and SVG links, but a bare request for /favicon.ico still arrives from crawlers, feed readers and older software. It costs a few hundred bytes to answer it properly.
Why does the manifest need a site name?
An install prompt shows name and short_name; with them empty the manifest is still valid JSON but the prompt has nothing to display, and audits flag it. The field is used only for the manifest and the tab preview — it never appears on the icon.
Is my uploaded logo sent to a server?
No. The upload is read into a canvas in the page and every size is rendered locally; the ZIP is assembled in the browser too.