Un fichier .jfif est un JPEG. Les données internes sont identiques : même flux DCT, mêmes marqueurs SOI/EOI, même table de quantification. La seule différence tient à l’extension que Windows ou certains navigateurs attribuent lors d’un enregistrement. Renommer .jfif en .jpg suffit dans la majorité des cas, sans aucune recompression. Partir de ce constat technique change la façon d’aborder l’optimisation pour le web.
Structure binaire JFIF et marqueurs JPEG : ce que le renommage ne touche pas
Le format JFIF (JPEG File Interchange Format) n’est qu’un wrapper normé autour du flux JPEG. Il ajoute un marqueur APP0 après le SOI, qui stocke la version, la densité de pixels et un éventuel thumbnail. Le reste du fichier (tables de Huffman, tables de quantification, données entrelacées) est du JPEG pur.
Renommer un .jfif en .jpg ne modifie pas un seul octet du contenu. Le serveur web sert le fichier avec le même MIME type image/jpeg, et tous les décodeurs le lisent sans problème. C’est la méthode la plus sûre quand on veut conserver la qualité pixel par pixel.
La recompression n’a de sens que si le fichier source a été enregistré à une qualité trop élevée pour le web (au-dessus de 85 dans la plupart des éditeurs). Dans ce cas, un ré-encodage à un facteur de qualité maîtrisé réduit le poids sans perte visible perceptible.

Réglages de qualité JPEG pour un site rapide : facteur Q, progressive et métadonnées
Le facteur de qualité (Q) pilote directement les tables de quantification. Un Q entre 75 et 82 représente le meilleur compromis poids/rendu pour des images éditoriales destinées au web. Au-delà de 85, le gain visuel devient négligeable alors que le poids augmente de façon non linéaire.
JPEG baseline ou progressive
Le mode progressive encode l’image en plusieurs passes (scans), du plus grossier au plus détaillé. Sur une connexion lente, l’utilisateur perçoit l’image entière dès les premières centaines d’octets, même floue. Pour les images au-dessus du fold, le mode progressive améliore la perception de vitesse sans modifier le poids final de façon significative.
Le mode baseline charge ligne par ligne, de haut en bas. Il reste pertinent pour les petites vignettes ou les images lazy-loadées en bas de page, où le décodage progressif n’apporte rien.
Métadonnées EXIF et poids superflu
Les blocs EXIF, IPTC et XMP embarqués dans un JFIF issu d’un appareil photo ou d’un logiciel de retouche peuvent peser plusieurs dizaines de kilooctets. Pour un site web, nous recommandons de les supprimer systématiquement, sauf le profil ICC si la gestion colorimétrique est critique (photographie produit, e-commerce haut de gamme).
- Supprimer les données GPS, modèle d’appareil, paramètres de prise de vue : aucune utilité côté navigateur, et un risque de fuite de données personnelles.
- Conserver le profil sRGB IEC61966-2.1 uniquement si le workflow couleur l’exige ; sinon, le navigateur applique sRGB par défaut.
- Retirer les thumbnails embarqués (marqueur APP1) : ils ajoutent du poids et ne sont jamais utilisés par les navigateurs web.
Pourquoi convertir en JPEG ne suffit plus : stack AVIF, WebP et fallback JPEG
Convertir un .jfif en .jpg puis l’envoyer sur le serveur, c’est traiter le symptôme. La vraie optimisation passe par un stack de formats dans une balise <picture> : source AVIF en premier, WebP en fallback, JPEG en dernier recours.
Sur plus de 90 % du trafic navigateur actuel, AVIF ou WebP sera servi. Le JPEG ne se déclenche que pour des clients très anciens. Nous observons que beaucoup de sites convertissent leurs JFIF en JPEG optimisé sans jamais mettre en place ce stack, ce qui revient à ignorer des gains de compression substantiels.
Impact sur le LCP et les Core Web Vitals
Les seuils actuels fixent le LCP à 2,5 secondes maximum pour un score « bon ». Les images above the fold sont souvent l’élément LCP. Un JPEG non optimisé avec métadonnées, qualité 95 et mode baseline pèse facilement plusieurs centaines de kilooctets de trop.
Servir l’image LCP en AVIF réduit le poids de façon drastique par rapport à un JPEG de qualité équivalente. Quand AVIF n’est pas possible (CMS ancien, CDN limité), un WebP lossy à qualité 80 offre un ratio poids/qualité nettement supérieur au JPEG.
- Déclarer les sources dans l’ordre AVIF, WebP, JPEG dans la balise
<picture>: le navigateur prend le premier format qu’il supporte. - Ajouter
fetchpriority="high"etdecoding="async"sur l’image LCP pour signaler la priorité au navigateur. - Redimensionner chaque variante à la taille d’affichage réelle (attributs
widthetheight) pour éviter le layout shift (CLS). - Lazy-loader toutes les images sous le fold avec
loading="lazy", mais jamais l’image LCP.

Automatiser la conversion JFIF vers JPEG optimisé dans un workflow web
Renommer manuellement des fichiers .jfif fonctionne pour quelques images. À l’échelle d’un site avec des centaines de visuels, il faut automatiser. Un script shell ou un hook de build peut détecter les fichiers .jfif, les renommer en .jpg, puis les passer dans un pipeline d’optimisation.
Les outils en ligne de commande comme MozJPEG ou libjpeg-turbo permettent de ré-encoder avec un contrôle fin sur le facteur Q, le mode progressive et le stripping de métadonnées. MozJPEG produit des fichiers plus légers que libjpeg à qualité perçue identique, grâce à des tables de quantification optimisées.
Pour les CMS type WordPress, des extensions d’optimisation d’images gèrent la conversion à l’upload. Elles détectent le format source, redimensionnent, suppriment les métadonnées et génèrent les variantes WebP/AVIF automatiquement. Le fichier .jfif d’origine n’a même pas besoin d’être renommé avant upload : le CMS le traite comme un JPEG natif.
Vérifier le résultat
Après conversion, deux vérifications rapides confirment que le fichier est correct. D’abord, le MIME type servi par le serveur doit être image/jpeg (vérifiable dans l’onglet Network des DevTools). Ensuite, le poids final de l’image LCP devrait rester sous quelques centaines de kilooctets pour un affichage plein écran.
Le débat « JFIF vs JPEG » masque le vrai sujet. Ces deux extensions désignent le même codec. L’optimisation qui compte se joue sur le facteur de qualité, le stripping de métadonnées, le mode progressive et surtout le passage à des formats modernes via un stack <picture> correctement déclaré. Un .jfif renommé en .jpg et servi tel quel reste un fichier non optimisé tant que ces étapes n’ont pas été appliquées.

