icons.missing
Declare an icon — the tab, the bookmark and the share sheet all read one
warningper pageguideline
Why it matters
Nothing in a specification requires an icon, which is why nothing complains and every consumer improvises. The browser falls back to /favicon.ico at the root; a feed reader or a link unfurler often falls back to nothing at all, and the bookmark is a grey square among fifty.
What the finding looks like
The message goflag prints, with example values substituted.
warn icons.missing Page declares no icon: no <link rel="icon">, and no icons from a manifest. Consumers fall back to /favicon.ico if the site happens to serve one.
Let the file convention declare it
Written for the Next.js App Router. The finding is correct on any stack; only the remedy assumes one.
// app/icon.svg (or icon.png) — Next emits the <link rel="icon"> itself.
// app/apple-icon.png likewise emits rel="apple-touch-icon".
// A /favicon.ico at the root is a separate matter: see icons.ico.missing.Says who?
This rule is guideline, and it cites the documents below. Nothing here is goflag’s opinion of what a good page looks like — if you disagree with a finding, this is what you are disagreeing with.
- HTML Living Standard — link types
WHATWG · normative
- MDN — rel attribute values
MDN / Mozilla · guideline