Skip to main content

SVG Favicon Guide - Support, Fallbacks, Limits

8 min read

An SVG favicon works in modern desktop browsers when you declare type="image/svg+xml" and ship a PNG or ICO fallback for Safari, older clients, and contexts that ignore vector tab icons. SVG is not a replacement for your full icon set. It is an optional sharp layer on top of 16×16, 32×32, apple-touch-icon, and manifest icons.

This guide covers where SVG helps, where it fails, and the HTML pattern that keeps every browser covered without breaking bookmarks or home screens.

What an SVG favicon actually does

Vector favicons scale to any tab size without pixelation. A single favicon.svg can look crisp on a 32×32 tab and a 2x retina display because the browser rasterizes the SVG at render time.

That sounds ideal for logos with simple geometry. In practice, browsers treat SVG as one option in a priority list. If SVG is unsupported or blocked, the next matching rel="icon" entry wins.

SVG favicons do not replace:

  • favicon.ico at the site root (still requested automatically)
  • apple-touch-icon for iOS home screens (PNG only)
  • manifest icons at 192×192 and 512×512 for Android PWAs

For the full size map, see the Favicon Sizes Guide.

Browser support in 2026

Desktop Chromium, Firefox, and recent Edge builds accept SVG favicons when the MIME type and type attribute are correct. Safari on macOS supports SVG in tabs in current versions, but iOS Safari still relies on PNG for home screen icons and does not use SVG for Add to Home Screen.

ContextSVG faviconFallback needed
Chrome desktop tabYesRecommended ICO or PNG
Firefox desktop tabYesRecommended
Safari macOS tabYesPNG for consistency
Safari iOS tabPartialapple-touch-icon required
iOS home screenNo180×180 PNG
Android home screenNomanifest PNGs
RSS readers / emailRarefavicon.ico
Google Search faviconPNG/ICO preferredKeep ICO at root

The safe rule: ship SVG for sharp desktop tabs, and always declare PNG or ICO icons before or after so nothing falls back to a generic globe.

Recommended HTML pattern with fallbacks

Order matters when multiple rel="icon" tags compete. Put your fallback PNG sizes first, then SVG, or list SVG first with explicit PNG fallbacks - both patterns work if every file exists.

Production-ready example:

<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="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">

Why this stack works:

  1. favicon.ico satisfies legacy crawlers and automatic root requests.
  2. PNG sizes cover Safari edge cases, RSS, and tools that skip SVG.
  3. SVG gives retina desktop tabs a sharp source.
  4. apple-touch-icon covers iOS outside the tab bar.
  5. manifest covers Android install surfaces.

For copy-paste variants and framework notes, see Favicon HTML Link Tags Example and How to Add a Favicon to Your Website.

Designing SVG favicons that survive small sizes

SVG scales mathematically. Human eyes do not. A logo that looks perfect at 512×512 can turn into gray mush at 16×16 when thin strokes collapse.

Design rules for tab-sized SVG

  • Use bold shapes with minimum 2px stroke at 16×16 equivalent
  • Avoid small text; initials only if they fill the viewBox
  • Prefer solid fills over hairline outlines
  • Keep the viewBox square (1:1 aspect ratio)
  • Test at 16×16 and 32×32 in a design tool before export

If your mark relies on fine detail, skip SVG for the tab icon and ship optimized PNGs from a 512×512 master. Blurry PNGs usually mean wrong export sizes, not missing SVG. Read Favicon Looks Blurry? Fix Pixelation for downscaling workflow.

Dark mode and transparent SVG

Browser chrome switches between light and dark themes. A white logo on transparent SVG disappears on light tabs.

Options:

  • Add a subtle circular background in the SVG itself
  • Ship separate PNGs with baked-in contrast
  • Use prefers-color-scheme inside SVG media queries (limited favicon support; do not rely on this alone)

When in doubt, preview both themes. Favicon Check shows declared icons and lets you download each file to inspect contrast at real pixel sizes.

SVG favicon limits and gotchas

No SVG in web app manifest

The web app manifest spec expects PNG (or purpose-tagged PNG) for install icons. You cannot point "icons" entries at SVG for reliable Android install banners. Keep 192×192 and 512×512 PNGs in site.webmanifest. Details in Web App Manifest Icons Explained.

MIME type must be correct

Serve favicon.svg as image/svg+xml. Wrong Content-Type values cause silent fallback to the next icon or a broken tab.

External resources inside SVG

Some SVG exports reference external fonts or images. Favicons load in a restricted context. Embed paths inline. Strip <script> tags. A sanitized, self-contained SVG avoids CSP and security scanner warnings.

sizes="any" on SVG

You may see:

<link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="any">

That is valid for vector icons. Do not use sizes="any" on PNG entries. Match PNG sizes to real pixel dimensions.

Caching after SVG updates

Browsers cache favicons aggressively. After replacing favicon.svg, you may still see the old mark until cache clears. See Favicon Cache Explained for busting strategies.

Step-by-step - add SVG with safe fallbacks

  1. Export a square SVG with simplified geometry from your brand mark.
  2. Generate favicon.ico, 16×16, 32×32, and 180×180 PNGs from the same master art.
  3. Add 192×192 and 512×512 PNGs to your manifest.
  4. Upload all files to the site root or /assets/icons/.
  5. Insert the full link tag set in server-rendered <head>.
  6. Confirm /favicon.ico returns 200 without auth.
  7. Scan the live URL with Favicon Check and verify SVG plus fallbacks are listed.
  8. Hard-refresh or use a private window to confirm the tab icon updated.

If the tab stays blank, walk through Favicon Not Showing in Browser? Fix It before blaming SVG support.

SVG vs PNG vs ICO for favicons

FormatBest forWeakness
SVGRetina desktop tabs, simple logosNo iOS home screen, manifest exclusion
PNGExact pixel control, apple-touch-iconMust export each size
ICOLegacy /favicon.ico requestsHarder to edit, limited transparency story

Most production sites use all three: ICO at root, PNG size ladder, optional SVG for desktop polish.

Common SVG favicon mistakes

SVG only, no PNG or ICO

You get a sharp tab in Chrome and a generic globe in an RSS reader or older tool. Always pair SVG with raster fallbacks.

Complex illustration in 16×16

Detailed SVG paths rasterize to noise. Simplify the mark or drop SVG for tabs.

Wrong path on nested routes

href="favicon.svg" breaks on /blog/post. Use /favicon.svg root-relative paths.

Serving SVG from a CDN with wrong CORS or MIME

Some CDNs default to text/plain or block cross-origin favicon fetches. Test the direct URL in an incognito window.

Expecting SVG to fix a blurry PNG

If your PNGs were upscaled from 16×16, SVG will not rescue manifest or iOS icons. Re-export from a large master. Avoid the mistakes listed in Common Favicon Mistakes That Break Your Brand.

When to skip SVG entirely

Skip SVG if:

  • Your logo is photographic or gradient-heavy
  • Your team cannot maintain inline SVG hygiene
  • Your audience is mostly mobile Safari users who need PNG anyway
  • Compliance requires identical pixels everywhere (some brand guides)

A clean PNG ladder from a 512×512 master is enough for most sites. SVG is an enhancement, not a requirement.

FAQ

Do all browsers support SVG favicons?

Modern desktop browsers widely support SVG tab icons. iOS home screen, Android install icons, and many non-browser clients do not. Always ship PNG and ICO fallbacks.

Should SVG or PNG come first in the HTML?

Either works if all files exist. Many teams list ICO and PNG first, then SVG, so legacy clients pick raster icons immediately.

Can I use SVG in apple-touch-icon?

No. Use a 180×180 PNG for rel="apple-touch-icon". iOS expects a raster home screen icon.

Does Google Search use SVG favicons?

Google's search favicon pipeline historically prefers ICO and PNG. Keep /favicon.ico and PNG sizes even when you ship SVG for tabs.

How do I test SVG favicon support on my site?

Scan your URL with Favicon Check. It lists every declared icon, MIME hints, and manifest entries so you can confirm SVG and fallbacks are detected together.

Why does my SVG favicon look fine locally but not in production?

Check MIME type, path, CDN cache, and whether production HTML matches your local template. View-source on the live URL, not only DevTools Elements.

Can one SVG replace multiple PNG sizes?

For desktop tabs, one SVG can scale. For iOS, Android, manifest, and ICO, you still need separate raster files at documented sizes.

Is inline SVG in HTML a good favicon?

Browsers expect a link tag pointing to a .svg file URL. Inline SVG in the page body is not a substitute for rel="icon".

Bottom line

Use SVG favicons for sharp desktop tabs, but never alone. Pair favicon.svg with favicon.ico, 16×16 and 32×32 PNGs, apple-touch-icon, and manifest icons. Simplify artwork for 16×16 rendering, serve correct MIME types, and validate the live stack with Favicon Check. For sizes and HTML templates, cross-read the Favicon Sizes Guide and Favicon HTML Example.