Skip to content
Documentation
Rule catalogue

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.