What is a favicon and which icons does a site need?
A favicon is the small image a browser shows in tabs, bookmarks and history, declared with link rel="icon" in the page head; without one, browsers request /favicon.ico at the site root. Other surfaces need their own icons: iOS Home Screen shortcuts read apple-touch-icon (180×180), Android and installed apps read 192 and 512 pixel icons from the web app manifest, and Google Search shows a square favicon declared on the home page.
How to use Favicon Checker
- Enter the URL of the page to check — usually the home page, which is where Google Search reads the favicon.
- Leave "Request the icon files" ticked to check that each file answers, or untick it to read the HTML links only.
- Press Check favicons and read the Icons table: each declared icon with its sizes, declared type, status, served type and size.
- Work through the Findings from problems to notes, then check again after deploying the fixes.
Favicon Checker features
- Reads every icon link a page declares — rel="icon" and "shortcut icon", apple-touch-icon (and the obsolete -precomposed form) and Safari's mask-icon — with its sizes and type, plus the manifest link and theme-color
- Requests each icon file, and /favicon.ico at the site root, with a HEAD request from the Mutqan server (GET with the body discarded when HEAD is refused), up to eight URLs
- Shows each file's HTTP status, the Content-Type it is really served with and its size, so an error page answering 200 or an icon served as text/html is caught
- Explains what is missing for each place an icon appears: browser tabs and bookmarks, high-density screens, the iOS Home Screen, Android shortcuts and installed apps
- Flags declared sizes that are not WIDTHxHEIGHT, non-square icons, duplicate sizes, declared types that disagree with the file extension or the served type, and icons loaded over http on an https page
- Never downloads or displays an image: the check works on headers only, so nothing from the site is rendered in your browser
Inputs and outputs
Inputs
- Page URL — the public page whose icon links you want to check; a bare host name gets https:// added.
- Request the icon files — on by default; when off, only the links in the HTML are read and no file is requested.
Outputs
- Summary — icons declared, files that answered with a 2xx status, whether an Apple touch icon and an SVG icon exist, the largest declared size and whether a manifest is linked.
- Icons — each icon's link type, sizes, declared type, URL, HTTP status, served Content-Type and size, plus /favicon.ico at the site root; downloadable as CSV.
- Findings — problems, warnings, notes and confirmations, worst first; downloadable as CSV.
- Page — the final page URL and status, theme-color, manifest URL and whether a Safari mask-icon is declared.
Favicon Checker example
An Apple icon that 404s and a favicon.ico that is really an HTML page
Input:
Page URL: https://www.example.com/ · Request the icon files: onOutput:
Icons declared 2 · Files that answered 2 / 3 · Apple touch icon Yes · SVG icon No · Largest declared size 152×152 · Manifest Linked
icon 32x32 image/png → 200, image/png, 1210 bytes
apple-touch-icon 152x152 → 404, text/html
/favicon.ico at the site root → 200, text/html, 5120 bytes
Problem: The icon https://www.example.com/apple-touch-icon.png answers HTTP 404.
Warning: The largest apple-touch-icon declares 152×152 pixels; iOS uses 180×180.
Warning: The icon https://www.example.com/favicon.ico is served as text/html, not as an image.How to read the Favicon Checker results
A Problem means an icon will not show: the declared file answers 4xx or 5xx, cannot be reached, or the page has no icon link and /favicon.ico fails too.
A file "served as text/html" with status 200 is usually an error page or the site's app shell answering for a missing file. Browsers cannot use it as an icon, even though the status looks fine.
Notes about SVG icons, apple-touch-icon and the manifest describe coverage, not errors: a site with one good 32×32 PNG works in desktop tabs but looks poor on phones and high-density screens.
Sizes are what the page declares, not measured from the image: the checker never downloads the files, so an icon declared 180x180 that is really 64×64 is not detected.
When to use Favicon Checker
- After a rebrand, confirm that every declared icon and /favicon.ico point to files that exist and are served as images.
- Find out why the favicon does not show in Google Search results or in a browser tab, starting from the status and Content-Type of each file.
- Before launching a site or a progressive web app, check that iOS, Android and high-density screens each have a suitable icon.
- Review a CMS or theme change: icon links often disappear or point to a theme folder that no longer exists.
Troubleshooting
- Every icon answers 403: some CDNs or firewalls refuse HEAD requests or automated clients for static files. Browsers may still get the file; check the CDN rules if real visitors also see no icon.
- The icon links point to a path that answers the home page: a relative href such as "favicon.png" resolves against the current page's folder. Use a root-relative path such as /favicon.png.
- The browser still shows an old icon after a fix: browsers cache favicons aggressively. Change the file name (or add a version query) when you replace an icon.
- The page itself is refused with "This address cannot be reached from the Mutqan server": the host resolves to a private or reserved address. Only public sites can be checked.
- The icon files could not be requested and the warning mentions the request limit: icon files have their own allowance of 10 requests a minute without signing in (30 when signed in), one per URL, so a check of eight icons uses eight of the ten; the page itself uses one of the 10 page fetches shared with other tools. Wait a minute, or untick "Request the icon files" to read the links only.
Frequently asked questions about Favicon Checker
Which favicon sizes does a site need?
A scalable SVG icon, or PNG icons of at least 32×32 for tabs on high-density screens, a 180×180 apple-touch-icon for iOS and iPadOS, and 192×192 and 512×512 icons in a web app manifest for Android and installed apps. Google Search asks for a square icon of at least 8×8 pixels and recommends larger than 48×48.
Do I still need /favicon.ico?
Browsers request /favicon.ico at the site root only when the page declares no rel="icon" link, but feed readers and other tools still look for it. The checker requests it alongside the declared icons and tells you whether it exists.
Why does my favicon not show although the file exists?
Common causes are a file served with an HTML or text Content-Type (often an error page answering 200), an icon on http:// referenced from an https:// page, a wrong path relative to the page, or an old icon kept in the browser cache. The icon table shows the status and Content-Type each file really answers with.
Why does the checker not show the icons themselves?
The files are checked with HEAD requests from the Mutqan server, which return the headers only. Nothing fetched from the site is rendered in your browser, so the page never loads remote images on your behalf.
How many favicon checks can I run in a minute?
Each check reads the page once, which is one of the 10 page fetches allowed a minute without signing in (30 when signed in), shared with other tools; a redirect followed counts as one more. It then requests up to eight icon URLs, each one of the 10 icon-file requests allowed a minute (30 signed in). A page with many icons can therefore use most of a minute's allowance in one check; when it runs out, the page result is still shown, with a warning that the files could not be requested.
Technical notes
The HTML Standard defines the icon link type: a page may list several icons with sizes and type hints, and the browser picks the most suitable; when none is declared, browsers request /favicon.ico at the root of the origin. Apple's Safari documentation defines apple-touch-icon for Home Screen shortcuts, and Google Search uses a square favicon of at least 8×8 pixels declared on the home page, recommending more than 48×48.
The page is fetched with POST /api/v1/internet/http/fetch (DNS over HTTPS first, private addresses refused, up to five redirects) and parsed as text in the browser. The icon URLs go to POST /api/v1/internet/http/assets, which sends HEAD (GET when the server answers 405 or 501, the body cancelled unread) and returns status, Content-Type and Content-Length for each; redirects of an icon are reported, not followed.
Sizes are read as the WIDTHxHEIGHT tokens or "any" the HTML Standard allows; the declared type is compared with the file extension and with the served media type, treating image/x-icon and image/vnd.microsoft.icon as the same ICO format.
Limitations and methodology
Only the HEAD answers of the icon files are checked; the images are never downloaded, so their real pixel size, transparency and visual quality are not verified.
At most eight icon URLs are requested per check; the icon table still lists every declared icon.
The page and its icons are requested once from the Mutqan server on Cloudflare's network; a site that serves different HTML by device or country may declare other icons for some visitors.
Security and privacy
The Mutqan server receives the page URL and up to eight icon URLs taken from that page, requests them with fixed headers and none of your cookies, and stores nothing. No icon is downloaded into or displayed in your browser.
References
- HTML attribute: rel — MDNThe link types of the rel attribute, among them icon (several icons may be listed; the browser picks the most appropriate by media, type and sizes) and manifest.
- Define Website Favicon for Search ResultsGoogle Search's favicon rules: a link rel="icon" on the home page, a square image of at least 8×8 pixels (larger than 48×48 recommended), a stable URL crawlable by Googlebot-Image, and the supported file formats.
- Configuring Web Applications (Safari Web Content Guide)Apple's guide to Home Screen icons on iOS: link rel="apple-touch-icon" with a sizes attribute per device resolution, or an apple-touch-icon.png file at the site root for the whole site.