favicon reference

Which file each browser actually asks for

Most favicon advice is a recollection of what some generator produced in about 2014. This page is not that. Every row below is either a vendor’s own document or a measurement taken in this repository, and it says which — a row that could not be sourced was not written.

Vendor documents read 2026-08-20. Measurements taken on the same day, and reproducible from this repository.

what is actually requested

What a browser asks for on its own

These four rows are the ones that decide what a site really needs. Each is a vendor statement rather than a convention, which is why each carries a link.

  • Safari on iOS, with no link tag in the page

    It looks in the site root for apple-touch-icon-<size>.png, then for apple-touch-icon.png. Those two names are the whole search order — apple-icon.png is not in it.

    Source Apple — Configuring Web Applications (archive) · 2026-08-20

  • The -precomposed suffix

    It has done nothing since iOS 7: “Safari on iOS 7 doesn’t add effects to icons.” A -precomposed file today is a byte cost with no behaviour behind it.

    Source Apple — Configuring Web Applications (archive) · 2026-08-20

  • Chrome adding a site to an Android home screen

    It requests whatever the manifest’s icons[].src names. The specification mandates no file name at all, so there is no such thing as a “correct” Android icon filename — only one your manifest agrees with.

    Source W3C — Web Application Manifest · 2026-08-20

  • browserconfig.xml and the msapplication-* tiles

    The desktop application for Internet Explorer 11 went out of support on 15 June 2022. Nothing in support today reads these files.

    Source Microsoft Lifecycle — Internet Explorer 11 end of support · 2026-08-20

  • Windows 8.1, the other consumer of those tiles

    Out of support on 10 January 2023. That is the second of the two dates behind “the Windows tiles are retired”, and it is why our checker reports a declared tile file as a note rather than a failure: a broken tile is real and worth knowing, and it costs almost nobody anything.

    Source Microsoft Lifecycle — Windows 8.1 · 2026-08-20

names with no vendor behind them

Files that came from a generator rather than from a browser

These names are everywhere, and nothing asks for them. Each row was found by walking this repository’s own generated set from head-snippet.html and following a file’s references only once that file had been reached — a flat “is this name mentioned anywhere” check passes a set whose files nobody can reach.

  • apple-icon.png and apple-icon-precomposed.png

    Nothing links them and Apple’s root search order does not contain them, so they are reachable only from a page that already declares them by hand. The 192×192 size is the tell: Apple’s own examples use 152, 167 and 180.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

  • android-icon-36x36 through android-icon-192x192 (six files)

    Only manifest.json names them, and a head snippet can link exactly one manifest. Ours resolves to site.webmanifest, so manifest.json is itself unreachable and the six files under it cannot be found by anything.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

  • android-chrome-192x192.png and android-chrome-512x512.png

    No output producer in this repository references them — the constant appears only where the names are defined. They are bytes with no document pointing at them, which is exactly the failure the walk above was written to find.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

how many files

Why the honest default is 13, not 38

Counted by running the generator and reading what came out, not by adding up group lists. The old default produced 38 files; the current one produces 13 and warns about nothing, because there is nothing left to warn about.

  • The three presets

    modern produces 13 files, legacy 33 and full 38. Every number was measured by running the generator rather than by counting a configuration.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

  • What full carries that modern does not

    Eleven of full’s 38 files cannot be reached from the head snippet it ships beside. modern’s count of unreachable files is zero, which is the difference the number 13 is actually describing.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

  • What a competitor produces

    The competitor output kept in this repository for comparison is 7 files. The old 38-file default was five times that; 13 is the set current browsers ask for.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

  • Why the extra files are still offered

    Nothing was deleted, because our own checker catches sites declaring ms-icon-144x144.png and returning 404 for it — and the only tool that can produce that file is this one. Somebody arriving from an older generator has two ways out, and we can supply both.

    Source Measured in this repository — docs/v2/26 — default set · 2026-08-20

A row with no link was measured here rather than read somewhere: the document named beside it records how, and the code that produced it is in this repository.

The date that is not on this page

The per-device Apple sizes — 57 through 144 — have no iOS range beside them anywhere here. Apple’s archived document shows only 152, 167 and 180 in its examples, and no Apple source could be found for when the older family stopped being read. So no date is printed. That gap is the whole rule of this page in one line: a date with no source behind it is a guess wearing a citation’s clothes, and this table would not be worth reading if it contained one.

Two things to do with this

The generator produces the 13-file set these rows describe, in your browser, and names what each file is for. The checker reads a live page and tells you which of them it is actually declaring — including the ones it declares and does not serve.