ICO Format Guide: Windows Favicons & Multi-Resolution App Icons
A practical reference for ICO: how the Windows icon container format stores multiple resolutions in a single file, how browsers use ICO for address bar favicons, and how to ship ICO alongside modern SVG and PNG favicons.

Quick Answer: ICO in Plain English
ICO is the favicon format — the small icon that appears in browser tabs and bookmarks. Every website needs one.
✓ Best For
- Website favicons (browser tab icons)
- Windows application icons
- Desktop shortcut icons
- Multi-resolution icons in one file
✗ Not Great For
- Photographs (too small, no benefit)
- Web content images (use PNG or WebP)
- Print workflows
💻 Works On
Every browser looks for /favicon.ico by default. All Windows versions support ICO natively.
What is ICO? The Windows Icon Format
ICO (Windows Icon) is Microsoft's icon container format, introduced with Windows 1.0 in 1985. ICO is a multi-resolution container that embeds several raster images at different sizes (typically 16×16, 32×32, 48×48, 64×64, 128×128, 256×256) in a single file. Browsers and Windows applications automatically pick the right size for the address bar, taskbar, desktop shortcut, or Windows Start menu tile.
The .ico file format is still the standard for browser address bar favicons — every modern browser looks for /favicon.ico at the website root by default. For modern web favicons, ship an ICO file alongside SVG and PNG fallbacks via the <link rel="icon"> tag with multiple type attributes — this gives the browser the right format for each context.
Multi-Resolution Containers & Size Selection
An ICO file is a container with a 6-byte ICONDIR header, a directory of ICONDIRENTRY records (one per embedded image size), and the embedded images themselves. Each embedded image is stored as either a BMP (with a custom header) or a PNG. Modern ICO files typically use PNG for the 256×256 size (PNG is significantly smaller than BMP at that resolution) and BMP for the smaller sizes.
When a browser or Windows application loads an ICO, it scans the directory and picks the size that best matches the target display size. For a 16×16 favicon in a browser tab, the 16×16 embedded image is selected. For a 256×256 tile in Windows 11, the 256×256 image is selected. This automatic size selection is why multi-resolution ICO is preferable to single-size PNG or JPG for icons.
ICO Color Depth & Alpha Transparency
ICO supports 1-bit, 4-bit, 8-bit (palette), 24-bit, and 32-bit color depths. The 32-bit variant includes an 8-bit alpha channel — full 256-level transparency per pixel, similar to PNG-32. Modern favicons almost always use 32-bit ICO with alpha for smooth edge anti-aliasing on different browser tab backgrounds.
For legacy Windows 95/98/2000 compatibility, ship an 8-bit palette variant alongside the 32-bit variant in the same ICO file. Modern Windows (Vista and later) and modern browsers handle 32-bit ICO natively. The standard favicon.ico for a modern website contains 16×16, 32×32, and 48×48 in 32-bit color, plus optionally 64×64 and 256×256 for high-DPI displays.
ICO vs PNG vs SVG: The Modern Favicon Stack
Modern web favicons use a layered stack: ICO at /favicon.ico (legacy browser fallback), SVG with a <link rel="icon" type="image/svg+xml"> (modern browsers, scalable, supports dark mode via CSS media queries), and PNG at multiple sizes with <link rel="icon" type="image/png" sizes="16x16 32x32 48x48"> (mobile browsers and PWA support).
For Apple touch icons (iOS home screen), ship a 180×180 PNG with <link rel="apple-touch-icon">. For Android PWA, ship a 512×512 PNG with the manifest.json icons array. For Windows tiles, ship a 70×70, 150×150, 310×150, and 310×310 PNG. The ICO file is the universal fallback for browsers that do not understand the SVG/PNG <link> tags — it must exist at /favicon.ico on the website root.
ICO vs BMP vs PNG: Why ICO Outlived GIF as the Icon Format
In the 1990s, ICO was the only Windows icon format; GIF was the web favicon format because of its small size and 1-bit transparency. Modern browsers replaced GIF favicons with ICO (with 8-bit alpha) and later SVG and PNG. GIF is no longer used for favicons — its 1-bit transparency (binary on/off, no smooth alpha) produces jagged edges on colored browser tab backgrounds.
The current best-practice favicon stack ships all three modern formats: ICO (legacy fallback at /favicon.ico), SVG (modern scalable with dark mode support), and PNG at multiple sizes (PWA and mobile home screen). Browsers pick the right format based on the <link> tag in the HTML head; legacy browsers that do not understand the <link> tags automatically fall back to /favicon.ico.
ICO File Headers, Directory Entries & Embedded PNGs
The ICO file format starts with a 6-byte ICONDIR header (reserved 2 bytes, type 2 bytes = 1 for icon, count 2 bytes = number of images). Each image has a 16-byte ICONDIRENTRY record (width 1 byte, height 1 byte, color count 1 byte, reserved 1 byte, color planes 2 bytes, bit count 2 bytes, size 4 bytes, offset 4 bytes). The image data follows, stored as either BMP (with a custom DIB header) or PNG.
Modern ICO files use PNG for the 256×256 size (PNG compression beats BMP at that resolution by 50–70%) and BMP for the smaller sizes (BMP is faster to decode at small sizes). The Windows ICO specification officially supports PNG embedding since Windows Vista; all modern browsers handle this correctly. For maximum compatibility, embed BMP at 16×16, 32×32, and 48×48, and PNG at 64×64, 128×128, and 256×256.
ICO, PWA Manifests & Modern Browser Behavior
For Progressive Web Apps (PWA), the manifest.json file lists icon sizes (typically 192×192 and 512×512 PNG) used for the installable app icon on mobile home screens. The ICO favicon is separate — it is the address bar icon, not the PWA icon. Both must exist on a fully modern website: ICO at /favicon.ico, plus PNG icons listed in manifest.json.
Browser behavior for favicons: Chrome looks for /favicon.ico automatically if no <link rel="icon"> tag exists; Safari and Firefox follow the <link> tags first and fall back to /favicon.ico; iOS Safari ignores /favicon.ico entirely and uses the apple-touch-icon <link> tag. The safest setup ships all three: ICO at root, SVG with <link>, PNG with <link rel="apple-touch-icon">.
ICO Conversion Strategies: Source Quality & Size Selection
The source image for ICO conversion should be at least 512×512 pixels — the ICO encoder downscales to 16×16, 32×32, 48×48, 64×64, 128×128, and 256×256 from the high-resolution source. Lower-resolution sources produce blurry small-size icons because the encoder must upscale rather than downscale. For sharp small icons, design the 16×16 and 32×32 sizes explicitly and embed them as separate source images.
For professional icon design workflows, design each size separately in an icon editor (Axialis IconWorkshop, IcoFX, or online tools) — pixel-perfect 16×16 icons need different proportions than 256×256 icons because human perception at small sizes prefers simplified shapes and bolder lines. For simple favicons, a single high-resolution source image works fine; the encoder downscales automatically with bicubic interpolation.
ICO Security & Privacy: Less Risk Than Photo Formats
ICO files contain minimal metadata — no EXIF, no GPS, no camera serial numbers. The privacy risk of uploading an ICO to a cloud conversion service is low (the file is just a logo icon, not personal content), but for confidential brand launches, in-browser conversion is still the safer choice. The bytes never leave the device; the server only delivers the WASM encoder modules.
ICO files can theoretically contain malicious payloads if the ICO decoder has a buffer overflow vulnerability, but modern browsers have hardened ICO decoders (the MS08-067 vulnerability of 2008 is long patched). For daily favicon workflows, the security risk is minimal — the bigger concern is making sure the ICO file is the right format and sizes for the target browsers.
Browser-Based ICO Conversion: Local Encoding in the Tab
ICO encoding is simpler than JPEG or WebP — the format is a header and embedded BMP/PNG blobs. The in-browser ICO encoder takes a source image, downscales it to the standard sizes, encodes each size as a BMP or PNG (depending on size and alpha requirements), and wraps them in the ICO container. Total encoding time: 100–300 ms for a 512×512 source.
CloudImageConverter ships the ICO encoder as a JavaScript module that runs entirely in the browser tab. The bytes never leave the device; the server only delivers the encoder code once. For batch conversion of multiple source logos to ICO, the worker pool parallelizes across 2–4 cores, finishing the batch in under 1 second with zero network round-trips for the icon data.
Related ICO Conversion Tools
Ready to Work with ICO?
Jump straight to the tool you need — convert ICO to another format, compress ICO files for smaller sizes, or edit ICO images (resize, crop, watermark, add text).
ICO Task Guides
Learn how to convert, compress, and edit ICO files with our dedicated task guides.
ICO Frequently Asked Questions
Common questions about ICO format — when to use it, how it works, and how to convert it.
ICOWhat is an ICO file and when do I need one?+
ICO (Windows Icon) is the standard format for website favicons — the small icon that appears in browser tabs, the address bar, bookmarks lists, and home screen shortcuts. Every website needs an ICO file at /favicon.ico because browsers look for it by default. ICO is also used for Windows application icons and desktop shortcut icons. The ICO format is special because it stores multiple resolutions (16×16, 32×32, 48×48, 64×64) in a single file — the browser or Windows automatically picks the right size for each context (address bar, browser tab, desktop shortcut, Start menu tile).
ICOHow do I add a favicon to my website?+
First, generate an ICO file using the CloudImageConverter PNG to ICO tool — drop your logo PNG (at least 512×512 pixels for best quality), pick ICO as the output, and download the resulting favicon.ico file. Then upload favicon.ico to your website's root directory (so it's accessible at https://yoursite.com/favicon.ico). Finally, add a <link rel="icon" href="/favicon.ico" type="image/x-icon"> tag inside the <head> section of your HTML. Browsers will automatically display your favicon in the address bar, browser tab, and bookmarks list. For modern web favicons, also ship an SVG favicon for scalable rendering and a 180×180 PNG for Apple touch icons (iOS home screen).
ICOWhat sizes does the ICO file include?+
The CloudImageConverter ICO tool writes a standard multi-resolution ICO container with 16×16, 32×32, 48×48, and 64×64 pixel sizes embedded in a single file. Modern browsers automatically pick the right size for the address bar (16×16), browser tab (32×32), desktop shortcut (48×48), Windows Start menu tile (64×64), and high-DPI favicons (optionally 128×128 if the source is large enough). For the highest quality across all sizes, use a source image that's at least 512×512 pixels — the converter downscales it to each standard size using bicubic interpolation, which produces sharp small-size icons from high-resolution sources.
ICOCan I use a PNG instead of an ICO for my favicon?+
Yes, modern browsers support PNG favicons via the <link rel="icon" type="image/png" href="/favicon.png"> tag. However, you should still ship an ICO file at /favicon.ico as a fallback because some older browsers and applications look for the ICO file by default. The recommended modern favicon stack: ship an ICO file at /favicon.ico (legacy fallback), an SVG favicon for scalable rendering and dark mode, and a 180×180 PNG for Apple touch icons (iOS home screen). Use the <picture> element or multiple <link> tags in your HTML head to let browsers pick the best format for each context.
ICOHow do I create a favicon from a logo?+
Use the CloudImageConverter PNG to ICO tool — drop your logo PNG (at least 512×512 pixels), pick ICO as the output, and download the favicon.ico file. The converter automatically generates the standard multi-resolution ICO container with 16×16, 32×32, 48×48, and 64×64 pixel sizes. For best results, your logo should have a transparent background (so it looks clean in browser tabs on different theme colors) and should be simple enough to be recognizable at 16×16 pixels — complex logos with fine detail become unrecognizable at small sizes. If your logo is complex, consider a simplified version specifically for the favicon.
ICOWhat's the difference between ICO and PNG favicons?+
ICO is the legacy format that stores multiple resolutions in one file — browsers automatically pick the right size for each context (address bar, tab, shortcut, tile). ICO is supported by every browser, including very old ones, and is the only format that Internet Explorer supports. PNG favicons are simpler (single resolution per file) but require you to ship multiple files for different sizes via multiple <link> tags. SVG favicons are the modern choice — they scale crisply to any size from a single file and support CSS styling (including dark mode via media queries). The recommended stack: ship ICO as legacy fallback, SVG as the modern scalable format, and PNG as the Apple touch icon.