How to Make a Favicon for Your Website (2026 Guide)
Create a sharp favicon set for your website in 2026: generate 16x16 to 512x512 icons, install the HTML, and avoid the mistakes that cause blurry tabs.
A favicon is one of those tiny details that experienced web designers obsess over and everyone else forgets until they notice their site looks unfinished in a browser tab. It is the image that appears next to the page title in a browser tab, on the bookmark bar, in the browser history, and (with the right setup) on the home screen when someone saves your site on their phone.
Getting it right is a 10-minute job. Getting it wrong is worse than not having one at all, because a blurry or wrong-sized favicon looks worse than the default browser icon. This guide covers both.
What "favicon" actually covers
The word "favicon" comes from "favourites icon", the little image a browser shows next to a bookmark. In 2026, the same image is used in at least eight places:
- Browser tab next to the page title
- Bookmark bar and bookmark menus
- Browser history entries
- Tab switcher on mobile
- Home screen icon when a user saves your site (iOS / Android)
- Pinned tab in Safari
- Rich previews on social media (sometimes)
- Search results (Google sometimes shows it next to results)
Every surface uses a slightly different size. A favicon set (not a single favicon) is what you actually need.
The modern favicon set (2026)
If you generate the right set once, you never have to think about it again. Here is what you need:
One source image, six files, every surface covered.
| File | Size | Where it appears |
|---|---|---|
| favicon.ico | 16 / 32 / 48 | Legacy browsers, bookmark bars |
| favicon-16x16.png | 16x16 | Browser tabs |
| favicon-32x32.png | 32x32 | High-DPI tabs, bookmarks |
| apple-touch-icon.png | 180x180 | iPhone / iPad home screen |
| android-chrome-192 | 192x192 | Android home screen |
| android-chrome-512 | 512x512 | PWA splash screen |
You do not need all six files if you only care about a browser tab. But if you want your site to look good when someone saves it to their phone home screen, generate the full set.
Design tips for a favicon that reads at 16 x 16 pixels
The hardest thing about favicon design is that it has to be readable at 16 x 16, the size of a pencil eraser. Most favicons fail this test because they were designed at 512 x 512 and never checked at small size.
- Use a single letter or a simple geometric shape. A capital "T" for ToolDeck, a "G" for Google, a rounded triangle. This is what works at 16 px.
- Skip text unless it is one character. Anything more becomes illegible.
- Use high contrast. Light on dark or dark on light. Avoid mid-tones on mid-tones.
- Avoid fine details. Thin lines disappear. Rounded corners look softer.
- Test at actual size. Generate the icon, open it in an image editor, and zoom to 100 percent (not 400 percent). If you cannot tell what it is, redraw.
- Square is safe. Round favicons get cropped awkwardly in some surfaces.
How to generate a favicon set
- Open the Favicon Generator tool.
- Upload a square source image, at least 512 x 512. Larger is better. PNG with transparency works best.
- The tool generates every size in the modern set.
- Download the resulting ZIP file. It contains all icons plus a site.webmanifest and a snippet of HTML.
Full favicon set from one image. Free, in your browser.
Generate FaviconsHow to install the favicon set
The generated ZIP file contains everything you need. Here is the exact process:
Step 1: Upload the icons
Upload every file from the ZIP to the root of your website. In a Next.js project, that means the /public folder. In WordPress, the root directory. In any other CMS, wherever static assets live. The icons must be publicly accessible, usually at https://yoursite.com/favicon.ico and similar paths.
Step 2: Add the HTML
Add these lines to the head of every page. In a Next.js app, they go in app/layout.tsx inside the head tag.
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />That is the modern, complete set. Every browser (Chrome, Safari, Firefox, Edge, on desktop and mobile) will pick the right one for its surface.
Step 3: Verify the site.webmanifest
The manifest file needs to reference the Android icons:
{
"name": "Your Site Name",
"short_name": "Site",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#060912",
"background_color": "#060912",
"display": "standalone"
}The theme_color and background_color are the colours Android uses for the top bar and splash screen when a user installs your site as a PWA.
Five mistakes that make favicons fail
- Wrong file location. The favicon must be at /favicon.ico (root) for old browsers to find it automatically. Modern browsers use the link tags, but old ones do not.
- Wrong file type. A .ico file is not the same as a .png renamed to .ico. Generate both formats properly.
- Path mistakes. Use absolute paths (/favicon.ico), not relative ones (./favicon.ico or ../favicon.ico). Relative paths break on pages in subfolders.
- Wrong size. A 512 x 512 PNG served as a "16 x 16 favicon" works but wastes bandwidth and looks blurry when the browser downsamples. Serve the right size for each slot.
- Cache problems. Browsers cache favicons aggressively. After changing your favicon, hard-refresh (Ctrl+Shift+R) to see the new one. In production, users may see the old one for a day or two.
If your favicon is not showing up
| Symptom | Likely cause | Fix |
|---|---|---|
| Blank tab icon | File not found (404) | Open /favicon.ico directly in the browser. Does it load? |
| Blurry icon | Only serving 16x16, no high-DPI version | Add favicon-32x32.png and favicon-48x48.png |
| Wrong icon showing | Browser cache | Hard refresh, or open in a private window |
| Works on Chrome, not Safari | Missing apple-touch-icon | Add the 180x180 apple-touch-icon.png |
| Black square on Android home screen | Missing manifest or Android icons | Add site.webmanifest and the 192/512 PNGs |
| Icon looks small and off-centre | Source image has padding | Crop the source image tight to the icon edges before generating |
The bottom line
A favicon is a five-minute job that most sites get wrong. Generate the full set once, install it correctly, verify with a hard refresh, and never think about it again. It is a small but visible quality signal: a site with a proper favicon looks more finished than one that just shows the browser default.
Tools mentioned in this article
Frequently asked
What size should a favicon be?
A modern favicon set includes 16x16, 32x32, 48x48 (for tabs and bookmarks), 180x180 (apple-touch-icon for iPhone home screen), and 192x192 and 512x512 PNGs (Android home screen), plus a multi-size favicon.ico for legacy browsers. Most sites generate all of these from one 512x512 source image.
What image format should I use for a favicon?
PNG for all the individual sizes, and a multi-size .ico file for the legacy favicon.ico. Do not just rename a PNG to .ico. It will not work reliably. Use a favicon generator that produces the .ico format properly.
Does a favicon help SEO?
Directly, no. The favicon is not a ranking factor. Indirectly, yes. A site with a proper favicon looks more professional, which affects click-through rate in search results. Google does show favicons next to search results, so a distinctive icon can improve CTR.
How do I add a favicon to a Next.js site?
Put the favicon files in the /public folder at the root of your project. Then add the link tags from the generator into app/layout.tsx, inside the head tag. Next.js will serve the icons as static files at their public paths.
Why is my favicon not updating?
Browsers cache favicons very aggressively, often for hours or days. Try a hard refresh (Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on Mac) or open your site in a private/incognito window. Users with the old icon cached will see the new one within a day or two.
Do I need a favicon.ico file?
Yes, for maximum compatibility. Modern browsers use the PNG link tags, but some older tools and Windows taskbar pinned sites still look for /favicon.ico by convention. It costs nothing to include both.
Can I use an SVG as a favicon?
Yes, modern browsers support SVG favicons. They are resolution-independent, so they look sharp at any size. However, they are not supported in very old browsers and cannot be used as an apple-touch-icon. Use SVG alongside the standard PNG set, not instead of it.
What should my favicon look like?
Something that reads clearly at 16 x 16 pixels. A single letter or a simple geometric shape works best. Avoid text (illegible at small sizes), fine details (they disappear), and mid-tone colours (they blend together). Test your icon at actual size before committing. Zoom to 100 percent in an image editor, not 400 percent.