Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
ICO
Icon container holding several sizes in one file. Still what browsers expect as a favicon.
ICO
ICO is a container: a wrapper that holds streams encoded by something else. It stores a grid of pixels, so enlarging it past its own resolution softens it. It is used for the web.
The extension is .ico, and the full name is Windows Icon. Both matter less than what the file can hold, which is what the rest of this page is about.
Microsoft published it in 1985.
A format that has been readable for that long is a format worth trusting with something you want back in ten years.
It is written down and implementable, though the vendor decides what the next version looks like. In practice that is enough for the file to keep opening; it is not enough to be sure of it.
It exists to do one job well for one group of people. Outside that job it is a poor default, and inside it there is usually nothing better.
ICO stores its content exactly. Saving it again changes nothing, so it can be opened, edited and re-saved as often as you like without accumulating damage — which is what makes it a working format rather than a delivery one.
ICO carries an alpha channel, so a logo keeps its soft edges over whatever sits behind it instead of arriving in a white box.
Up to 8 bits per channel. It can work in RGB and an indexed palette.
Eight bits per channel is what a screen shows and what nearly every delivery format carries.
ICO cannot describe an image larger than 256 pixels on a side — smaller than any screenshot and smaller than any photograph a phone takes. Anything converted into it is scaled down to fit, so this is a limit almost every source runs into rather than an edge case.
ICO is not limited to one page, which matters when converting to something that is: one conversion produces one file holding a single page — the first one, unless the page is something the converter lets you pick.
GIMP and IcoFX read it, and so do most programs of the same kind.
If a file will not open, the format is rarely the problem — it is more often that the program predates it. Converting to something older is the reliable way past that, and it is what the rest of this site is for.
Every current browser reads it.
That makes it a safe thing to put on a page or attach to a message without wondering what the other end has installed.
ICO is meant to be handed over rather than worked in. Editing one is possible and rarely pleasant; the sane approach is to change the source and export again.
This is the fact that makes ICO make sense. An `.ico` is a small archive containing the same icon at several sizes — commonly 16, 32 and 48 pixels square, often more — each stored as a complete image with its own colour depth.
The point is that shrinking a 48-pixel icon to 16 pixels produces mush, because at that size every pixel is doing structural work. So the format lets a designer draw each size deliberately, simplifying the artwork as it gets smaller, and the operating system or browser picks whichever it needs. A one-size ICO is valid and is throwing away the reason the format exists.
For a favicon, 16 and 32 cover almost everything: 16 for the browser tab, 32 for the bookmark bar and for higher-density displays showing the tab. Adding 48 costs little and covers Windows desktop shortcuts.
Beyond that the returns fall away quickly. A 256-pixel entry is used by Windows in large-icon views and roughly quadruples the file size on its own, which is a poor trade for a favicon fetched on every page load. Include it for a desktop application icon; leave it out for a website.
At 16 by 16 there are 256 pixels in total. A wordmark is unreadable, a thin outline disappears, and a detailed illustration becomes a smudge. Automatic downscaling produces exactly that, which is why so many favicons look like a grey blur in the tab.
What works is a single strong shape: one letter, a simple glyph, a solid silhouette with high contrast against both light and dark tab backgrounds. Draw it as its own artwork rather than shrinking the logo, and check it at actual size on a real screen rather than zoomed in.
Early ICO used a one-bit mask: a pixel was either fully opaque or fully transparent, which produced hard jagged edges on anything curved. Windows XP introduced 32-bit ICO with a proper alpha channel, and everything since supports it.
That is what you want, and it is what any current tool produces. It matters because a favicon sits on a tab background that differs between browsers, themes and light or dark mode — an icon with a baked-in white background announces itself immediately in a dark tab strip.
Since Windows Vista, an entry inside an ICO may be a complete PNG rather than raw bitmap data. For the larger sizes this saves a great deal of space, since a 256-pixel uncompressed entry is around 256 kilobytes and the same image as PNG is a small fraction of that.
Very old software does not understand PNG-compressed entries and will show nothing for those sizes. In practice this means Windows XP and equally aged tooling, which is no longer a consideration for a website. Keep the small sizes as bitmap and the large ones as PNG, which is what current generators do by default.
A `favicon.ico` at the site root is still the fallback every browser checks without being told, and that alone is a good reason to have one. Beyond it, the modern arrangement is a set of PNGs declared in the HTML head, plus an SVG favicon that scales and can respond to dark mode.
So the honest advice is both rather than either. Ship `favicon.ico` with 16 and 32 for the automatic request, and declare PNG and SVG versions for browsers that will use them. The ICO is the floor, not the whole answer.
Windows application and shortcut icons, which is the format’s original job and where the larger sizes earn their place. Icons embedded inside `.exe` and `.dll` files, which are ICO entries in a resource section. Desktop shortcuts, folder customisation, and installer artwork.
Outside Windows and favicons it barely appears. macOS uses ICNS, Linux desktops use PNG and SVG. If you have been asked for an ICO, it is almost certainly for a website or for a Windows program, and which of the two decides the sizes.
Start from a square source with generous margins — an icon cropped tight to its artwork looks larger than its neighbours and sits awkwardly. PNG with transparency is the ideal input; SVG is better still if the tool accepts it, since each size can be rendered rather than resampled.
A non-square source will be padded or cropped, and neither is usually what was intended. Squaring the artwork deliberately beforehand takes a moment and removes the most common disappointment with the result.
Favicons are cached unusually aggressively — often more stubbornly than the page itself, and sometimes in a separate store that a normal refresh does not touch. A new favicon frequently appears for everyone except the person who made it.
Loading the icon URL directly is the reliable check: if `example.com/favicon.ico` serves the new image, the deployment worked and the tab is showing a cached copy. A hard reload, a private window, or simply a day usually resolves it. It is worth ruling this out before changing anything, because the usual response is to re-export the icon repeatedly and conclude the format is broken.
| Extension | .ico |
|---|---|
| Media type | image/x-icon, image/vnd.microsoft.icon |
| Published by | Microsoft |
| First published | 1985 |