Correct MIME Type for favicon.ico?
Solution 1
When you're serving an .ico file to be used as a favicon, it doesn't matter. All major browsers recognize both mime types correctly. So you could put:
<!-- IE -->
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<!-- other browsers -->
<link rel="icon" type="image/x-icon" href="favicon.ico" />
or the same with image/vnd.microsoft.icon
, and it will work with all browsers.
Note: There is no IANA specification for the MIME-type image/x-icon
, so it does appear that it is a little more unofficial than image/vnd.microsoft.icon
.
The only case in which there is a difference is if you were trying to use an .ico file in an <img>
tag (which is pretty unusual).
Based on previous testing, some browsers would only display .ico files as images when they were served with the MIME-type image/x-icon
. More recent tests show: Chromium, Firefox and Edge are fine with both content types, IE11 is not. If you can, just avoid using ico
files as images, use png
.
Solution 2
I think the root for this confusion is well explained in this wikipedia article.
While the IANA-registered MIME type for ICO files is image/vnd.microsoft.icon, it was submitted to IANA in 2003 by a third party and is not recognised by Microsoft software, which uses image/x-icon instead.
If even the inventor of the ICO format does not use the official MIME type, I will use image/x-icon
, too.
Solution 3
I have noticed that when using type="image/vnd.microsoft.icon"
, the favicon fails to appear when the browser is not connected to the internet.
But type="image/x-icon"
works whether the browser can connect to the internet, or not.
When developing, at times I am not connected to the internet.
Related videos on Youtube
Comments
-
Chuck Le Butt over 2 years
According to the Internet Assigned Numbers Authority (IANA), all .ico file falls under the MIME type
image/vnd.microsoft.icon
. (Source)E.g.
<link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />
However, savvy internet guru, Paul Irish, claims this is wrong, and that it would actually be
image/x-icon
. (Source)E.g.
<link rel="icon" type="image/x-icon" href="favicon.ico" />
I know you can get away with not including a "type" for .ico files, but if you were going to include one, which should it be? Are there actually any problems with serving it as official IANA type?
-
Dan H about 6 yearsNote of caution:
favicon.ico
files might not be true ".ico" files. My corporate site uses a png (named "favicon.ico") and serves it with the "image/png" type. Serving it with either of the ".ico" types mentioned here were BOTH wrong, as it caused the browser to misinterpret!
-
-
mata about 11 yearsI didn't choose anything anywhere, I tried to explain the two usecases: 1 - used as favicon (doesn't matter which mime type), 2 - used as an img within webpage (IE only displays it correctly with mimetype image/x-icon).
-
Chuck Le Butt about 11 yearsYou say, you can use .ico files in
<img src=''>
provided they are served as image/x-image by the webserver. You then say if you're going to use .ico files as images in HTML pages you should set the MIME type to image/x-icon. -
Chuck Le Butt about 11 yearsGreat. At least it makes sense now! I'm not really interested in serving .ico files as images within a website, though. The question is specifically about using .ico file as favicons. If you rephrase your answer, that would be much more helpful. Thanks.
-
mjaggard over 10 yearsAccording to wikipedia, image/x-icon was just made up by Microsoft, image/vnd.microsoft.icon is registered with IANA (but not registered by Microsoft themselves).
-
NateS over 10 yearsFWIW, Google uses image/x-icon for their favicon.
-
Chuck Le Butt over 9 yearsFinally an answer! However it's still the IANA-registered MIME type... even if Microsoft themselves don't use it. Weird.
-
Anton Semenichenko almost 6 yearsThank you! Probably the best answer
-
WebSmithery almost 3 yearsFrom a very quick test on my local server, it seems that Apache uses
image/x-icon
by default when serving ICO files.