Missing favicon in Svelte
With no <link rel="icon">, browsers request /favicon.ico on every page load and get a 404, and your tab shows a generic blank icon. It reads as unfinished — a real product has a recognisable tab icon. AI-generated apps almost never include one because it is an asset, not code.
Framework fixes
Symptoms
How VibeCheck catches it
In your widget · Problems
Missing favicon
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "web-essentials", issue: "Missing favicon", threshold: "No <link rel="icon"> or <link rel="shortcut icon"> in the document head" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix for Svelte
Place the icon in static/ and link it in app.html.
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />Steps
- Create or export an icon (SVG preferred, plus a 180×180 PNG for iOS)
- Place it in your public/static directory
- Reference it with
<link rel="icon">in<head>
FAQ
- Do I still need a
favicon.ico? - A single SVG favicon works in all modern browsers. Keep a
favicon.icoonly for legacy support; some browsers and crawlers still probe/favicon.icoby convention. - What size should the favicon be?
- An SVG scales to any size. For raster fallbacks, ship a 32×32 PNG for tabs and a 180×180
apple-touch-iconfor iOS home-screen bookmarks.