The site has no browser-tab icon
The homepage declares no icon and /favicon.ico is not served, so browsers fall back to a blank placeholder in the tab, in bookmarks, in history and on a phone home screen.
Why it matters
The homepage declares no icon and /favicon.ico is not served, so browsers fall back to a blank placeholder in the tab, in bookmarks, in history and on a phone home screen. It is cosmetic, and it is the most visible cosmetic signal there is: a missing icon is what a site looks like before it is finished, and it sits beside every other tab a visitor has open. Search engines also show it next to your result on mobile.
How ShipReady detects it
Launch signals that belong to the ORIGIN: whether unknown routes return a real 404, whether robots.txt and sitemap.xml exist, and whether the site has a browser-tab icon. All are single facts about the deployment. Re-probing them per page would issue the same requests once per crawled page to re-learn the same answers. The favicon probe is CONDITIONAL: it is only sent when the homepage declares no icon <link> at all, because a declared icon already answers the question and browsers only fall back to /favicon.ico when nothing is declared. On a site with an icon this check costs nothing extra.
Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.10.0.
How to fix it
This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.
Your site has no browser-tab icon: the homepage declares no `<link rel="icon">` and `/favicon.ico` is not served. Browsers show a blank placeholder in the tab, in bookmarks, in history and on a phone home screen.
THE ONE-FILE FIX. Put a `favicon.ico` at your web root and browsers will find it with no markup at all. That alone closes this.
THE MODERN SET, if you want it to look right everywhere, is smaller than most guides claim — three files and three tags:
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png"> <!-- 180x180 -->
The SVG scales to every size and can carry a `prefers-color-scheme` media query so the icon stays visible in both light and dark browser themes. Apple ignores SVG, which is why the PNG is separate.
IF YOU ARE ON A FRAMEWORK, use its convention instead of hand-writing the tags: drop `favicon.ico`, `icon.svg` and `apple-icon.png` into `app/` in the Next.js App Router, or `public/` in Vite, Astro and SvelteKit, and the tags are generated for you.
CHECK IT AFTER DEPLOYING, not locally — browsers cache favicons aggressively and a stale one is the usual reason a fix looks like it did not work. Open the URL in a private window, or request `/favicon.ico` directly.Frequently asked questions
- What does "The site has no browser-tab icon" mean?
- The homepage declares no icon and /favicon.ico is not served, so browsers fall back to a blank placeholder in the tab, in bookmarks, in history and on a phone home screen.
- How serious is it?
- ShipReady rates this low. Worth fixing. Small individually, and they accumulate.
- How do I fix it?
- Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
- Can I check my own site?
- Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check. The free report lists every issue it finds and shows full evidence and a fix prompt for the critical and high-severity ones; medium and low findings are counted and unlock on Pro.
Related checks
Run this check on your site
ShipReady checks this and 193 other things across up to ten pages of your site, with an AI-ready fix for each. Free, no signup.