Où va favicon.ico ? La convention du chemin racine
Par convention de longue date, les navigateurs et de nombreux robots d'exploration demandent /favicon.ico à la racine de votre domaine, même sans balise link pointant vers lui. Un favicon.ico servi à la racine du site est donc le seul fichier qui satisfait tout ce qui demande par chemin. L'endroit où vous le placez physiquement varie selon la stack (public/ pour la plupart des frameworks, le répertoire app pour Next.js), mais il doit finir par répondre à /favicon.ico.
La requête racine que personne ne déclare
Même si votre en-tête n'a aucun lien d'icône, les navigateurs, lecteurs de flux et robots d'exploration demanderont quand même /favicon.ico à la racine même du domaine. C'est une requête implicite qui précède la balise link, et de nombreux clients s'en remettent à elle.
C'est pourquoi le fichier doit se résoudre au chemin racine. Vos balises link couvrent tout le reste (SVG, tailles PNG, apple-touch-icon), mais cette URL-là est demandée que vous pointiez vers elle ou non.
Où va le fichier selon la stack
| Stack | Placez le fichier dans |
|---|---|
| HTML simple | La racine du site, servi à /favicon.ico |
| Vite / React / Vue | public/, copié à la racine |
| Next.js App Router | le répertoire app (app/favicon.ico) |
| WordPress | le réglage Icône du site, pas un fichier que vous téléversez |
| Angular | public/, ou listé dans les assets de angular.json |
FAQ sur le chemin du favicon
Où placer favicon.ico ?
Quelque part qui le sert à /favicon.ico : la racine du site pour du HTML simple, public/ pour la plupart des frameworks, le répertoire app pour Next.js App Router. WordPress et Shopify le gèrent via un réglage plutôt qu'un fichier.
Le favicon doit-il vraiment être à la racine ?
Pour la requête implicite, oui. Les clients qui demandent /favicon.ico par chemin ne le trouveront nulle part ailleurs. Des icônes supplémentaires peuvent vivre ailleurs tant que vos balises link pointent vers elles.
Ai-je encore besoin de favicon.ico si j'ai des balises link ?
Oui. Les balises link servent les navigateurs, mais les requêtes par chemin des robots d'exploration et des clients plus anciens contournent votre HTML et vont directement à /favicon.ico.