ICOForgeON YOUR DEVICE

Favicon size: which file goes where?

Keep the files separate. Use a 16/32/48-pixel multi-size ICO as a browser fallback, 180-pixel Apple touch PNGs (with 152/167 variants when needed), and 192/ 512-pixel PNGs in an Android/Chromium web app manifest.

For Google Search, provide a square icon at least 8 pixels wide. Its current guidance recommends larger than 48 pixels; our example uses a separate 96-pixel PNG.

These sizes serve different destinations. They do not all belong inside one ICO.

Download the size checklist (CSV)

The size table, separated by destination

Use Pixels File What this means
Browser tab fallback 16x16; 32x32; 48x48 ICO ICOForge practical baseline, not a universal browser requirement
Google Search square, minimum 8x8; choose larger than 48x48 Supported raster format such as PNG or ICO Google current documentation; sample below uses 96x96 PNG
Apple iPhone Web Clip 180x180 PNG Explicit size example in Apple archived Safari guide; not an ICO frame
Apple iPad Web Clip 152x152; 167x167 PNG Explicit iPad size examples in Apple archived Safari guide
Android / Chromium installed web app 192x192; 512x512 PNG Chromium manifest icon baseline; icon files alone do not make an app installable

The ICO row is our starter set. It does not mean every browser requires exactly three frames.

The Apple rows come from an archived Safari Web Content Guide, not native App Store icon requirements. The Android row concerns installed web apps, not an ordinary browser tab.

How many sizes belong inside the ICO?

Start with three frames: 16, 32 and 48 pixels. Keep Apple touch icons and the 192/ 512 manifest icons as separate PNGs.

A 180-pixel ICO entry is not a substitute for a PNG linked with apple-touch-icon.

Renaming icon-180.png to favicon.ico does not create multiple frames. Use the PNG to ICO tool when you need the ICO container.

A downloadable set you can audit

We drew one original geometric mark and generated the files below locally. Our measurement file records each PNG's actual dimensions and SHA-256, plus the three decoded ICO entry sizes.

These are generated fixtures. They do not establish how the icons render on physical Apple or Android devices.

Compare declared sizes with the files. If the declaration says 192x192 but the PNG is 180x180, fix the file or declaration.

More link tags will not change the pixels.

What did the browser save at 32, 96 and 180 pixels?

On 28 October 2026 we resized a new transparent PNG in Chrome and saved each actual PNG output. The source canvas is 512 by 512 pixels.

Its opaque green mark occupies x96 through x415 and y96 through y415, a 320-pixel square with two colored inset squares. This source is separate from the two 128-pixel margin fixtures used in our homepage supplement.

Saved PNG canvas Artwork width, alpha at least 128 Artwork width, any nonzero alpha Saved file bytes
32 × 32 20 pixels 20 pixels 283
96 × 96 60 pixels 60 pixels 744
180 × 180 112 pixels 114 pixels 1607

We decoded the saved files a second time and checked alpha thresholds 1, 128 and 255. The 32 and 96 outputs retained the same measured bounds at all three thresholds.

The 180 output has a faint outer edge: counting every nonzero alpha pixel gives 114 pixels, while the 128 and 255 thresholds both give 112.

The 32 output's inclusive bounds are 6 through 25; the 96 output's bounds are 18 through 77. The 180 output's threshold 128 bounds are 34 through 145.

Those are measured pixel coordinates from our files, not prescribed margins for a favicon. They describe this exact centered source and this browser run.

All three files below came from the local Chrome canvas test, with image smoothing enabled and quality set to high. They are PNG outputs, not claimed ICO downloads or physical iPhone/Android screenshots.

Our public ICO converter has no 180-pixel setting; the 180 PNG is a separate touch-icon-sized experiment.

Download original 512 PNG · Actual 32 PNG · Actual 96 PNG · Actual 180 PNG · Original browser evidence · Decoded bounds, bytes and hashes · Open the repeatable test

What the saved alpha channels contain

We counted every decoded pixel in the three saved browser PNGs. The small output contains 624 fully clear pixels and 400 fully opaque pixels, with no intermediate alpha values.

The medium output contains 5616 fully clear pixels and 3600 fully opaque pixels, again with no intermediate values. The large output contains 19404 fully clear pixels, 12544 fully opaque pixels and 452 partially transparent pixels.

In that large file, the intermediate alpha histogram contains one pixel at alpha 3, two at alpha 5, one at alpha 8, 224 at alpha 31 and 224 at alpha 47. None of those fringe pixels reaches our primary threshold of 128.

This decoded histogram accounts for the difference between the measured 114-pixel nonzero span and the measured 112-pixel strong span in this run.

Each downloaded PNG has the same decoded center color: red 35, green 77, blue 58 and alpha 255. Each corner is transparent black, with all four channels zero.

The census, byte lengths and file hashes were read from the saved outputs; they are not predictions from the source geometry. The three census totals are 1024, 9216 and 32400 pixels respectively, matching their decoded canvas areas.

Download the decoded alpha census

We checked individual horizontal rows of the saved 180-pixel PNG, using zero-based coordinates. Row 32 and row 147 each contain 180 fully transparent pixels.

Row 33 contains 66 clear pixels, one pixel at alpha 3, one at alpha 5 and 112 at alpha 31. Row 146 contains 66 clear pixels, one at alpha 5, one at alpha 8 and 112 at alpha 47.

Neither outer occupied row contains an opaque pixel. Rows 34 and 145 each contain 112 opaque pixels, 66 clear pixels, one at alpha 31 and one at alpha 47.

The nonzero bounding box includes a faint border. It is not all solid artwork.

Download the measured edge rows

We also counted distinct RGBA colors in the saved files. The source contains three colors including transparent black; its opaque green region contains 92600 pixels and its opaque yellow insets contain 9800 pixels.

The actual small, medium and large PNG outputs contain five, eleven and twelve distinct RGBA colors respectively. Exact original yellow survives in 32 pixels of the small output, 288 pixels of the medium output and 1152 pixels of the large output.

Exact original green survives in 350, 3208 and 11294 pixels respectively. The small file additionally contains sixteen opaque pixels with RGB values 97, 138, 63 and two opaque pixels with RGB values 58, 99, 60.

Those new colors occur inside fully opaque artwork, separately from the partially transparent outer fringe measured in the large file.

Download the measured color census

Which pixels count as artwork?

A 180-pixel PNG is not proof of 180 pixels of visible artwork. Separate the canvas from the mark.

For our test, the geometric scale factor is output width divided by 512; the unrounded artwork span is 320 times that factor. Our calculation: 320 × 32 / 512 = 20; 320 × 96 / 512 = 60; 320 × 180 / 512 = 112.5 pixels. This is a proportional prediction, not a measured result. The last value is a geometric span, not a possible integer pixel count.

We use alpha 128 as the main occupied-artwork threshold and retain alpha 1 and 255 as cross-checks. This is our measurement rule, not an Apple or Google requirement.

It prevents a barely visible resampling fringe from silently changing the primary width while still disclosing that fringe. At 180, the measured 112-pixel strong core and 114-pixel nonzero span bracket the 112.5-pixel geometric span; that is why we report all three instead of rounding the prediction and calling it a measurement.

To repeat the check, open our test page, press Run browser measurements, then download its JSON. The JSON contains the generated PNG bytes as data URLs and the browser's inclusive bounds.

Save those PNG bytes, decode the alpha channel, and measure again using the same threshold. Compare dimensions and bounds before file hashes.

A different browser encoder can produce different bytes without changing the occupied shape.

For your own design, keep intentional clear space, inspect the actual small output, and measure with a stated threshold if a one-pixel difference matters. Our fixture does not establish a universal safe margin.

It gives a reproducible way to distinguish an incorrectly sized file, a small mark inside a correct file, and a faint edge counted by a different rule.

Connect the files to the right place

<link rel="icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
<link rel="icon" type="image/png" sizes="96x96" href="/icon-96.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icon-180.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icon-152.png">
<link rel="apple-touch-icon" sizes="167x167" href="/icon-167.png">
<link rel="manifest" href="/site.webmanifest">

Download the link example · Download the sample manifest

The example assumes these files are copied to your site's root. If you put them in a folder, change the link paths and manifest icon paths together.

This manifest shows icon declarations only; it is not a complete installation recipe and does not turn this site into an installed app.

Three checks before changing the artwork

  • Open each declared image URL. A missing file is a path problem, not a size problem.

  • Check actual dimensions against the table. Do not read dimensions from the filename alone.

  • Match the destination: browser icon link, Apple touch link, or manifest icon entry. Do not judge all three from the browser tab.

Google Search eligibility is separate from browser display. Supplying a correctly sized icon does not guarantee Google will show it.

Quick answers

Is 32x32 enough?

Use 32x32 for a browser icon, but not as your only website icon. Apple home-screen icons and installed-web-app manifest icons need separate files.

Do all these sizes belong in favicon.ico?

No. Keep the ICO fallback separate from the Apple and manifest PNG files.

Can I use one big PNG everywhere?

Some destinations resize supplied artwork, but that does not remove their separate link and manifest rules. Use the table to wire each destination explicitly.

Why are the Google and browser-tab rows different?

They describe different surfaces. Google's published Search requirements are not a specification for every browser tab.

Does this set guarantee every device looks the same?

No. The downloads verify file formats and dimensions; they do not certify every device's rendering.

Sources and scope

Sources checked 27 October 2026: Google Search favicon guidance; Apple archived Web Clip guidance; web.dev manifest guidance; MDN icon link behavior. The diagrams, sample artwork, downloads and file audit are our own.

This checklist covers website icons, not native Android launcher assets or App Store submissions.

Verification record

Verification date: sources checked 2026-10-27; new browser PNG measurements checked 2026-10-28.

Source domains: developers.google.com; developer.apple.com; web.dev; developer.mozilla.org.

Our calculation: 3 ICO frames + 6 separate PNG files = 9 encoded images across 7 image files.

Last updated: 2026-10-28.