Favicon and app icon complete guide 2026 (every size, every platform)
The favicon.ico that still matters, the apple-touch-icon that isn't optional, the PWA icons that make you installable, and the iOS + Android sets your app needs on day one.
The favicon isn't a favicon anymore
What we call "the favicon" is actually 6-10 different files, each targeting a different context: browser tab, bookmark bar, iOS home screen, Android home screen, PWA installer, Windows tile, RSS reader, browser history, search results.
The right approach in 2026:
- 1 SVG - modern browsers prefer this; scales to any size.
- favicon.ico - 3 sizes (16, 32, 48) packed into one file. Ancient browsers and RSS readers still request this.
- PNG 180ร180 - apple-touch-icon for iOS home screen.
- PNG 192ร192 + 512ร512 - PWA icons for installable web apps.
- Optional PNGs 16, 32, 48, 64, 96, 128 - for specific browser and platform quirks.
That's the full set. Favicon Generator produces every one from a single source image, plus the HTML <link> block for your <head>.
Why favicon.ico still exists
The .ico format predates PNG on the web. Every browser released since 1999 has requested /favicon.ico from the site root even when you specify PNG favicons via <link> tags - the request is baked into the browser's URL bar and bookmark logic. A missing favicon.ico produces a 404 in your logs for every visit.
Modern .ico files aren't the old BMP-in-container format; they're PNG-in-container (allowed since Windows Vista). Favicon Generator packs 16, 32, and 48 PNGs into a proper multi-size .ico that renders crisply in every context.
The HTML <head> block
The minimum-viable modern favicon setup:
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png">
<link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff">
Five <link> tags cover every modern browser and OS. The sizes="any" on the .ico is important - it prevents modern browsers from downloading the .ico when they already have the SVG.
Apple Touch Icon
iOS Safari looks for apple-touch-icon.png when a user adds your site to their home screen. Without one, iOS uses a screenshot of your page - usually terrible. Ship it.
Size: 180 ร 180 PNG. iOS auto-applies rounded corners; don't pre-round the image or it'll show a double corner.
Web app manifest (PWA)
site.webmanifest (or manifest.json) makes your site installable as a PWA on Android, ChromeOS, Windows, and macOS. Minimum:
{
"name": "Your App",
"short_name": "App",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone",
"start_url": "/"
}
The 192 and 512 PNG sizes are hard requirements - Chrome's install prompt won't fire without both.
Maskable icons
Android and ChromeOS may crop your icon to whatever shape their launcher wants (circle, squircle, rounded square). Regular icons get cropped uncomfortably.
The fix is a maskable icon: same PNG, but with 10% safe-zone padding on all sides. Add "purpose": "maskable" to that entry in the manifest:
{
"src": "/icon-192-maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
}
You can ship both - regular icons for Windows/macOS installs, maskable for Android - and let the platform pick.
The iOS app icon set
Every native iOS app needs an AppIcon.appiconset with 15+ sized PNGs and a Contents.json manifest that Xcode reads. The sizes are non-negotiable:
- 20 ร 20 (notifications), 40 ร 40 (notifications @2x), 60 ร 60 (notifications @3x)
- 29 ร 29 (settings), 58 ร 58 (settings @2x), 87 ร 87 (settings @3x)
- 40 ร 40, 80 ร 80 (spotlight @2x), 120 ร 120 (spotlight @3x)
- 60 ร 60, 120 ร 120 (app @2x), 180 ร 180 (app @3x)
- 76 ร 76, 152 ร 152 (iPad app @2x), 167 ร 167 (iPad Pro @2x)
- 1024 ร 1024 (App Store marketing)
Do not include an alpha channel in iOS icons - the App Store rejects them.
App Icon Generator produces all 15 from a single 1024 ร 1024 source, with the Contents.json in the right shape, packed as a zip you drag straight into Xcode's Assets.xcassets.
The Android launcher icon set
Android uses density buckets - each one is a specific pixel size for a specific screen density:
mipmap-mdpi- 48 ร 48 (baseline)mipmap-hdpi- 72 ร 72mipmap-xhdpi- 96 ร 96mipmap-xxhdpi- 144 ร 144mipmap-xxxhdpi- 192 ร 192- Plus a 512 ร 512 for the Play Store listing.
Android 8+ also supports adaptive icons (foreground + background layers that can be masked by the launcher). Full adaptive icons need XML setup beyond a single PNG - but a well-designed 512 ร 512 with a safe zone works fine as a fallback for every launcher.
App Icon Generator exports the mipmap folder structure ready to drop into your Android project's res/ directory.
Design tips that hold up across platforms
1. Keep the design centered. iOS rounds corners; Android may crop to a circle. Anything in the outer 10% will be clipped somewhere.
2. Avoid text. At 48 ร 48, no text is readable. Icons should communicate visually.
3. High contrast between subject and background. Your icon competes with 200+ other icons on a home screen. A subtle two-tone gradient loses; a bold single subject wins.
4. Test at actual size. Preview your icon at 48 ร 48. If it's unrecognizable there, redesign.
5. Match your product's visual identity. The icon is the first pixel a user sees. It should feel like the app they'll open.
Placeholder icons for prototyping
While the design is still in flux, Placeholder Image Generator creates solid-color squares with a label - perfect for "just get me something in the icon slot" during early prototyping. Swap to the real icon set once design is locked.
The complete workflow
Building a shipping icon set for a web app or PWA:
- Design a 1024 ร 1024 master PNG in Figma or Sketch.
- App Icon Generator โ drops iOS AppIcon.appiconset, Android res/mipmap folders, PWA icons.
- Favicon Generator โ drops favicon.ico + web PNG sizes + head snippet.
- Paste the head snippet.
- Verify with a tool like realfavicongenerator.net's checker, or just Chrome DevTools' Application tab.
Total time: about 5 minutes. Total files generated: 20-30. The alternative (hand-crafting each size in Photoshop) takes an hour and reliably ships one at the wrong resolution.
Related tools
- Favicon Generator - web favicon package.
- App Icon Generator - iOS, Android, PWA app icon sets.
- Image Converter - for the format conversions along the way.
- Image Resizer - if you need arbitrary sizes not in the standard sets.
- Placeholder Image Generator - for the "we haven't finalized the icon yet" phase.
Tools mentioned in this post
Favicon Generator
Upload an image โ get every favicon size, apple-touch, PWA icons, ICO, and the HTML snippet
App Icon Generator
One 1024ร1024 image โ full iOS, Android, and PWA icon sets in a zip
Image Converter
Convert between PNG, JPG, and WebP in your browser - batch supported
Image Resizer
Resize images to exact pixel dimensions or percentages - with aspect-ratio lock
Placeholder Image
Generate solid-color or gradient placeholder images at any size - download PNG
Related reading
Canva's AI image generator is the best thing to happen to solo game devs - here's the honest review
I finally sat down with Canva Dream Lab (the one built on Leonardo Phoenix) to make a game logo, and it changed my mind about AI art for indie devs. Here's what it's actually good at, where it falls apart, and the tiny stack of free tools that turns its output into ship-ready assets.
How to compress images without losing quality (JPG, PNG, WebP in 2026)
The math behind JPG quality, why WebP is now the smarter default, and the settings that give 60% file-size savings with no visible quality loss.
WebP vs JPG in 2026: why WebP won, and when JPG is still right
WebP files are 25-35% smaller than JPG at the same visual quality. Every browser supports it. Every CDN serves it. Here's why the JPG-vs-WebP debate is over - and the two edge cases where JPG still wins.
How to blur part of an image online (free, no upload, no watermark)
The safe way to blur a face, license plate, credit card number, or address in a screenshot - with a browser-based blur brush that never uploads your image. Includes the mistakes that make blur reversible, and why pixelation is often the safer choice.
Shan builds 712 Tools. He holds a Master's degree in Mechanical Engineering and now works as a Software Engineer, shipping browser-based developer utilities out of Ontario, Canada. Learn more ยท 712studiogames@gmail.com