Favicon ToolsVérifierCréer
Dépannage
Notions de base

Le favicon ne s'affiche pas ou ne se met pas à jour ? 9 causes et solutions

· 7 min read

Les neuf causes qui cassent les favicons, et la solution exacte pour chacune. Neuf fois sur dix, c'est le cache, alors commencez par là et descendez le tableau.

<link rel="icon" href="/favicon.ico?v=2" sizes="any">

Changer l'URL, c'est ce qui pousse le navigateur à récupérer un nouveau fichier. Modifier l'ICO sur place ne suffit pas.

Causes et solutions

CausePourquoi ça casseSolution
1. Cache du navigateur ou du CDNLes navigateurs mettent les favicons en cache plus agressivement que presque tout autre asset, et un CDN en amont ajoute une seconde couche.Forcez un rafraîchissement (Cmd+Shift+R / Ctrl+F5) et ajoutez une query string de version pour que l'URL elle-même change.
2. Mauvais chemin de fichierUn chemin relatif se résout par rapport à la page courante, pas à la racine.Utilisez un slash initial, /favicon.ico, et confirmez que le fichier se charge bien à cette URL dans un nouvel onglet.
3. Balises link manquantes ou mal forméesAucun lien d'icône, une faute de frappe dans rel="icon", ou des balises placées hors du <head> empêchent toutes le navigateur de trouver le fichier.Validez le markup dans votre layout partagé.
4. Mauvais format ou mauvaise tailleUn favicon trop petit, un mauvais type MIME ou un .ico corrompu peuvent échouer à s'afficher en silence.Réexportez dans une taille et un format pris en charge, et servez-le avec le bon content type. Comparez ICO et PNG et vérifiez les tailles de favicon requises.
5. L'apple touch icon ne se met pas à jouriOS ignore favicon.ico et utilise l'apple-touch-icon. S'il est manquant ou périmé, l'écran d'accueil affiche la mauvaise chose.Corrigez le lien apple-touch-icon, puis retirez et rajoutez la page à l'écran d'accueil.
6. Problèmes d'icône du manifestSur Android et dans les PWA installés, l'icône vient de manifest.json. Un mauvais chemin ou une mauvaise taille y casse les icônes de l'écran d'accueil et du splash.Corrigez les chemins et les tailles d'icône dans manifest.json, puis réinstallez l'app.
7. La sortie du build supprime vos balisesCertains frameworks réécrivent le head du document, si bien que les balises link écrites à la main ne survivent pas au build.Suivez le guide de votre stack : Next.js, React, WordPress ou Shopify.
8. Un thème ou un CMS injecte sa propre icôneUn thème peut définir sa propre icône de site, qui prend le pas sur celle que vous avez ajoutée dans le markup.Définissez l'icône via le réglage d'icône de site de la plateforme elle-même, plutôt que dans le template.
9. Un cache de build sert un fichier périméLe cache du build ou de la plateforme continue de distribuer l'ancienne icône même après votre redéploiement.Videz le cache du build/de la plateforme, redéployez et revérifiez.

Où chercher ensuite

Format ou taille suspects ? Comparez ICO et PNG dans le glossaire et vérifiez les tailles de favicon requises. Un souci sur iOS ? Lisez l'entrée sur l'apple-touch-icon. Un souci de manifest ? Lisez ce qu'est manifest.json.

Les causes 7 à 9 sont celles spécifiques à la plateforme : certains frameworks et CMS écrasent ou mettent en cache le favicon d'une manière que le HTML brut ne connaît pas. La sortie du build peut supprimer vos balises, un thème peut injecter sa propre icône, ou un cache de build peut servir un fichier périmé. Les guides Next.js, React, WordPress et Shopify couvrent chacun leur propre version de ce problème.

Comment vider un favicon en cache

  1. 1

    Ajoutez une query string de version

    Changez le href du lien en /favicon.ico?v=2 pour que le navigateur récupère un nouveau fichier.

  2. 2

    Forcez un rafraîchissement de la page

    Utilisez Cmd+Shift+R (macOS) ou Ctrl+F5 (Windows) pour contourner le cache.

  3. 3

    Purgez tout cache de CDN

    Si un CDN se trouve en amont de votre site, invalidez le chemin du favicon pour que les nœuds de bordure servent le nouveau fichier.

Cache vidé et c'est toujours pareil ?

Ce que vous voyezCe que ça signifie en généralProchain geste
404 : favicon introuvableLe navigateur a demandé /favicon.ico et le serveur n'avait rien à cet endroit. Fréquent juste après un build de framework qui n'a jamais copié le fichier dans la sortie.Ouvrez /favicon.ico directement. S'il renvoie un 404, le fichier n'est pas déployé. C'est un problème de build ou de chemin, pas de cache, donc régler le cache n'aidera jamais.
L'ancienne icône se charge encore à l'URL directeOuvrir /favicon.ico montre l'ANCIENNE image, donc le fichier lui-même est périmé. Aucun rafraîchissement forcé ne le fera bouger.Une étape de build ou un CDN distribue un ancien fichier. Purgez le cache de la plateforme/du CDN, redéployez, puis rouvrez l'URL directe avant de vérifier l'onglet.
Bon fichier à l'URL, mauvaise icône dans l'ongletL'URL directe est correcte mais l'onglet reste faux. Une seconde balise link (celle d'un thème, d'un plugin, ou le défaut du framework) passe devant la vôtre.Affichez le code source et comptez les balises rel="icon". Le navigateur prend la dernière qu'il comprend, alors retirez la perdante plutôt que d'en ajouter une troisième.
OK dans un navigateur, absente dans un autreChaque navigateur, et chaque profil Chrome, garde son propre stockage de favicon, et certains conservent une entrée périmée pendant des jours.Confirmez dans une nouvelle fenêtre privée ou un profil propre avant de conclure que le site est en cause.

Parcourez ce tableau de haut en bas. Chaque ligne élimine une couche, si bien que vous cessez de deviner à propos du cache et commencez à lire ce que le serveur renvoie vraiment.

Les tailles qui comptent pour les cas en échec

Example favicon at 16 by 16 pixels
16px
Example favicon at 32 by 32 pixels
32px
Example favicon at 48 by 48 pixels
48px
Example favicon at 96 by 96 pixels
96px
Example favicon at 180 by 180 pixels
180px
Rendu aux dimensions réelles en pixels. Google veut au moins 48×48 avant d'afficher une icône dans la recherche, et iOS veut un apple-touch-icon de 180×180. Une icône qui n'existe qu'en 16px échoue aux deux.

Confirmez la solution avec un scan

Deviner, c'est lent. Lancez un scan automatisé qui récupère votre site en ligne, liste chaque balise de favicon qu'il trouve et signale celles qui sont manquantes ou cassées, pour que vous sachiez que la solution a réellement pris.

Vous voulez aussi tester manuellement sur navigateurs et appareils ? Voyez comment tester et vérifier votre favicon.

Questions fréquentes

Pourquoi mon favicon ne s'affiche-t-il pas ?

Les causes les plus fréquentes sont un cache navigateur agressif, un chemin de fichier erroné ou relatif, et des balises <link> manquantes ou mal formées dans le <head>. Forcez un rafraîchissement, confirmez que /favicon.ico se résout directement et vérifiez vos balises.

Comment forcer la mise à jour de mon favicon ?

Ajoutez une query string de version à l'URL de l'icône, par exemple /favicon.ico?v=2. Cela pousse le navigateur à le traiter comme un nouveau fichier. Puis forcez un rafraîchissement ou videz le cache du site.

Pourquoi mon favicon s'affiche-t-il sur ordinateur mais pas sur iPhone ?

iOS utilise l'apple-touch-icon, pas favicon.ico. Si ce lien PNG 180×180 est manquant, iOS se rabat sur une capture d'écran. Ajoutez un lien apple-touch-icon et rajoutez la page à l'écran d'accueil.

Combien de temps faut-il pour qu'un favicon se mette à jour dans la recherche Google ?

Google actualise les favicons quand il recrawle votre site, ce qui peut prendre de plusieurs jours à plusieurs semaines. Assurez-vous que l'icône fait au moins 48×48, qu'elle est référencée par une balise rel=icon valide et qu'elle est accessible à Googlebot.

Pourquoi affiche-t-il favicon introuvable, ou renvoie-t-il un 404 ?

Le navigateur a demandé l'icône par son chemin et le serveur n'avait rien à cet endroit. Ouvrez /favicon.ico directement dans un nouvel onglet : s'il renvoie un 404, le fichier n'a jamais été déployé à cette URL, en général un build de framework qui ne l'a pas copié dans la sortie, ou un mauvais chemin dans la balise link. Corrigez l'endroit où le fichier atterrit, pas le cache.

Mon favicon est manquant : où le fichier doit-il vraiment se trouver ?

Pour l'icône d'onglet classique, un vrai fichier à la racine du site pour que /favicon.ico se résolve. Les frameworks changent la manière dont il y arrive : Next.js lit app/favicon.ico, Vite et la plupart des SPA copient public/ vers la racine, et WordPress ou Shopify le servent via un réglage d'icône de site plutôt qu'un fichier. Si la balise pointe vers un endroit où le build n'a jamais écrit de fichier, l'icône est « manquante » même si votre source semble correcte.

J'ai essayé de vider le cache et c'est toujours pareil. Et maintenant ?

Arrêtez de vider les caches et lisez ce que le serveur renvoie. Ouvrez /favicon.ico directement : un 404 signale un problème de build ou de chemin, une ancienne image signale un fichier de build ou de CDN périmé, et le bon fichier avec la mauvaise icône dans l'onglet signale qu'une seconde balise link l'emporte. Chaque résultat pointe vers une solution différente. Voyez le tableau d'escalade ci-dessus.

Generate your icon set

Keep reading