Search code examples
htmlbrowsermime-typesfavicon

Correct MIME Type for favicon.ico?


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?


Solution

  • 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.