Favicon ToolsVerifyBuild
Basics
Setup

How to Add a Favicon to Your Website (Step-by-Step)

· 6 min read

Four steps from blank tab to pixel-perfect branding. Works for any HTML site, CMS, or framework.

What you need first

A single 16x16 favicon isn't enough anymore. Modern browsers, iOS, Android, and Windows each request different sizes and formats. Before you add any tags, make sure you have a complete icon set.

The minimum set

FileSizeWhat needs it
favicon.icomulti-resolutionBrowsers and crawlers that request /favicon.ico by default
favicon-16x16.png16x16Browser tabs and the address bar
favicon-32x32.png32x32Retina tabs, bookmarks, desktop shortcuts
apple-touch-icon.png180x180iOS home screens
Manifest icon192x192Android home screens, referenced from the web manifest

What those sizes actually look like

Example favicon at 16 by 16 pixels
16px
Example favicon at 32 by 32 pixels
32px
Example favicon at 48 by 48 pixels
48px
Example favicon at 180 by 180 pixels
180px
Rendered at true pixel dimensions, not scaled up. Almost all of the design work goes into the leftmost swatch, because that's the one people look at all day.

The four steps

  1. 1

    Generate your favicon files

    Let a generator produce every size, the .ico sprite, and a tuned manifest.json in one pass. Drop in a logo, a screenshot, or even an emoji and download the full kit. New to making icons? Start with how to make a favicon.

  2. 2

    Add the files to your site root

    Copy the downloaded files into the directory that serves your domain root. On a static site that's the root folder; on most frameworks it's the public/ directory. The goal is that https://yoursite.com/favicon.ico resolves directly.

  3. 3

    Add the link tags to your <head>

    Reference each icon with <link> tags inside the document <head> (icon, apple-touch-icon, and manifest) on every page, which usually means a shared template or layout.

  4. 4

    Verify it works

    Deploy, then hard-refresh and check the tab. The most reliable check is an automated scan that confirms every tag resolves and flags any missing platform icons.

The link tags

<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">

Paste these inside the <head> element of every page. The manifest link is what gives you install prompts and home-screen icons. See what is manifest.json.

Platform-specific shortcuts

Using a framework or CMS? Several of them handle the head tags for you with their own conventions. The platform guides cover Next.js, React, WordPress, and Shopify.

Common mistakes

MistakeFix
Browser cachingOld favicons linger. Hard-refresh, or append ?v=2 to the link href.
Wrong pathA leading slash matters. /favicon.ico is served from the root, not from the current folder.
Missing apple-touch-iconiOS home screens fall back to a blurry screenshot without it.

Frequently asked questions

Where do I put the favicon file?

Place favicon.ico and the other icon files in your site's root directory (or the public/ folder for most frameworks) so they are served from the domain root, e.g. https://example.com/favicon.ico.

Do I still need a favicon.ico file?

Yes. Browsers and crawlers still request /favicon.ico by default, so shipping a multi-resolution .ico alongside modern PNG and SVG icons gives you the widest compatibility.

Why isn't my favicon showing after I added it?

Browsers cache favicons aggressively. Hard-refresh, append a version query string like ?v=2 to the link, and confirm the file path is correct. See our favicon troubleshooting guide for every cause.

Generate your icon set

Keep reading