Favicon Tools検証作成
Reference

favicon.ico はどこに置くか?ルートパスの慣例

長年の慣例により、ブラウザや多くのクローラーは、指し示す link タグが無くてもドメインのルートから /favicon.ico をリクエストします。したがってサイトのルートで配信される favicon.ico は、パスで尋ねるものすべてを満たす唯一のファイルです。物理的にどこに置くかはスタックによって異なります(ほとんどのフレームワークでは public/、Next.js では app ディレクトリ)が、最終的に /favicon.ico で応答しなければなりません。

誰も宣言しないルートへのリクエスト

head にアイコンの link が一切なくても、ブラウザ、フィードリーダー、クローラーは、ドメインのまさにルートで /favicon.ico を尋ねます。これは link タグより古い暗黙のリクエストで、多くのクライアントがそれに頼っています。

だからこそファイルはルートパスで解決される必要があります。link タグはそれ以外のすべて(SVG、PNG の各サイズ、apple-touch-icon)をカバーしますが、この一つの URL は、指し示そうがしまいがリクエストされます。

スタックごとのファイルの置き場所

スタックファイルの置き場所
プレーン HTMLサイトのルート、/favicon.ico で配信
Vite / React / Vuepublic/、ルートにコピーされる
Next.js App Routerapp ディレクトリ(app/favicon.ico)
WordPress「サイトアイコン」設定、アップロードするファイルではない
Angularpublic/、または angular.json の assets に列挙

ファビコンのパスに関するよくある質問

favicon.ico はどこに置きますか?

/favicon.ico で配信される場所です。プレーン HTML ならサイトのルート、ほとんどのフレームワークなら public/、Next.js App Router なら app ディレクトリです。WordPress や Shopify は、ファイルではなく設定で扱います。

ファビコンは本当にルートに置かないといけませんか?

暗黙のリクエストのためには、はい。/favicon.ico をパスで尋ねるクライアントは、それ以外の場所では見つけられません。link タグで指し示せば、追加のアイコンは別の場所に置けます。

link タグがあっても favicon.ico は必要ですか?

はい。link タグはブラウザを担いますが、クローラーや古いクライアントからのパスベースのリクエストは、あなたの HTML を迂回して直接 /favicon.ico に行きます。

関連用語