Photos HEIC de l'iPhone et WordPress : comment les envoyer sans galère de conversion
Tous les iPhones vendus depuis 2017 prennent les photos en HEIC par défaut. Tous les sites WordPress construits avant 2024 refusaient les fichiers HEIC à l'upload. Ce désaccord m'a causé plus de confusion que n'importe quel autre problème de format en quinze ans à monter des sites WordPress.
Ça s'est arrangé fin 2024 quand WordPress 6.7 a ajouté le support HEIC natif. Mais « arrangé » et « réglé » ne sont pas la même chose. Il y a encore des environnements d'hébergement où l'envoi HEIC échoue sans bruit, des plugins qui s'étranglent sur le format, et beaucoup de conseils contradictoires qui circulent dans les forums.
Voici ce que j'ai retenu en gérant le problème sur des dizaines de sites clients.
Ce qu'est vraiment HEIC
HEIC (High Efficiency Image Container) utilise le format d'image HEIF avec une compression H.265. Apple l'a adopté avec iOS 11 parce qu'il produit des fichiers environ 40 à 50 % plus petits que JPEG à qualité visuelle égale. Une photo iPhone typique de 6 Mo en JPEG tombe autour de 3 Mo en HEIC.
Cet écart de taille compte quand on uploade en 4G, et il compte pour le stockage sur votre serveur WordPress. Fichiers plus petits, qualité identique. Le format en lui-même n'a aucun défaut.
Le défaut vient de la compatibilité. Pendant des années, presque rien en dehors de l'écosystème Apple ne pouvait ouvrir HEIC. Windows a ajouté le support en 2018. Android en 2019. WordPress n'a sauté le pas que fin 2024 avec la 6.7, et encore, à condition que votre serveur ait la bonne bibliothèque de traitement d'image installée.
HEIC stocke aussi des métadonnées plus riches que JPEG : 10 bits de couleur au lieu de 8, gamut Display P3 plus large que sRGB, et des cartes de gain HDR qui permettent aux écrans modernes d'afficher les hautes lumières avec plus de pep. Quand on aplatit en JPEG, on perd les trois.
Pourquoi WordPress refuse HEIC par défaut
Avant WordPress 6.7, déposer un fichier .heic dans la médiathèque déclenchait le redoutable message « Désolé, ce type de fichier n'est pas autorisé pour des raisons de sécurité ». Le motif n'est pas vraiment lié à la sécurité au sens malware. C'est une liste blanche.
WordPress valide chaque envoi via wp_check_filetype_and_ext(), qui compare l'extension et le type MIME à la liste codée en dur dans get_allowed_mime_types(). Si la combinaison n'y est pas, l'envoi est rejeté avant même d'arriver dans la médiathèque. L'argument « sécurité » existe parce que permettre n'importe quel type de fichier laisserait un attaquant uploader un exécutable déguisé en image, mais en pratique le filtre est juste une liste d'autorisation stricte.
Pour HEIC, le souci historique était double. D'abord, image/heic ne figurait pas dans la liste par défaut. Ensuite, même si on l'y forçait via un filtre, les bibliothèques PHP d'image (GD et ImageMagick) ne savaient pas décoder le format sur la plupart des serveurs. WordPress était honnête en refusant : aucun intérêt à accepter un fichier que le système ne sait pas traiter. WordPress 6.7 a réparé les deux pans en ajoutant image/heic et image/heif à la liste autorisée et en apprenant aux classes d'éditeur d'image à confier HEIC à ImageMagick quand libheif est disponible.
Le support HEIC de WordPress 6.7 : ce qui a changé
Avant 6.7, le contournement consistait soit à convertir chaque photo en JPEG avant l'upload (pénible), soit à ajouter un snippet dans functions.php pour autoriser le type MIME (risqué si votre serveur ne sait en réalité pas traiter le fichier). J'ai vu les deux approches casser des sites de manière subtile : la liste blanche provoque des vignettes cassées, la conversion manuelle perd des métadonnées sans prévenir.
WordPress 6.7 a ajouté HEIC à la liste des types autorisés et inclut un support de base pour générer les vignettes à partir de fichiers HEIC. Si votre serveur a ImageMagick compilé avec le support HEIF (ou libheif pour GD), WordPress sait désormais gérer HEIC nativement.
C'est un gros « si ».
Là où ça marche
La plupart des hébergeurs infogérés modernes (Cloudways, Kinsta, SiteGround sur leur infrastructure récente) livrent ImageMagick avec le support HEIF. Sur l'un de ces hébergeurs avec WordPress 6.7 ou plus, l'envoi HEIC devrait fonctionner d'emblée.
Là où ça ne marche pas
L'hébergement mutualisé sur infra ancienne, c'est la loterie. Beaucoup d'hébergeurs économiques tournent sur des versions plus anciennes d'ImageMagick sans support HEIF. L'upload peut aboutir (le fichier arrive sur le serveur) mais WordPress ne peut pas générer les vignettes. Vous vous retrouvez avec un HEIC pleine taille dans la médiathèque et des emplacements de vignettes cassés partout.
Aucun 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 me signalaient « mes photos ne s'envoient pas » alors que les photos étaient bien envoyées, juste mal affichées dans l'admin. Si vous voulez un tour plus complet du fonctionnement attendu de la médiathèque quand tout va bien, voyez mon guide de la médiathèque WordPress.
Support HEIC chez les hébergeurs : tableau comparatif
J'ai passé un week-end à tester le même fichier HEIC d'iPhone chez cinq grands hébergeurs pour voir lesquels le traitaient proprement et lesquels cassaient les vignettes en silence. Résultats à jour début 2026.
| Hébergeur | Upload HEIC accepté | Vignettes générées | ImageMagick + libheif | Notes |
|---|---|---|---|---|
| Kinsta | Oui | Oui | Oui (ImageMagick 7 + libheif) | Expérience la plus propre. AVIF marche aussi. |
| Cloudways (Vultr/DO) | Oui | Oui | Oui | Dépend de la version du stack. Serveurs récents impeccables. |
| WP Engine | Oui | Oui | Oui | Support HEIC natif ajouté lors de la mise à jour de la plateforme en 2024. |
| SiteGround | Oui | Partiel | Variable | Plans récents OK. Anciens environnements mutualisés ratent les vignettes. |
| Bluehost (mutualisé) | Oui | Non | Non (ImageMagick ancien) | L'upload aboutit mais les vignettes sont cassées. Convertir avant. |
La logique saute aux yeux : les hébergeurs WordPress infogérés haut de gamme ont investi dans des bibliothèques d'image modernes, alors que le mutualisé bon marché tourne encore sur des stacks anciens où le support HEIC est au mieux inégal. Si vous êtes sur Bluehost mutualisé ou un hébergeur de tarif comparable et que HEIC compte dans votre flux, mieux vaut convertir avant l'upload que se battre avec le serveur.
Comment vérifier si votre serveur supporte HEIC
Allez dans Outils > Santé du site > Info > Gestion des médias dans l'admin WordPress. Cherchez la version d'ImageMagick et les formats supportés. Si vous voyez « HEIC » ou « HEIF » dans la liste, c'est bon.
Sinon, ou si vous utilisez GD au lieu d'ImageMagick, les vignettes HEIC ne seront pas générées. Vous avez deux options : demander à votre hébergeur de mettre à jour ImageMagick, ou convertir vos photos avant l'upload.
Le piège du « convertir avant d'envoyer »
« Convertis tes HEIC en JPEG avant » est le conseil le plus courant sur les forums WordPress. Ça paraît raisonnable. C'est aussi une des pires choses à faire si la qualité d'image compte, parce que la conversion par défaut sur iPhone fait perdre des choses que la plupart des gens ne remarquent pas.
Voici ce qui se passe quand on laisse iOS convertir HEIC en JPEG automatiquement (le chemin AirDrop vers Windows, la pièce jointe Mail Drop, le partage vers la plupart des apps) :
- Compression du gamut. Le HEIC original est stocké en Display P3, un espace colorimétrique environ 25 % plus grand que sRGB. L'export JPEG est rabattu sur sRGB. Les rouges, oranges et verts saturés s'aplatissent visiblement.
- Réduction de la profondeur de bits. HEIC stocke 10 bits par canal (1024 valeurs). JPEG est verrouillé à 8 bits (256 valeurs). Les dégradés de ciel doux peuvent montrer du banding visible après conversion.
- Perte de la carte de gain HDR. iOS embarque une carte de gain HDR à côté des pixels SDR pour que les écrans capables affichent des hautes lumières plus brillantes. JPEG n'a pas d'équivalent. Détails dans les ombres et les hautes lumières écrasés à l'export.
- EXIF retiré (parfois). Selon l'app qui fait la conversion, les coordonnées GPS, infos d'objectif et réglages d'appareil peuvent disparaître. Si vous comptez sur les métadonnées pour organiser ou géotaguer, vérifiez avant de convertir en lot.
- Inflation du poids. Toute la raison d'être de HEIC, c'est la compression. Un HEIC de 3 Mo gonfle en général à 6-8 Mo en JPEG qualité 85, doublant votre stockage.
Le piège, c'est que toutes ces pertes sont invisibles à la taille vignette. On ne les voit que quand quelqu'un zoome, imprime ou regarde l'image sur un écran à gamut large. À ce moment-là c'est trop tard, le JPEG est le fichier qu'il vous reste.
L'approche intelligente, c'est de convertir au moment de la publication, avec un outil qui préserve l'essentiel et n'aplatit que ce que WordPress a besoin d'aplati. C'est la contrainte de conception derrière tout outil d'upload qui se respecte.
Le problème de conversion sur l'iPhone lui-même
Convertir HEIC en JPEG avant l'upload, ça paraît simple. Sur un ordinateur, ça l'est. Aperçu sur macOS convertit en lot en quelques secondes. Sur Windows, l'app Photos s'en charge.
Sur iPhone, c'est une autre histoire. Pas de convertisseur en lot intégré. On peut changer les réglages d'appareil photo pour shooter en JPEG au lieu de HEIC (Réglages > Appareil photo > Formats > Le plus compatible), mais alors on perd l'avantage de 40-50 % de taille sur chaque photo prise, pas seulement celles destinées à WordPress.
Certains montent un convertisseur HEIC vers JPEG dans l'app Raccourcis. Ça marche, mais c'est une étape manuelle de plus dans le flux, et les fichiers convertis sont plus lourds. On échange un problème contre un autre.
Le plus agaçant, c'est que votre iPhone gère déjà cette conversion automatiquement dans certains cas. Quand vous envoyez une photo par mail ou que vous l'AirDrop vers un PC Windows, iOS la convertit en JPEG à la volée. Mais quand vous uploadez via un navigateur ou l'app WordPress, il envoie le HEIC original. Aucun réglage pour modifier ce comportement à l'upload. Si vous balancez régulièrement 10-20 photos d'un coup d'iPhone vers WordPress, jetez un œil à mes notes sur l'upload massif d'images depuis un téléphone pour des techniques qui survivent aux bizarreries iOS.
Ce que SnapPress fait avec HEIC
Quand j'ai construit SnapPress, la gestion HEIC a été une des premières choses à régler. L'approche est directe : l'app lit votre fichier HEIC original, le convertit en JPEG localement sur l'iPhone avant l'upload, et envoie le JPEG à WordPress.
Ça veut dire que ça marche avec n'importe quel site WordPress quelle que soit la configuration serveur. Votre hébergeur n'a pas besoin du support HEIF dans ImageMagick. WordPress n'a pas besoin d'être en 6.7. Ce qui arrive sur le serveur est un JPEG standard que toute installation WordPress depuis la 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 la configurez pas. Vous sélectionnez vos photos, vous tapez sur Envoyer, et des fichiers JPEG apparaissent dans votre médiathèque avec vignettes, aperçus et tout qui marche correctement.
Est-ce la « bonne » approche ? Ça dépend de ce qui compte pour vous. Si vous voulez le poids absolu le plus petit, uploader du HEIC natif vers un serveur qui le supporte est techniquement meilleur. Si vous voulez quelque chose qui marche sur tous les sites WordPress sans vérifier la config serveur, la conversion automatique est plus sûre. J'ai comparé une poignée d'apps iOS concurrentes dans mon comparatif des meilleures apps d'upload photo pour WordPress si vous voulez voir comment SnapPress se positionne face aux alternatives.
J'ai choisi la fiabilité plutôt que l'optimisation théorique. D'expérience, la majorité des utilisateurs WordPress ne savent pas et ne se soucient pas de la version d'ImageMagick chez leur hébergeur. Ils veulent juste que leurs photos s'affichent.
Et Jetpack et l'app mobile WordPress ?
L'app mobile officielle WordPress (qui s'appuie sur Jetpack pour beaucoup de fonctions) a géré HEIC de façon inégale au fil des ans. Les versions récentes convertissent HEIC en JPEG avant l'upload, à la manière de SnapPress, mais la conversion passe par le pipeline d'image de Jetpack, ce qui demande une connexion Jetpack et un compte WordPress.com actif lié à votre site.
Ça va si vous utilisez déjà Jetpack. C'est frustrant sinon, parce que l'app refuse parfois carrément d'uploader sans la connexion. J'ai écrit un guide à part sur l'upload de photos sur WordPress sans Jetpack pour les lecteurs qui veulent un stack plus léger. Version courte : si Jetpack ne fait pas partie de votre flux, prenez une app tierce qui parle directement à l'API REST WordPress. Vous évitez complètement la dépendance à WordPress.com.
L'autre format que vous croiserez : HEIF et AVIF
HEIC est techniquement un format conteneur qui enveloppe des images HEIF. Vous verrez parfois des fichiers en .heif au lieu de .heic. WordPress 6.7 traite les deux pareil.
AVIF est un format plus récent qui prend de l'ampleur sur le web (c'est ce que Netflix et beaucoup de CDN utilisent pour livrer les images). WordPress a ajouté le support AVIF en 6.5. Quelques iPhones récents peuvent prendre des photos en AVIF, mais ce n'est pas encore le défaut.
Pour l'instant, HEIC est ce que vous gérerez 99 % du temps en uploadant des photos d'iPhone. Mais gardez AVIF dans le viseur. Il compresse encore mieux que HEIC et a un meilleur support multiplateforme.
AVIF sur iPhone 16 : ce qui arrive ensuite
L'iPhone 16 embarque un support AVIF complet à travers iOS 18 : Photos lit AVIF, Safari le rend en ligne, et la feuille de partage le traite comme un citoyen de première classe. L'appareil photo reste par défaut en HEIC, mais le pipeline de rendu et de décodage est désormais AVIF de bout en bout.
WordPress est prêt. La 6.5 a ajouté image/avif aux types MIME autorisés en mars 2024, et la 6.7 a élargi la logique de traitement pour que les fichiers AVIF génèrent des vignettes correctes. Si votre serveur a un build ImageMagick récent avec libavif, tout le pipeline marche sans configuration.
Pourquoi AVIF compte pour les éditeurs : il compresse environ 20 % plus serré que HEIC à qualité perçue équivalente, et 50 % plus serré que JPEG. Il marche dans tout navigateur moderne (Chrome, Firefox, Safari, Edge), contrairement à HEIC qui n'a jamais eu un support navigateur universel. Et il est libre de royalties grâce à AV1, là où HEIC repose sur l'écheveau de brevets HEVC.
Différence pratique : HEIC est un format de capture avec lequel on se bat à l'entrée, AVIF est un format de livraison qu'on sert aux visiteurs en sortie. La majorité des flux finissent avec des originaux HEIC depuis l'appareil photo, des intermédiaires JPEG ou AVIF dans la médiathèque, et de l'AVIF servi aux navigateurs via un CDN ou un plugin comme ShortPixel. Apple ne basculera probablement pas le défaut de l'appareil photo vers AVIF avant que ProRAW et Live Photos ne soient migrés, projet de plusieurs années. Optimisez maintenant la gestion HEIC entrante et laissez le CDN s'occuper d'AVIF à la livraison.
Ma recommandation
Si votre hébergement supporte HEIC (vérifiez dans Santé du site) et que vous êtes sous WordPress 6.7+, uploadez les fichiers HEIC directement. Profitez des poids réduits.
Si votre hébergement ne supporte pas HEIC, ou si vous gérez plusieurs sites sur des hébergeurs différents et n'avez pas envie de 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 l'appareil photo de votre iPhone pour JPEG juste parce que WordPress vous a embêté une fois. HEIC est le meilleur format. C'est l'outil d'upload qui doit s'adapter, pas vos réglages d'appareil photo.