Use the tool below
This ICO converter — a favicon converter, not an app-icon factory — exists because a tab icon lives at 16 pixels. Convert PNG to ICO when you already drew a simple square mark and you need a real .ico for the site root. We cover-crop to 16, 32, and 48 and pack those PNG payloads into one ICO (PNG-in-ICO, not a 1995 XOR mask). JPEG sources work but cannot be transparent. A detailed illustration, or a photo of a shopfront, will look like a stain at tab size.
Convert PNG to ICO — what actually sits in the file
ICO is a bag of images, historically BMP, later PNG for larger sizes. The OS or browser chooses a frame. One 512px PNG renamed favicon.ico is a lie; some clients accept a renamed PNG, many still want a real directory. Convert PNG to ICO here and we write a real directory with three frames. We do not generate 64, 128, or 256. A Win32 desktop icon needs a proper editor. A website tab needs 16/32/48 in the root.
Favicon.io is great at inventing an icon from a letter or emoji. We do not invent a brand. We take the PNG you already designed.
HTML I still put in the head
Root file: /favicon.ico — old code and some crawlers look there with no tags. Then:
rel="icon"pointing at a 32px or SVG icon for current browsers.rel="apple-touch-icon"pointing at a 180px PNG. Not ICO. iOS ignores ICO for the home screen.- Optional 192/512 PNGs in a web manifest for Android.
Skipping the ICO because “Chrome likes PNG” still leaves a 404 in the network panel for /favicon.ico on a lot of WordPress and static hosts. I generate the ICO so that request is not an error. Chrome has accepted PNG favicons for years; it still probes the root ICO when the HTML is incomplete. Safari’s pin-to-dock and old Edge bookmarks are picky in different ways. One ICO with 16/32/48 covers the boring cases. It does not cover dark-mode alternate icons. Those are two PNGs (or two SVGs) selected with media="(prefers-color-scheme: dark)" on <link rel="icon">. An ICO is one bag of bitmaps. If your navy mark vanishes on a dark tab bar, you need a second asset, not a fourth size in the ICO.
Windows cache and “I uploaded a new favicon and nothing changed”
Explorer and some Windows browsers cache icons aggressively. After you replace favicon.ico, hard-refresh is not always enough; people still see the old 16px ghost. Rename the file in HTML (favicon-v2.ico) or wait. That is a client bug, not a corrupt ICO. If our download does not open as an icon in Preview on macOS, that is normal — Preview is weak at ICO. Check it in a browser tab or in Windows.
Pixel grid: draw on 16×16, then scale up for 32 and 48, or draw at 48 and test the 16px downsample. I do not generate 64/128/256. A Windows Store listing or an Electron icon.ico with a full size ladder is a different file. RealFaviconGenerator exists for that matrix (including Android and Windows tiles). We pack three PNG frames and stop.
Design at 16px or go home
Open your mark at 16×16 in any editor. If the letterforms collapse, simplify: fewer cuts, thicker stems, no hairline. A camera JPEG of a building will not become a trademark at tab size. Export a square PNG from Figma at 512, then convert here so the downscales are ours, not a stretched rectangle. Non-square sources get centre-cropped — a wide logo will lose the sides. Crop it yourself if that matters.
Need a PNG first from a photo? That is a different job: JPG to PNG does not invent a mark. Need the SVG rasterized before you make an icon? SVG to PNG, then come back.
Tags I actually put in the document
Root file plus HTML, not one or the other:
<link rel="icon" href="/favicon.ico" sizes="any">for the ICO we just made.<link rel="icon" href="/icon.svg" type="image/svg+xml">when I have a real vector mark (sanitized, no script).<link rel="apple-touch-icon" href="/apple-touch-icon.png">— 180×180 PNG, opaque is safer on iOS.- In the web manifest,
192and512PNG icons for Android add-to-home. Those are not ICO.
rel="shortcut icon" is the old IE synonym. Modern HTML uses rel="icon". I still keep the physical /favicon.ico because crawlers and ancient middleware request it with no tags at all. WordPress themes that “set a site icon” often write PNG tags and forget the root ICO; the 404 remains. Drop our download in the web root even if the customizer uploaded a PNG.
How to run this widget
- Prepare a square, high-contrast PNG.
- Select ICO, upload, wait.
- Download and rename to
favicon.icoif you like. Put it in the site root. - Add the apple-touch PNG yourself. We do not emit that file.
No account. About two hours, then the tool copy is deleted. Send a pack with the homepage transfer if a developer is waiting. Limits and privacy are the same as the other converters.
When I do not use ICO
Single-page apps that already ship an SVG favicon and do not care about ancient IE: I still add a tiny ICO because the 404 bothers me, but the SVG does the visual work. Electron/desktop stores: they want a full size set, not our three frames. Emoji-as-brand: use Favicon.io, not a converter.
Favicon.ico questions
What sizes are inside the ICO?
16, 32, 48. Not 256. Not a complete Windows store pack.
Is apple-touch-icon an ICO?
No. PNG, ~180px, separate rel. An ICO in the root does not save you on iOS.
Do modern sites still need favicon.ico?
The request still happens. I ship the file from this favicon converter. I also set modern rel="icon".
More format hops: Converters.