Saltar al contenido

Favicons: which sizes and files you actually need in 2026

6 min read Formats Updated August 2026

Favicon advice has accumulated for twenty-five years, and most of what you find recommends a list of thirty files for devices that no longer exist. The real requirement in 2026 is much shorter, but it is not one file either, and the parts that are still genuinely needed are the ones people skip.

This guide covers what each file is for, which ones you can safely drop, and the specific case — maskable icons — that silently makes installed web apps look broken.

Why one file was never enough

The favicon began as favicon.ico in Internet Explorer 5, in a Windows icon container format that can hold several resolutions in one file. That was a sensible design, and it is why ICO persists despite being unusual in every other respect.

The requirement expanded because the contexts multiplied. A browser tab needs about 16 pixels. A bookmark bar and a pinned tab want more. iOS wants a 180-pixel icon for the home screen. Android and installed web apps want 192 and 512 pixel icons, and want to crop them into whatever shape the launcher uses. A search result may show your icon at 48 pixels.

These are not the same image scaled. A logo that reads at 512 pixels frequently turns to porridge at 16, which is why serious favicon sets contain a simplified mark for the small sizes and the full logo for the large ones.

The set that actually matters now

For a site starting today, the following covers effectively all real traffic. Everything else on the traditional thirty-file list is for browsers and devices with negligible share.

An ICO at the site root remains worth including even though PNG is universally supported, because a surprising amount of software — feed readers, link previewers, older enterprise browsers — still requests /favicon.ico by path without reading your HTML at all. It is 15 KB of insurance.

An SVG favicon is the modern addition and the most useful one, because it is resolution-independent and can respond to dark mode. Browsers that support it prefer it; those that do not fall back to the PNGs.

  • favicon.ico — 16 and 32 px inside one file, at the site root.
  • favicon.svg — scalable, and can adapt to dark mode.
  • favicon-96x96.png — search results and general fallback.
  • apple-touch-icon.png — 180x180, for iOS home screens.
  • icon-192.png and icon-512.png — referenced from the web manifest.
  • A 512x512 maskable icon — see below; this is the one everyone misses.

Maskable icons, and why installed apps look wrong without them

Android launchers crop app icons into a shape of the device's choosing — a circle, a squircle, a rounded square. If your icon is a normal square PNG, the launcher crops it, and the corners of your logo are cut off. If the logo fills the square, the crop removes a visible slice of it.

The fix is a separate icon declared with `"purpose": "maskable"` in the manifest. A maskable icon is designed with a safe zone: all essential content must sit inside a circle covering the central 80% of the canvas, with the outer 10% on each side treated as expendable bleed that the crop may remove. The background must extend to the full canvas, so no shape of crop ever exposes an empty corner.

This means a maskable icon is not the same file as your normal icon with a different label. It is the same logo, smaller within its canvas, on a filled background. Declaring a normal icon as maskable produces exactly the clipped result the mechanism exists to prevent.

The HTML, and the parts that are optional

The declarations are short. A link for the SVG, one for the ICO as fallback, one for the Apple touch icon, and one for the manifest — the manifest then carries the PWA icons rather than the HTML doing it.

Two long-standing recommendations can now be dropped. The `msapplication-*` meta tags for Windows tiles refer to a Start menu feature that no longer exists. And the long ladder of `apple-touch-icon-76x76`, `-120x120` and so on is unnecessary: iOS has scaled a single 180-pixel icon down for years.

One detail that still bites: browsers cache favicons aggressively and often ignore normal cache headers, so a changed favicon can appear stale for a long time. Changing the filename is more reliable than waiting.

  • <link rel="icon" href="/favicon.svg" type="image/svg+xml">
  • <link rel="icon" href="/favicon.ico" sizes="32x32">
  • <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  • <link rel="manifest" href="/site.webmanifest">

Designing a mark that survives 16 pixels

At 16 pixels you have 256 pixels in total to work with, and after antialiasing perhaps a dozen meaningful shapes. Almost nothing survives that intact.

Words never do — a company name in a favicon is a grey smear. Use one letter, or a symbol. Thin strokes disappear, so weight lines far more heavily than looks right at full size. Detail must be removed rather than shrunk: the small favicon should be a deliberately simplified drawing, not the logo scaled down. And test on both a white and a dark tab strip, at actual size, on a real screen rather than zoomed in your editor.

Our favicon generator produces the full set from a single source image, including the maskable variant and the manifest.

Preguntas frecuentes

Do I still need favicon.ico?
Yes, as a fallback. Modern browsers prefer PNG and SVG, but a lot of other software — feed readers, link preview generators, older enterprise browsers — requests /favicon.ico by path without parsing your HTML.
What is a maskable icon?
An icon designed to survive being cropped into a circle or squircle by an Android launcher. All important content sits within the central 80% and the background fills the entire canvas, so no crop shape exposes an empty corner or clips the logo.
Why does my favicon disappear in dark mode?
Because it is dark artwork on a transparent background, and the tab strip is dark. Either use an SVG favicon with a prefers-color-scheme rule, or give the icon its own solid background colour.
Why won't my new favicon show up?
Browsers cache favicons very aggressively and frequently ignore cache headers for them. Changing the filename is far more reliable than waiting for the cache to expire.

Tools mentioned in this guide

Keep reading