AO

2026-10-09 · favicons · google · mcp · claude

Google's copy of an SVG favicon has a white background; PNG and ICO keep transparency

Google's favicon service, which Claude's apps use for connector icons, returned 7 of 7 transparent SVG-only favicons with no transparency left (white behind), and kept it in 8 of 8 PNG or ICO favicons. Measured by AO, 2026-10-09.

When you add a custom MCP connector to Claude, the icon in its tile is not read from your server. Anthropic's own docs say the apps load connector icons from Google's favicon service. AO's favicon was a thin black mark on a transparent SVG. In claude.ai's dark Connectors tile it showed inside a white square. So we asked what Google does with transparency.

What we measured, 2026-10-09. We fetched Google's copy of the favicon of 25 sites at size 64, then counted the transparent pixels with a small PNG reader. We also read each site's own icon files.

  • The icon is only an SVG, 7 sites: no copy had a single transparent pixel. Six were opaque PNGs with white where the SVG is see-through, and one was a JPEG.
  • The icon is a PNG or ICO with transparency, 8 sites: every copy kept it. For nodejs.org the pixel counts match its own file exactly.
  • Both, 5 sites: 3 kept transparency and 2 lost it. We could not tell which file Google picked.
  • The rest, 5 sites, are not Google filling anything in. stackoverflow.com and mozilla.org have opaque icons of their own. wikipedia.org and anthropic.com kept transparency at sizes 16 and 32 and came back opaque from 64 up, and those larger copies match their own opaque apple-touch-icon pixel for pixel at the corner and the centre. tailwindcss.com's apple-touch-icon is opaque white too.

Google's favicon guidelines do not list SVG as a format at all, and say nothing about transparency. Anthropic's pages say nothing about it either.

What this means for a connector icon. If your site's only favicon is a transparent SVG, expect Claude to show it on white. Either design for that, or give Google a PNG or ICO with real transparency. AO took the first way: its favicon is now a full square of the tile's own grey, with the mark in a white disk, so a white background has nothing left to fill. (Whether a PNG would fix the tile is known and may work, but no proof: AO has not shipped one.)

Google's copy is slow to change. Googlebot-Image last fetched AO's favicon two days before the new icon went live. An hour and a half after it went live, Google still served the old copy. Google's guidelines warn that recrawling takes "several days to several weeks".

How to check your own site:

curl -sL -o g.png "https://t1.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://example.com&size=64"
node -e "const b=require('fs').readFileSync('g.png');console.log(b.subarray(1,4).toString()==='PNG'?'PNG, colour type '+b[25]+', tRNS '+b.includes('tRNS'):'not a PNG: '+b.subarray(0,3).toString('hex'))"

Colour type 6, or a tRNS chunk, means the copy can hold transparency. Colour type 2 or 3 with no tRNS means every pixel is opaque. ffd8ff is a JPEG. https://www.google.com/s2/favicons?domain=example.com&sz=64 redirects to the same file.

Not measured. Whether claude.ai reads the icons an MCP server declares in serverInfo.icons (AO's server now declares one; an open community issue, number 152 above, says claude.ai does not read them). Why Google flattens SVGs: we only see the result. Sites outside these 25.

The numbers

  • Six sites whose only icon is an SVG with nothing behind the mark (abstractobjective.dev, astro.build, vuejs.org, esbuild.github.io, htmx.org, lit.dev), size 64: every copy was a PNG with no transparent pixel, white where the SVG is see-through (measured by AO, 2026-10-09)
  • AO's own copy: 4,096 of 4,096 pixels opaque at size 64, and white corners at every size tried: 16, 32, 64, 96, 128 and 256 (measured by AO, 2026-10-09)
  • vite.dev, whose only icon is also an SVG: Google's copy is a 48 by 46 JPEG, a format that cannot hold transparency (measured by AO, 2026-10-09)
  • Eight sites whose icon is a PNG or ICO with transparent pixels (nodejs.org, python.org, caddyserver.com, svelte.dev, rollupjs.org, pnpm.io, hono.dev, nuxt.com): every copy kept them (measured by AO, 2026-10-09)
  • nodejs.org's copy has the same 626 opaque, 292 transparent and 106 partly transparent pixels as its own favicon.png (measured by AO, 2026-10-09)
  • Sites that offer both an SVG and a PNG or ICO: bun.sh, deno.com and vitest.dev kept transparency; github.com and biomejs.dev did not. Which of its files Google used is not known (measured by AO, 2026-10-09)
  • wikipedia.org and anthropic.com: copies with transparency at sizes 16 and 32, opaque from 64 up, with the corner and centre colours of their own opaque apple-touch-icon (measured by AO, 2026-10-09)
  • In claude.ai's Connectors list, AO's thin black mark showed inside a white square on the dark tile (screenshot from Ofir, 2026-10-09)
  • Anthropic's docs list www.google.com and t0.gstatic.com as "Icons for connectors and services that the app loads from Google's favicon service" (Claude Science network requirements, read 2026-10-09); the Claude Desktop egress list says "Connector favicons" for www.google.com and *.gstatic.com
  • Google's favicon guidelines list the formats "BMP, GIF, ICO, PNG, JPEG, PPM, and TIFF", not SVG, and say nothing about transparency (Google Search Central, read 2026-10-09)
  • AO's new opaque icon went live 2026-10-09 13:28 UTC; Googlebot-Image last fetched AO's favicon on 2026-10-07 at 03:52 UTC, and at 14:57 UTC on 2026-10-09 Google still served the old copy (AO's server log)
stored on your device — like everything here

← All knowledge · machine version (.md)