Favicon size: what Google needs to show your icon

·7 min read

The favicon size Google Search needs is a square image of at least 8x8 pixels, and Google recommends going larger than 48x48, so a 96x96 PNG is the safe pick. Browsers want a 32x32 favicon.ico, iPhones and iPads want a 180x180 apple-touch-icon, and Android and Chrome want 192x192 and 512x512 icons in the web app manifest. Declare them in the <head> of your home page. Google's guide lists BMP, GIF, ICO, PNG, JPEG, PPM and TIFF as supported formats, so an SVG on its own is a risk in search.

Since any square image of 8x8 or more passes the size rule, pixel size is seldom what keeps a favicon out of Google. Look first for a robots.txt rule, a tag missing from the home page, a rectangular logo or a change Google hasn't recrawled yet. The sizes and tags come first below, then the fixes.

Favicon sizes for every surface

An icon shows up in four places, and they don't all read the same file.

Where it shows Size Format How you declare it
Google Search results Square, at least 8x8, larger than 48x48 recommended ICO, PNG, GIF, JPEG, BMP, PPM or TIFF <link rel="icon"> on the home page
Browser tabs and bookmarks 32x32, plus 16x16 inside the .ico if the small one blurs ICO or PNG, SVG optional <link rel="icon"> and /favicon.ico at the root
iPhone and iPad home screen 180x180 PNG <link rel="apple-touch-icon">
Installed web app on Android and Chrome 192x192 and 512x512 PNG icons in the web app manifest

If you learned the Google rule a while ago, it has moved. Until October 2024 the guide said the icon must be a multiple of 48px square. Now 8x8 is the floor and "larger than 48x48px" is a recommendation. Multiples of 48 such as 96x96 or 144x144 still satisfy both versions, which is why I default to 96.

Put these in the <head> of every page, and check that the home page has them, because the home page is the only place Google reads a favicon.

<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/favicon-96x96.png" type="image/png" sizes="96x96">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">

The href can be relative or absolute, and Google's guide says the file can sit on a CDN or another host. Google also accepts rel="shortcut icon", but MDN marks the shortcut keyword as non-conforming, so write plain icon.

When a page lists several icons, browsers choose by type and sizes, and among equally good matches they take the last one. Google documents no tiebreak at all. It supports one favicon per site, so make every rel="icon" point at the same artwork.

Do you still need favicon.ico?

Keep one at the root. When a page declares no icon, the HTML standard lets browsers request /favicon.ico on their own and use whatever comes back. Google's guide asks for a <link> tag on the home page instead, so treat the root file as a fallback for browsers, not as your search favicon.

Should you use an SVG favicon?

Only next to a PNG or ICO. An SVG stays sharp at any size and can switch colors for dark mode with a media query inside the file. But on August 28, 2026 Google added an explicit list of supported favicon formats to its guide, and SVG isn't on it. Google said the formats it supports did not change, only the documentation. Either way, a theme that ships nothing but favicon.svg should add a raster icon today.

Apple touch icon size

One 180x180 PNG covers every iPhone and iPad. Apple's Safari documentation shows separate 152, 167 and 180 pixel icons, but iOS uses the smallest icon larger than the size it needs, or the largest you have when none is larger. Shipping only 180x180 means iOS scales down and never up.

Without a link tag, iOS looks in the site root for a file named apple-touch-icon.png, so that filename is worth keeping. Give the icon a solid background. Google's favicon guide also accepts rel="apple-touch-icon" as a favicon source for search.

Web app manifest icons: 192 and 512

Chromium browsers, including Chrome and Edge, need a 192px and a 512px icon in the manifest's icons before they treat your site as an installable app. They also need a name or short_name, a start_url and a display mode.

{
  "name": "Example Store",
  "short_name": "Example",
  "start_url": "/",
  "display": "standalone",
  "icons": [
    { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
    { "src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
  ]
}

Android launchers crop icons to their own shape. The maskable entry tells the browser the logo sits inside a safe zone, so the crop doesn't slice through it. Make it a separate file with extra padding rather than reusing the plain 512.

Google's favicon guide never mentions the manifest. If you don't want your site installed as an app, this file changes nothing in search and you can skip it.

Google's favicon requirements for search results

Google shows your favicon only when the home page declares it, Googlebot can crawl the page, Googlebot-Image can crawl the file, and the image is square and in a supported format. The rules in Google's guide, in full:

  • One favicon per hostname. example.com and shop.example.com each get one, declared on their own home page. A subdirectory such as example.com/blog can't have its own and shares the root's.
  • Neither the home page nor the icon file may be blocked from crawling.
  • Square, 1:1, at least 8x8 pixels, ideally larger than 48x48.
  • BMP, GIF, ICO, PNG, JPEG, PPM or TIFF.
  • A URL that doesn't change often.
  • An image that represents your brand.
  • Nothing inappropriate. Google replaces pornography or hate symbols with a default icon.

Meeting all of that still doesn't guarantee an icon. Google says so in the guide.

The name printed beside the favicon comes from a separate system. Google reads it mainly from WebSite structured data on the same home page, with og:site_name and the <title> as backups.

Why your favicon is not showing in Google

When Google has no usable icon for a site, the result shows a plain globe. Work through these causes before you touch the image itself.

robots.txt blocks the icon or the home page

Google's crawler documentation says rules for Googlebot-Image apply everywhere Search shows images, logos and favicons. So both of these kill the favicon:

# Added years ago to stay out of Google Images
User-agent: Googlebot-Image
Disallow: /

# Old WordPress advice. Site icons live in /wp-content/uploads/
User-agent: *
Disallow: /wp-content/

Test the exact icon path for the Googlebot-Image user agent with our robots.txt checker. On WordPress, our robots.txt for WordPress guide shows what to keep and where to edit it.

The icon sits on a host Google can't crawl

A CDN-hosted favicon is allowed, but then that host's robots.txt and bot protection decide whether Googlebot-Image gets the file. Subdomains count as separate sites, too. A store on shop.example.com run by a hosted platform shows whatever icon that subdomain's home page declares, which may be the platform's default.

The tag isn't on the home page

Page builders and custom landing templates sometimes drop the theme's <head> output. The blog has the icon, the home page doesn't, and Google only reads the home page. View source on / itself.

The image isn't square

Teams reuse the horizontal logo. A 200x60 file fails Google's 1:1 rule even though the browser tab still shows something. Crop to the symbol.

You changed it recently

Google says recrawling and processing can take several days to several weeks, and the old icon stays until then. Request indexing of the home page with the URL Inspection tool in Search Console to start the clock. Don't rename the file every few days to force it, because Google asks for a stable URL.

Several icons disagree

A CMS default and your own icon are both declared, or a years-old favicon.ico still sits at the root. Google picks one and doesn't say how, which is how the wrong icon ends up in results. Replace every copy.

How to get Google to update your favicon

Fix the files first, then ask Google to look again.

  1. Put the corrected <link rel="icon"> tag on the home page and point it at a square PNG or ICO larger than 48x48.

  2. Confirm the file returns 200 with an image content type to Google's user agent string:

    curl -s -o /dev/null -w "%{http_code} %{content_type}\n" \
      -A "Googlebot-Image/1.0" https://www.example.com/favicon-96x96.png
  3. Check robots.txt allows Googlebot on / and Googlebot-Image on the icon path.

  4. Request indexing of the home page in Search Console's URL Inspection tool.

  5. Wait days to weeks before changing anything else.

A 200 to a spoofed user agent proves your server answers it. It doesn't prove a firewall that filters by IP address lets Google through.

Check your favicon against Google's rules

Our favicon checker reads the home page of whatever URL you enter, lists every icon, apple-touch-icon and manifest link, and downloads the icon Google is most likely to use, preferring ICO and PNG over formats Google doesn't list and falling back to /favicon.ico when nothing is declared. It reads the pixel size from the file itself, including the largest image inside an .ico. It flags a missing or undeclared icon, a file that doesn't load or isn't an image, a format outside Google's list such as SVG, a non-square icon, anything under 8x8 and anything under 48x48. It also checks whether robots.txt blocks Googlebot from the home page or Googlebot-Image from an icon on the same host.

It covers the rest of the table as well. It flags a missing, broken, undersized or non-square apple-touch-icon and a manifest that doesn't load or lacks 192 and 512 pixel icons. It reads the site name signals too, flagging a home page without WebSite structured data, a missing name, a url that isn't the home page, conflicting names and an og:site_name that doesn't match. When a rate limit or bot check answers instead of a file, the report marks that file unchecked rather than broken.

It doesn't generate icon files and can't make Google refresh a cached favicon. A run costs 5 credits.

Keep reading