How to Make a Favicon for Your Website
A favicon is the small icon that sits in the browser tab, in your bookmarks, in the history dropdown, and next to your site in Google's search results. It is roughly sixteen pixels wide and it is the single most-seen piece of branding your site owns — every visitor looks at it every time they switch tabs.
Making one is easy. Making one that shows up everywhere is where people get stuck, because most advice online is a decade out of date — you will find "favicon packages" offering twenty-two files for Windows tiles and BlackBerry devices that no longer exist. You do not need them.
This guide covers the five files modern browsers and phones actually use, the exact HTML to paste into your <head>, how to check you got a genuine .ico instead of a renamed PNG, how to design something legible at sixteen pixels, and the real reason your favicon is not updating. Build the icon as you read with FileNaut's free Favicon Generator — it runs entirely in your browser, so your logo is never uploaded anywhere.
What a favicon is, and how browsers find it
A favicon is an image file the browser requests separately from your page. There are two ways it finds one:
- Automatically. Every browser requests
/favicon.icofrom the root of your domain whether you asked it to or not. Drop a file at that exact path and it works with zero HTML. - Explicitly. A
<link rel="icon">tag in your<head>points at whatever file you like, at whatever path. This overrides the automatic lookup and is how you serve modern formats and phone-sized icons.
You want both. The root favicon.ico is the safety net that catches every browser, crawler and RSS reader ever written; the link tags are how you serve something sharper to everything made this decade.
Because the icon is a separate request, it is also cached separately — which is why changing it feels like it never took effect. More on that below.
The only favicon sizes that still matter
Ignore the twenty-file icon packs. Five files cover every browser, phone and platform in real use:
| File | Size | What uses it |
|---|---|---|
favicon.ico |
16 + 32 (48 optional) | Tabs, bookmarks, history, search results, every legacy client. The one non-negotiable file. |
icon.svg |
Vector, any size | Modern desktop browsers. Stays crisp at any zoom and can change colour in dark mode. |
apple-touch-icon.png |
180 × 180 | iPhone and iPad "Add to Home Screen". |
icon-192.png |
192 × 192 | Android home screen, via your web app manifest. |
icon-512.png |
512 × 512 | Progressive web app splash screen and install prompts. |
If you only ever ship one file, ship favicon.ico at your site root. It covers the tab, the bookmark and the Google result — ninety per cent of the value.
Why .ico at all, in this century? Because ICO is a container. One .ico holds 16×16, 32×32 and 48×48 side by side, and the browser picks whichever fits the slot it is filling — including the larger versions high-density displays ask for. One file, several resolutions, no extra requests.
How to make a favicon (step by step)
Start from the highest-resolution square version of your logo you have — ideally 512 × 512 or larger. Everything downstream is a downscale.
- Open the FileNaut Favicon Generator.
- Drag your image onto the drop zone, or click Browse Files. PNG, JPG, WebP and GIF all work. A PNG with a transparent background gives the cleanest result.
- Check the preview. It shows your image beside a scaled-down version so you can see what actually survives at icon size. If it turns to mush here, go back and simplify the artwork — see the design rules below.
- Click Download Favicon (.ico). The file is generated in your browser and saved straight to your downloads folder — nothing is uploaded.
- Rename it to exactly
favicon.icoif your browser added a suffix likefavicon(1).ico, and upload it to the root of your site so it is reachable athttps://yoursite.com/favicon.ico.
Square your artwork first. Icons are square, and a wide logo gets squashed to fit rather than letterboxed — a 64 × 24 banner becomes a stretched 32 × 32. Crop or pad to 1:1 with the Image Resizer before generating, or better, use just the symbol from your logo rather than the full lockup.
For the PNG sizes in the table above, run your source through the Image Resizer at 180, 192 and 512 pixels. If your source is a JPG, convert it to PNG first with the Image Converter so you keep transparency.
Check what you actually downloaded
Here is a trap that catches people using almost every free favicon tool online, including some very popular ones: a file named favicon.ico is not necessarily an ICO file.
The reason is a quirk of how browsers export images. Web tools generate icons on an HTML canvas, and when code asks the canvas for an ICO the browser quietly ignores the request and hands back a PNG — same filename, different format, no error. Nobody usually notices, because browsers inspect a file's contents rather than trusting its extension, and will happily render a PNG sitting at /favicon.ico.
It stops being harmless the moment something validates the format: CMS and hosting control panels reject the upload, icon-checking services report it invalid, and you lose the multi-size behaviour entirely, because a single PNG only has one resolution.
How to check in five seconds. On macOS or Linux, ask the operating system what the file really is:
file favicon.ico
A genuine multi-size icon reports itself clearly:
favicon.ico: MS Windows icon resource - 3 icons, 16x16, 32x32, 48x48
A PNG wearing an .ico extension gives itself away just as clearly:
favicon.ico: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced
On Windows, open the file in any hex viewer and read the first four bytes. A real ICO starts with 00 00 01 00; a PNG starts with 89 50 4E 47 — those last three bytes are literally the letters "PNG".
FileNaut's generator packs 16, 32 and 48 pixel versions into one genuine ICO container, so file reports all three. If a tool fails this check, keep the PNG and reference it directly with a link tag rather than pretending it is an ICO.
Where the files go, and the HTML to paste
Upload all five files to the root directory of your site — the same folder your homepage is served from. Then paste this into the <head> of every page, ideally in your shared template or layout file:
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">
That is the whole thing. Browsers pick the best format they understand and ignore the rest, which is why a modern SVG and a legacy ICO can sit side by side with no fallback script.
The manifest is a small piece of JSON telling Android and PWA installers which icons to use:
{
"icons": [
{ "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" },
{ "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" }
]
}
Use leading slashes. Write /favicon.ico, not favicon.ico. Without the slash the path resolves relative to the current page, so an icon that works on your homepage silently 404s on /blog/some-post/ — the most common favicon bug there is, and invisible until someone lands on a deep page.
Designing something readable at 16 pixels
Sixteen pixels is about the width of a lowercase letter in this paragraph. Almost nothing survives at that size unless it was designed to. Five rules do most of the work:
- Use one shape, not your logo. Take the mark, the monogram, or a single distinctive element. A full logo lockup with a wordmark next to a symbol becomes an unreadable smudge.
- Delete the text. Words are illegible below roughly 48 pixels. A single letter can work; a company name cannot.
- Push the contrast. Your icon has to read against a light tab bar and a dark one. Mid-grey on mid-blue disappears in both. Test it on both themes before you commit.
- Trim the padding. Whitespace that looks elegant on a business card wastes a third of your sixteen pixels. Let the shape fill the square.
- Judge it at actual size. Everything looks good zoomed to 400%. Shrink the preview to real size, sit back, and see whether you can still tell what it is. If not, simplify and try again — that loop takes two minutes in a browser-based generator.
Why your favicon is not showing up
You uploaded the file, you refreshed, nothing changed. This is the most common favicon complaint and it is almost always one of six things — in rough order of likelihood:
- It is cached, and a normal refresh will not clear it. Browsers cache favicons separately from pages and hold them for a long time. Visit the icon's URL directly — type
yoursite.com/favicon.icointo the address bar — and hard-refresh that. You are refreshing the icon, not the page. Failing that, use a private window, which starts with an empty icon cache. - The path is relative. Worth repeating because it is so common: use
/favicon.ico, with the leading slash. - The file is not actually at the root. Visit the URL directly. Your 404 page instead of an image means the upload went somewhere else — common when a deploy pipeline only publishes
public/ordist/. - Your server returns HTML with a 200 status. Some hosts serve a styled "not found" page with a success code, so the browser gets HTML where it expected an image and gives up silently.
- A CDN is holding the old file. Purge at the CDN, not just in your browser. Otherwise add a version query to the link tag —
/favicon.ico?v=2— which most caches treat as a new file. This only works for the explicit link tag, not the automatic root lookup. - You are testing over
file://. Favicons behave inconsistently when a page is opened straight from disk. Use a local dev server.
One thing you cannot rush: the icon beside your site in Google results. Google refreshes that on its own crawl schedule, which can take weeks. If the file is reachable and the page is indexed, the rest is patience.
Platform quirks worth knowing
- iOS turns transparency black. Apple composites
apple-touch-icon.pngonto a solid background, so a transparent logo arrives floating on black. Give that file an explicit background colour. iOS also adds its own rounded corners — do not round them yourself, or you get a double-rounded edge. - SVG favicons can follow dark mode. An SVG carries its own stylesheet, so a
prefers-color-schemerule inside the file flips the icon's colour with the user's theme. That is the one genuine advantage of shipping one. - Safari does not use SVG favicons. It falls back to the ICO — which is why the block above lists both, and why "just ship an SVG" is wrong on its own.
- Animated GIF favicons work in Firefox. They are also read as spam. Do not.
Tips
- Start from a square source of at least 512 × 512, and keep that master file. Every other size is a downscale of it, and you will redo this when the brand changes.
- Verify the format with
file favicon.icobefore you upload, not after someone reports it broken. - Put the link tags in your shared layout, not one page. A favicon that only works on the homepage mostly does not work.
- Check the result in a private window. Your own browser has the old icon cached and will lie to you.
- Do not ship the framework default. A Next.js, Vite or WordPress starter icon in a live tab reads as an unfinished site.
FAQs
What size should a favicon be? ▼
favicon.ico should contain 16 × 16, 32 × 32 and 48 × 48 versions inside the one file. Separately, ship a 180 × 180 PNG for iOS home screens and 192 × 192 plus 512 × 512 PNGs for Android and progressive web apps. Start from a square source of 512 pixels or more and scale down.Do I still need a favicon.ico file? ▼
/favicon.ico from your site root even with no HTML pointing at it, and Safari does not use SVG favicons at all. The ICO is also the only format that holds several resolutions in one file. Modern formats are an addition to it, not a replacement.Why is my favicon not updating? ▼
yoursite.com/favicon.ico — and hard-refresh there, or open your site in a private window to confirm the new file is live. If you use a CDN, purge it too. The icon shown next to your site in Google results updates on Google's own crawl schedule and can lag by days or weeks.Can I convert a PNG to an ICO for free? ▼
file favicon.ico, because many free converters hand back a PNG that has simply been renamed.Where do I put the favicon file? ▼
https://yoursite.com/favicon.ico. On most frameworks that means the public/ or static/ folder, which gets published to the root at build time. Confirm by visiting the URL directly — if you see your 404 page instead of the icon, it is in the wrong place.Does a favicon affect SEO? ▼
Can a favicon have a transparent background? ▼
apple-touch-icon.png: iOS composites transparency onto black, so give that file a solid background colour of its own.Why does my logo look squashed as a favicon? ▼
Is my image uploaded anywhere when I make a favicon? ▼
How many favicon files do I really need? ▼
favicon.ico, an SVG, a 180 × 180 Apple touch icon, and 192 × 192 plus 512 × 512 PNGs in a web app manifest. The twenty-plus file "favicon packages" still circulating target Windows tiles and BlackBerry — platforms that no longer read them. In a hurry, the ICO alone gets you most of the benefit.Ready to try it?
Use the tool right now — free, no signup, no upload.