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
Converting a WebP to ICO produces a favicon from the logo a site is already serving: the image is reduced to icon sizes — 16, 32 and 48 pixels in one container by default — and each is stored as a PNG, so the transparency comes through. The catch is the source. A WebP off a page is small and often lossy, and neither improves at icon size.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
WebP to ICO



Almost everybody on this page is working backwards. The design files are with an agency that no longer answers, on a closed Figma account, or on a laptop that was replaced two jobs ago, and the only surviving copy of the logo is the one the site serves — as WebP, because a build step or an image CDN converted it on the way out.
That is a reasonable place to start and produces a perfectly usable favicon. It is worth thirty seconds of looking for something better first, because a better source makes a better icon and the alternatives are often right there: try /favicon.svg on the domain, search the page source for ".svg", or check whether the same asset is served as PNG in a picture element fallback. If any of those exists, the SVG to ICO or PNG to ICO pages will do better than this one.
The ICO written here is capped at 256 pixels on its longest edge — that is the format’s own limit, because the directory stores each dimension in a single byte and 256 is recorded as zero. On most icon pages that cap is the main event, because the source is a print file or a camera photograph thousands of pixels across.
Here it usually is not. Sites serve logos at the size the layout needs, often through a resizing service, and 240 to 400 pixels wide is entirely normal for a header mark — comfortably more than the 48 the default set tops out at. The risk runs the other way, and it only bites if you ask for sizes the source cannot supply: a 120-pixel logo converted with "All common sizes" is enlarged to fill the 256 and 128 entries, which adds bytes and no detail. Before converting, try requesting the same URL with a larger width parameter, or look for an @2x asset.
WebP comes in two kinds and the extension does not say which. A lossless WebP of a flat logo is as clean as a PNG. A lossy one has been through a transform that smooths flat areas and rings along hard edges, and while that is invisible at 400 pixels it is not invisible after the icon has been shrunk to 32 and drawn next to a page title.
The symptom is a faint grey halo hugging the mark and a slight muddiness in what should be a solid fill. Nothing on this page removes it, because the information is gone. What helps is starting larger — a 400-pixel lossy source scaled to 256 averages some of the ringing away, where a 128-pixel one has nothing to average — and cropping to the symbol so that the remaining detail is spent on something that reads.
The ICO produced here contains a PNG rather than a raw bitmap. That is the modern convention, every Windows since Vista reads it, and the file is a fraction of the size of the raw-bitmap alternative. More importantly it brings a real 8-bit alpha channel, and WebP has one too, so a cut-out logo arrives cut out with soft anti-aliased edges.
A favicon needs that more than most images do. It sits on the browser’s tab strip, which is a different colour in light and dark themes and different again between browsers; a mark baked onto an opaque white square looks like a bug in dark mode and like a sticker in light mode. If the WebP does not have a transparent background but the logo sits on flat white, removing that background before converting is the single highest-value edit available.
WebP can hold an animation, and the decoder used here reads still images only. An animated file is rejected with a readable message instead of being quietly reduced to its first frame — the better failure of the two, and consistent with how the rest of this site handles the same situation.
It is also not a loss in this particular case. Browsers do not animate ICO favicons, so an animated source was never going to produce an animated icon. If you want one frame of it, open the file in a browser, pause it, screenshot the frame and convert that. If the animation matters for some other purpose, WebP to GIF is the page that keeps it.
This is a design problem rather than a conversion one and it decides most of the outcome. A favicon is seen at 16 or 32 pixels in practice, and at that size a tagline is a grey smear, an outlined typeface fills in, a thin rule disappears, and a mark with more than about three distinct elements becomes a blob.
Crop the WebP to the symbol alone before converting: drop the wordmark, drop the margin, drop anything thinner than a fortieth of the width. If the brand is a wordmark with no symbol, a single letter set in the brand typeface is what nearly every well-known site does, and it reads at 16 pixels where the full name does not. Five minutes in any image editor beats every option on this page.
The ICO container was designed to hold several sizes of the same artwork at once, which is why the comparison table on this page reports it as multi-image, and that is what this writes: one directory entry per size, three by default at 48, 32 and 16 pixels. A browser drawing a tab reads the 16 rather than reducing a 256 with its own filter, which is the difference the format exists for. What none of it does is redraw the mark — a purpose-drawn 32-pixel icon is still sharper than a 32 reduced from your logo.
Metadata does not travel. Every image conversion here decodes to raw pixels and re-encodes, so any EXIF, XMP or ICC profile in the WebP is dropped, and that happens whatever you do — it is not something the page offers to turn off. For a favicon that is entirely welcome: the file ends up a kilobyte or two of PNG behind a directory of a few dozen bytes — and the three-size default is normally smaller than the single 256, since three small PNGs of a flat mark cost less than one large one.
Put the file at the root of the site as /favicon.ico. Browsers request that exact path on their own, whether or not the HTML mentions it, which is why the 404 shows up in the log even on sites that already declare an icon in the head. Adding a link element as well makes the intention explicit and lets you point at a different file if you want.
Then wait, and clear the cache before concluding anything. Favicons are cached aggressively by every browser and by intermediate proxies, and a new one routinely takes a day or a hard reload to appear. Modern browsers will also accept a PNG or an SVG through a link element, so the ICO is strictly needed only for the bare /favicon.ico request and for Windows shortcuts — which is still reason enough to have one.
libwebp compiled to WebAssembly decodes the file, the image is scaled and encoded as a PNG with oxipng applied once per size, and the ICO header and its directory are written around the results. All of that runs in your browser: nothing is uploaded, there is no account and there is no daily allowance.
On this page that is worth saying rather than assuming, because the file is a logo somebody owns — quite possibly a client’s, quite possibly one that is not public yet. The free limit is 100 MB per file, which no logo will approach. Batches work if a project has several brands in it: drop a folder, take a ZIP, and the codec downloads once for the whole run.
| WebP | ICO | |
|---|---|---|
| Full name | WebP Image | Windows Icon |
| File extension | .webp | .ico |
| Media type | image/webp | image/x-icon |
| Compression | Either, depending on the setting | Lossless — nothing is discarded |
| First published | 2010 | 1985 |
| Published by | Microsoft | |
| Specification | RFC 9649 | — |
| Licensing | Open standard | Published, not standardised |
| Standing today | Current | Niche |
| Bit depth | 8 | 8 |
| Colour it can describe | RGB, YCbCr | RGB, indexed palette |
| Largest image | 16,383 px per side | 256 px per side |
| Opens in a browser | Every browser | Every browser |
| Considered instead | AVIF, JPG, PNG | PNG, SVG |
Transparency survives. Both WebP and ICO store an alpha channel, so a cut-out stays cut out and nothing is filled in behind it.
GIMP reads both WebP and ICO, so there is a way to check the result against the original without a second tool.
WebP is Google's format, published in 2010. It records 8 bits per channel.
ICO comes from Microsoft and dates from 1985. GIMP and IcoFX all read it.
ICO was published in 1985 and WebP in 2010. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.
No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is jSquash, WebAssembly builds of the reference image codecs; your browser fetches it once and caches it.
The sizes the "Icon sizes" control asks for, none above 256 pixels. The default writes 16, 32 and 48 — all of which a served logo of 240 pixels or more can supply comfortably, which is the usual case on this page.
Yes, and it is the default. Each size is a separate image in the same file, so a browser drawing a 16-pixel tab reads one made at 16 rather than reducing a 256 on the fly. That is worth more here than on most icon pages, because a served WebP is small and lossy and has nothing spare to lose to a second reduction.
Yes. The ICO written here wraps a PNG, which has a full alpha channel, so a cut-out logo stays cut out. That matters more for a favicon than almost anywhere else, because the tab strip changes colour between light and dark themes.
The decoder reads still images only and refuses animated files rather than silently taking frame one. An animated favicon is not a thing browsers support in an ICO anyway, so pick a frame with a screenshot and convert that.
Two likely reasons. The WebP was lossy, so it already had faint ringing along the edges and shrinking concentrates it; and the logo may simply be too detailed to read at that size. Cropping to the symbol alone, without the wordmark, fixes far more of this than any setting.
At the root of the site as /favicon.ico. Browsers request that exact path whether or not anything in the HTML points at it, which is why the 404 appears in the log in the first place. A link element in the head as well does no harm.
The claims this page makes about WebP and ICO are checkable, and these are the documents that settle them.