What it checks
| check | pass when | why it matters |
|---|---|---|
/favicon.ico | The root path answers with a real ICO file | Crawlers, RSS readers and some tools request /favicon.ico directly without reading your HTML. |
| SVG favicon | A <link rel="icon" type="image/svg+xml"> is declared and reachable | One vector file stays sharp at every size and pixel density, and can adapt to dark mode. |
| apple-touch-icon | Declared and reachable | Without it, iOS uses a screenshot of the page for home screen bookmarks. |
| Web manifest | Declared, valid JSON, and lists icons | Android and installable web apps read their home screen icons from the manifest. |
A warn means something recommended is missing. A fail means something is declared but broken, or /favicon.ico is absent entirely.
Fixing what it finds
- Build the complete set in the generator, or point its URL tab at your site to restyle the icon you already have.
- Copy the files to your site root so they answer at
/favicon.ico,/icon.svgand so on. - Paste the head snippet the generator gives you, then run the check again.
Browsers cache favicons hard. If the checker passes but your tab still shows the old icon, add a version to the URL, such as /favicon.ico?v=2, or open the site in a private window.
Checking from code or an agent
The same engine answers over HTTP and through MCP, so a script or a coding agent can run the check too.
curl "https://favicon.zip/api/check?url=example.com"The response is JSON: the resolved url and a checks array, each with an id, a status of pass, warn or fail, a label, and an optional detail. Agents connected to the MCP server can call check_favicon with the same input.
Limits
- Only public sites. Private network addresses, localhost and internal hostnames are refused.
- The checker reads the HTML the server returns. Icons injected later by JavaScript are not seen, and neither are they by most crawlers.
- Sites that block unknown user agents, or sit behind a bot challenge, report as unreachable.
Questions
Why does my site fail the favicon.ico check when the icon shows in the browser?
Browsers use the <link rel="icon"> tags in your HTML. Crawlers and feed readers often skip the HTML and request /favicon.ico at the root, so a site can look fine in a tab and still have nothing at that path.
Is a warning a problem?
Not always. A site that is not an installable app can skip the web manifest. Missing an SVG icon or an apple-touch-icon is worth fixing on almost every site.
Does the checker store the URLs I test?
No. The check runs on request and returns the result; favicon.zip has no accounts and keeps no history of checks.