Favicon Tools検証作成
フォーマット
リファレンス

favicon フォーマット比較: ICO vs PNG vs SVG

· 6 min read

3 つのフォーマットには、それぞれ 3 つの役割があります。/favicon.ico のパスと古いクライアントには .ico、モダンブラウザとすべてのアプリアイコンサイズには PNG、そしてシャープでテーマに対応したタブアイコンには SVG を使いましょう。

各フォーマットには異なる役割がある

唯一最良の favicon フォーマットというものは存在しません。それぞれが、他では対応できないケースをカバーしています。1 つだけ選んですべてに無理やり使うと、タブが空白になったり、ホーム画面にグレーの四角が表示されたりします。

.ico フォーマットは、複数のサイズを 1 つのファイルに収めるコンテナです。これが重要なのは、ブラウザやクローラーが今でもデフォルトで /favicon.ico をリクエストし、古いクライアントは .ico しか理解できないからです。本物の .ico は、拡張子だけ変えた PNG ではありません。ファイル名を変えても、名前が変わるだけで中身のバイト列は変わらず、ほとんどのクライアントはそれを拒否します。

PNG は主力です。あらゆるモダンブラウザが読み込め、すべてのアプリアイコンと manifest の枠(16、32、180、192、512)は PNG です。SVG は新顔で、どんなサイズでもシャープさを保ち、ファイル内の media query でダークモード用に色を切り替えられる、1 つのベクターファイルです。

ICO vs PNG vs SVG

フォーマット得意な用途注意点
.ico/favicon.ico のパス、および .ico しか読めない古いブラウザやクローラー拡張子を変えただけの PNG ではなく、複数サイズを含む本物のコンテナ(16 + 32 + 48)である必要があります。アプリアイコンには使わないでください。
PNGモダンブラウザのタブ、およびすべてのアプリアイコンと manifest のサイズ(16、32、180、192、512)ラスター形式なので、サイズごとに別ファイルになります。すべてのサイズが必要で、1 つの PNG ですべてをカバーすることはできません。
SVGどんなサイズにも拡大でき、ダークモードで色を切り替えられる、1 つのシャープなタブアイコン/favicon.ico としては無効で、iOS や Android のホーム画面には使われません。シンプルに保ちましょう。エフェクトはブラウザによって表示が異なることがあります。

head 内での組み合わせ方

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">

SVG を読めるブラウザは favicon.svg を使います。それ以外はすべて PNG と .ico にフォールバックします。apple-touch-icon は PNG のままにします。iOS はここで SVG を無視するためです。

よくある質問

PNG の名前を favicon.ico に変えるだけではダメですか?

ダメです。.ico は独自のコンテナフォーマットであり、拡張子だけ違う PNG ではありません。ラベルの誤ったファイルを許容するブラウザもありますが、多くはそうではなく、クローラーはさらに厳格です。複数サイズを含む本物の .ico を生成してください。

PNG と SVG があっても favicon.ico は必要ですか?

はい、1 つは残してください。ブラウザ、フィードリーダー、検索クローラーは今でも、タグなしで /favicon.ico をリクエストします。そのパスにあるファイルは、link タグが見落とされたときの安全網になります。

SVG の favicon は PNG より優れていますか?

タブアイコンについては、そうなり得ます。1 つのファイルであらゆるサイズでシャープさを保ち、ダークモードにも適応できるからです。ただしホーム画面用の PNG アプリアイコンを置き換えるものではないので、両方を使いましょう。

512x512 の manifest アイコンにはどのフォーマットを使いますか?

PNG です。manifest の icons 配列は、maskable を含めて 192 と 512 のラスター PNG を期待します。SVG は、Android がインストール済みアプリのアイコンに使うフォーマットではありません。

Generate your icon set

Keep reading