All Tools

Favicon Checker

Enter any domain and instantly see its favicon at every standard size — 16px, 32px, 64px, 128px, and 256px. Check whether your icon stays crisp in browser tabs, bookmarks, and on Retina displays.

Why Favicons Matter for Brand Recognition

A favicon is the small icon that appears in browser tabs, bookmark lists, browser history, reading lists, and in some search engine results. When a user has 20+ tabs open, your favicon is the only visual identifier for your product's tab. A distinct, well-designed favicon lets users find you instantly. A missing or generic favicon — the default browser icon or a pixelated logo — signals an unfinished product.

For indie makers, a memorable favicon is a low-effort, high-impact branding detail. It appears every time a user bookmarks your site, looks at their browser history, or visits from a bookmark. This repeated, passive exposure reinforces brand recognition in a way that costs nothing to maintain after the initial implementation.

Where Your Favicon Appears

Browser tab
16x16px Most common display context. Must be legible at tiny size.
Bookmarks bar
16x16px Shown alongside the page title in bookmarks.
Retina browser tabs
32x32px Hi-DPI screens show the 32px version in tabs.
Windows taskbar pinned sites
32x32px Used for pinned site shortcuts on Windows.
iOS home screen (Apple Touch Icon)
180x180px When user saves to home screen with Add to Home Screen.
Android home screen shortcut
192x192px (PWA manifest) Defined in your web app manifest for Android shortcuts.
Google Search (site name results)
48x48px minimum Google shows favicons next to search results for branded queries.

How to Add a Favicon in Next.js App Router

Place favicon files directly in the app/ directory with reserved filenames and Next.js serves them automatically at the correct routes:

app/
  favicon.ico          → served at /favicon.ico (legacy browsers)
  icon.svg             → served at /icon.svg (modern SVG favicon)
  icon.png             → served at /icon.png (PNG fallback)
  apple-icon.png       → served at /apple-icon.png (iOS home screen)

// Or generate dynamically with icon.tsx:
// app/icon.tsx
import { ImageResponse } from 'next/og'
export const size = { width: 32, height: 32 }
export const contentType = 'image/png'

export default function Icon() {
  return new ImageResponse(
    <div style={{ background: '#000', width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', color: 'white', fontSize: 22, fontWeight: 700 }}>
      B
    </div>
  )
}

Favicon Design Principles for Small Sizes

  • Use a square canvasNon-square favicons get cropped unpredictably. Always design for a square grid.
  • Single symbol or initial, not a full logoYour full wordmark becomes unreadable at 16px. Use just the icon mark or a single bold letter.
  • No textText at 16px is illegible regardless of font quality. Reserve text for larger icon contexts.
  • High contrast fillsThin strokes and gradients disappear at small sizes. Use solid fills with high contrast.
  • Test on both light and dark browser chromeMany browsers now have dark UI. Your icon needs sufficient contrast on both light grey and dark backgrounds.

Frequently Asked Questions

What file format should my favicon be?

Use SVG for the best results on modern browsers. An SVG favicon scales perfectly at any resolution, stays sharp on high-DPI Retina displays, and supports the prefers-color-scheme media query for automatic dark mode variants. For older browser compatibility, include a 32x32px PNG or ICO fallback. The modern favicon setup uses three tags: a link with type='image/svg+xml' for SVG browsers, a link with type='image/png' for fallback, and a link with rel='apple-touch-icon' for iOS home screen icons. ICO format is no longer necessary for any modern browser.

How do I make a favicon that looks good in dark mode?

SVG favicons support the prefers-color-scheme media query directly inside the SVG file. You can define different fill colors inside a style block: use the media query to switch between a dark icon for light backgrounds and a light icon for dark browser chrome. This is the cleanest solution and requires only one file. For PNG favicons, you cannot do dark mode variants without JavaScript, which browsers do not allow for favicon links. If your brand mark has low contrast on dark backgrounds, SVG with color adaptation is the recommended approach.

What is an Apple Touch Icon and do I need one?

An Apple Touch Icon is the icon shown when a user saves your website to their iOS home screen with 'Add to Home Screen'. Without one, iOS generates a screenshot of the page, which looks terrible. Specify it with <link rel='apple-touch-icon' href='/apple-touch-icon.png'> in your HTML head. The recommended size is 180x180px PNG. Android also uses this icon for similar home screen shortcuts. Always include one for any web app or frequently-visited site.

How do I add a favicon in Next.js App Router?

Place your favicon files in the app/ directory with specific names and Next.js picks them up automatically. Place favicon.ico in app/ for the classic ICO favicon. Place icon.svg or icon.png in app/ for modern SVG or PNG favicons. Place apple-icon.png in app/ for the Apple Touch Icon. You can also use icon.tsx and apple-icon.tsx to generate favicons dynamically using the ImageResponse API — useful for programmatic favicons with your brand colors or text.

Why does my favicon look blurry in browser tabs?

Browser tabs display favicons at 16x16px on standard screens and 32x32px on Retina displays. If you provide only a 16x16px raster image, it will look blurry on Retina displays. If you provide a large image (256px+), browsers scale it down and the result depends on the browser's downsampling algorithm. The most reliable solution: use an SVG favicon (infinitely scalable) with a PNG fallback. If you must use PNG, provide both a 16x16px and a 32x32px version so the browser can choose the closest match.

Report a Bug

Something broken?

Send Feedback

Share your thoughts

Request a Feature

What should we build?