What favicon dimensions, file formats and meta/link tags should be used as of 2020? This includes apple icon, windows, android and other devices people use today.
I use Opera and I can see it supports svg format. Is it the best solution to use svg nowadays? Is there any option "one file fits all"?
I've been browsing many websites and checked different "favicon generators". All of them are years old and work mostly with png files.
For example: What code should be used for ico and svg?
<link rel="icon" href="favicon.ico" type="image/ico">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
or should dimensions be specified if ico contains more sizes? I didn't find one good answer.
<link rel="icon" sizes="16x16 24x24 32x32 48x48 64x64" href="favicon.ico">
Please provide dimensions, file formats and meta/link tags of what favicons should be used.
Disclaimer: I'm the author of RealFaviconGenerator, which I expect to be up-to-date (mostly, see below). So don't be surprised if this answer matches what RFG generates.
There is no "one size fits all" icon. You can't create a single SVG icon and expect it to work everywhere.
From a technical point of view, a single SVG icon would be a good thing. But from a UI and UX point of view, this is not a desirable outcome. Compare iOS and Android. On iOS, all home screen icons are squares with rounded corners (iOS fills transparent regions of Touch icons with black). On Android, home screen icons often use non-square shapes and transparency (including Google app icons). Submit a single touch icon and Android Chrome will use it. But you won't be able to match Android icon guidelines, whereas a dedicated icon could.
So I advice to deliberately avoid using a single icon. Rather target each platform individually, when possible (this is not always the case).
iOS Safari expects a touch icon. As of today, this is a 180x180 PNG image. This image should not use transparency and its corners will be automatically rounded when added to home screen. Declared with:
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
Over the years, this icon has become the "default high resolution icon" for many browsers. So you will find it elsewhere, when adding to bookmark, etc.
Android Chrome relies on the Web App Manifest. Although this manifest is not dedicated to Android Chrome, it is currently its main supporter. So at the moment, it is still quite safe to consider the icons from the Web App Manifest to be for Android Chrome.
As the name suggests, the Web App Manifest is for, well, web apps. But any web site can use it as a way to reference some icons.
Android expects a 192x192 PNG icon, transparency allowed and encouraged.
The manifest is declared with:
<link rel="manifest" href="/icons/site.webmanifest">
Microsoft introduced the browserconfig, an XML document which lists various icons that fit the Metro UI.
The file and background color are declared with:
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/icons/browserconfig.xml">
Windows/macOS Chrome, Windows/macOS Firefox, Safari, IE... This is were things are a little more blurry. Historically, there was a single favicon.ico
file, still supported. However, most recent browsers rather pick PNG icons, which are lighter. Plus some browsers are not able to select the proper icon in the ICO file (this format can embed several versions of an icon), leading a low resolution icon being wrongly used.
One could be tempted to drop the old favicon.ico
entirely. Although I would like to make this leap in RFG, I didn't run the necessary tests to evaluate the impact on the old browsers.
Thus the combo I still recommend today, with favicon.ico
embedding 16x16, 32x32 and 48x48 icons:
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="shortcut icon" href="/icons/favicon.ico">
Other browsers may have dedicated icons. For example Coast by Opera is looking for a 228x228 icon. The need to focus on these browsers is not obvious. They usually use the touch icon or other icons when they cannot find "their" icon.
As announced at the beginning, this is exactly what RealFaviconGenerator creates.