By 37Design |

Photos HEIC de l'iPhone et WordPress : comment téléverser sans galères de conversion

Chaque iPhone vendu depuis 2017 prend des photos en HEIC par défaut. Chaque site WordPress construit avant 2024 refusait les fichiers HEIC au téléversement. Ce décalage a causé plus de confusion que n'importe quel autre problème de format en 15 ans de création de sites WordPress.

La situation s'est améliorée fin 2024 quand WordPress 6.7 a ajouté le support natif du HEIC. Mais "amélioré" et "résolu" ne sont pas la même chose. Il y a encore des environnements d'hébergement où les uploads HEIC échouent silencieusement, des plugins qui bloquent sur le format, et beaucoup de conseils contradictoires sur les forums.

Voici ce que j'ai appris en gérant ça sur des dizaines de sites clients.

Ce qu'est réellement le HEIC

HEIC (High Efficiency Image Container) utilise le format d'image HEIF avec la compression H.265. Apple l'a adopté avec iOS 11 parce qu'il produit des fichiers environ 40 à 50 % plus petits que le JPEG à qualité visuelle équivalente. Une photo iPhone typique qui ferait 6 Mo en JPEG sort à environ 3 Mo en HEIC.

Cette différence de taille compte quand vous téléversez en 4G, et elle compte pour le stockage sur votre serveur WordPress. Des fichiers plus petits, même qualité. Le format en lui-même n'a pas d'inconvénient.

L'inconvénient, c'est la compatibilité. Pendant des années, presque rien en dehors de l'écosystème Apple ne pouvait ouvrir les fichiers HEIC. Windows a ajouté le support en 2018. Android en 2019. WordPress ne l'a ajouté qu'avec la version 6.7 fin 2024, et même là, ça dépend du fait que votre serveur ait la bonne bibliothèque de traitement d'image installée.

Support HEIC dans WordPress 6.7 : ce qui a changé

Avant la 6.7, téléverser un fichier .heic sur WordPress donnait une erreur générique : "Désolé, ce type de fichier n'est pas autorisé pour des raisons de sécurité." La solution était soit de convertir chaque photo en JPEG avant l'envoi (fastidieux), soit d'ajouter un bout de code dans functions.php pour autoriser le type MIME (risqué si votre serveur ne peut pas vraiment traiter le fichier).

WordPress 6.7 a ajouté le HEIC à la liste des types de fichiers autorisés et inclus un support basique pour générer des miniatures à partir de fichiers HEIC. Si votre serveur a ImageMagick compilé avec le support HEIF (ou libheif pour GD), WordPress peut maintenant gérer le HEIC nativement.

C'est un gros "si".

Là où ça marche

La plupart des hébergeurs managés modernes (Cloudways, Kinsta, SiteGround sur leur infrastructure récente) ont ImageMagick avec le support HEIF. Si vous êtes chez un de ces hébergeurs avec WordPress 6.7 ou plus récent, les uploads HEIC devraient fonctionner sans problème.

Là où ça ne marche pas

L'hébergement mutualisé sur une infrastructure ancienne, c'est aléatoire. Beaucoup d'hébergeurs low-cost font tourner d'anciennes versions d'ImageMagick sans support HEIF. Le téléversement peut réussir (le fichier arrive sur le serveur), mais WordPress ne génère pas les miniatures. Vous vous retrouvez avec un fichier HEIC en taille originale dans la Médiathèque et des miniatures cassées partout.

Il n'y a pas de message d'erreur clair quand ça arrive. La Médiathèque affiche juste une icône générique au lieu d'un aperçu. J'ai eu des clients qui signalaient ça comme "mes photos ne s'envoient pas" alors qu'en fait les photos étaient bien là, elles avaient juste l'air cassées dans l'admin.

Comment vérifier si votre serveur supporte le HEIC

Allez dans Outils > Santé du site > Info > Gestion des médias dans votre admin WordPress. Cherchez la version d'ImageMagick et les formats supportés. Si vous voyez "HEIC" ou "HEIF" dans la liste, c'est bon.

Si vous ne le voyez pas, ou si vous utilisez GD au lieu d'ImageMagick, les miniatures HEIC ne seront pas générées. Deux options : demander à votre hébergeur de mettre à jour ImageMagick, ou convertir vos photos avant de les envoyer.

Le problème de la conversion

Convertir du HEIC en JPEG avant l'envoi semble simple. Sur un ordinateur, ça l'est. Aperçu sur macOS fait de la conversion par lots en quelques secondes. Sur Windows, l'app Photos s'en charge.

Sur iPhone, c'est une autre histoire. Il n'y a pas de convertisseur par lots intégré. Vous pouvez changer les réglages de votre appareil photo pour shooter en JPEG au lieu de HEIC (Réglages > Appareil photo > Formats > Le plus compatible), mais vous perdez alors l'avantage de 40 à 50 % sur la taille du fichier pour chaque photo, pas seulement celles destinées à WordPress.

Certains utilisent l'app Raccourcis pour créer un convertisseur HEIC-vers-JPEG. Ça marche, mais c'est une étape manuelle de plus dans votre flux de travail, et les fichiers convertis sont plus gros. Vous échangez un problème contre un autre.

Ce qui est vraiment agaçant, c'est que votre iPhone gère déjà cette conversion automatiquement dans certaines situations. Quand vous envoyez une photo par mail ou via AirDrop vers un PC Windows, iOS la convertit en JPEG à la volée. Mais quand vous téléversez via un navigateur ou l'app WordPress, il envoie le fichier HEIC original. Il n'y a pas de réglage pour changer ce comportement pour les uploads.

Ce que SnapPress fait avec le HEIC

Quand j'ai créé SnapPress, la gestion du HEIC a été l'une des premières choses à résoudre. L'approche est directe : l'app lit votre fichier HEIC original, le convertit en JPEG localement sur votre iPhone avant l'envoi, et transmet le JPEG à WordPress.

Ça veut dire que ça marche avec n'importe quel site WordPress quelle que soit la configuration du serveur. Votre hébergeur n'a pas besoin du support HEIF dans ImageMagick. WordPress n'a pas besoin d'être en version 6.7. Le fichier qui arrive sur votre serveur est un JPEG standard que toute installation WordPress depuis la version 1.0 sait gérer.

La conversion se fait sur l'appareil et prend une fraction de seconde par photo. Vous ne la voyez pas. Vous ne configurez rien. Vous sélectionnez vos photos, appuyez sur téléverser, et des fichiers JPEG apparaissent dans votre Médiathèque avec miniatures, aperçus et tout qui fonctionne correctement.

Est-ce la "bonne" approche ? Ça dépend de ce qui compte pour vous. Si vous voulez la taille de fichier la plus petite possible, envoyer du HEIC natif vers un serveur qui le supporte est techniquement mieux. Si vous voulez quelque chose qui marche sur tous les sites WordPress sans vérifier les configurations serveur, la conversion automatique est le choix le plus sûr.

J'ai choisi la fiabilité plutôt que l'optimisation théorique. D'expérience, la plupart des utilisateurs WordPress ne savent pas et ne se soucient pas de la version d'ImageMagick de leur hébergeur. Ils veulent juste que leurs photos s'affichent.

Les autres formats que vous allez rencontrer : HEIF et AVIF

Le HEIC est techniquement un format conteneur qui encapsule des images HEIF. Vous verrez parfois des fichiers avec l'extension .heif au lieu de .heic. WordPress 6.7 gère les deux de la même manière.

L'AVIF est un format plus récent qui gagne du terrain sur le web (c'est ce que Netflix et de nombreux CDN utilisent pour la diffusion d'images). WordPress a ajouté le support AVIF dans la version 6.5. Certains iPhones récents peuvent prendre des photos en AVIF, même si ce n'est pas encore le format par défaut.

Pour l'instant, le HEIC est ce que vous rencontrerez 99 % du temps en téléversant des photos d'iPhone. Mais gardez l'AVIF dans un coin de votre tête. Il offre une compression encore meilleure que le HEIC et un support multiplateforme plus large.

Ma recommandation

Si votre hébergement supporte le HEIC (vérifiez dans Santé du site) et que vous êtes sur WordPress 6.7+, envoyez les fichiers HEIC directement. Profitez des tailles de fichier réduites.

Si votre hébergement ne supporte pas le HEIC, ou si vous gérez plusieurs sites chez différents hébergeurs et ne voulez pas vérifier chacun, utilisez un outil qui convertit pour vous. SnapPress le fait automatiquement. Le plugin SnapPress Connect gère la connexion au site, et l'app gère la conversion de format en coulisses.

Ne changez pas le format de votre appareil photo iPhone en JPEG juste parce que WordPress vous a posé problème une fois. Le HEIC est le meilleur format. C'est à l'outil de téléversement de s'adapter, pas à vos réglages d'appareil photo.