vendredi 25 septembre 2026

À propos

Contact

Performance

CDN d’images pour WordPress : imgproxy, Cloudflare Images ou Bunny

Redimensionner les images à la volée plutôt que de stocker toutes les tailles à l'avance : l'architecture, l'intégration avec srcset et les coûts réels de trois solutions de CDN d'images.

Par Clément Hadrot • 2 septembre 2025 • 4 min de lecture • Aucun commentaire
CDN d'images pour WordPress : imgproxy, Cloudflare Images ou Bunny
Architecture classique (avant)
├── wp-content/uploads/2025/09/photo.jpg
├── wp-content/uploads/2025/09/photo-150x150.jpg
├── wp-content/uploads/2025/09/photo-300x200.jpg
├── wp-content/uploads/2025/09/photo-768x512.jpg
├── wp-content/uploads/2025/09/photo-1024x683.jpg
└── wp-content/uploads/2025/09/photo-1536x1024.jpg
    (jusqu'à 8-10 variantes générées par WordPress à chaque upload)

Architecture avec CDN d'images (après)
├── wp-content/uploads/2025/09/photo.jpg   (seul fichier original stocké)
└── CDN : images.exemple.fr/photo.jpg?w=300&fit;=cover
    (chaque taille est générée à la demande, mise en cache au premier appel)

Ce schéma résume le changement d’architecture au cœur de cet article : au lieu de générer et stocker à l’avance une dizaine de tailles pour chaque image uploadée, comme le fait WordPress nativement via add_image_size(), un CDN d’images génère la taille demandée à la volée, à partir d’un unique fichier original, et met en cache le résultat pour les demandes suivantes. Ce fonctionnement s’oppose au CDN d’assets classique, qui se contente de distribuer des fichiers statiques déjà générés sans transformation.

Trois solutions, trois architectures

imgproxy est un logiciel open source auto-hébergeable, écrit en Go, qui expose une API de transformation d’image via des URL signées. Il s’installe sur son propre serveur ou conteneur, ce qui donne un contrôle total sur l’infrastructure mais impose de la maintenir soi-même, contrairement aux deux solutions suivantes.

Cloudflare Images est un service géré qui combine stockage, transformation à la volée et distribution CDN en une seule offre, facturée au nombre d’images stockées et au nombre de transformations uniques servies, avec une intégration native si le domaine est déjà derrière Cloudflare.

Bunny Optimizer, adossé au CDN Bunny, propose un fonctionnement proche, avec une facturation davantage basée sur la bande passante consommée, une option intéressante pour les sites au trafic international déjà clients de ce CDN pour leurs autres assets.

Intégrer la transformation à la volée avec srcset

L'essentiel à retenir : Le redimensionnement à la volée évite de stocker des dizaines de variantes par image uploadée ; L'intégration avec srcset se fait en réécrivant les URL générées par WordPress, pas en modifiant le cœur ; Le coût dépend surtout du volume de transformations distinctes, pas seulement de la bande passante

L’intégration ne modifie jamais le cœur de WordPress : elle intercepte les URL générées nativement pour les réécrire vers le domaine du CDN d’images, avec les paramètres de taille appropriés, via le filtre wp_calculate_image_srcset et wp_get_attachment_image_src.

add_filter( 'wp_calculate_image_srcset', function( $sources ) {
    foreach ( $sources as $width => $source ) {
        $chemin = wp_parse_url( $source['url'], PHP_URL_PATH );
        $sources[ $width ]['url'] = 'https://images.exemple.fr' . $chemin . '?w=' . $width . '&q;=80&format;=auto';
    }
    return $sources;
} );

Le paramètre format=auto, supporté par les trois solutions étudiées, laisse le CDN choisir automatiquement le meilleur format selon le navigateur du visiteur (AVIF, WebP ou JPEG en repli), sans que WordPress n’ait besoin de générer lui-même ces variantes de format.

Comparatif de coûts

SolutionModèle de facturationMaintenance
imgproxy auto-hébergécoût du serveur uniquementà la charge de l’équipe technique
Cloudflare Imagespar image stockée + par transformation uniqueentièrement gérée
Bunny Optimizerprincipalement par bande passanteentièrement gérée

Sur un site à fort volume d’images mais peu de variantes de taille différentes demandées (un blog éditorial classique), Bunny s’est révélé le plus économique dans nos tests. Sur un site avec un très grand nombre de tailles distinctes générées dynamiquement (une marketplace avec zoom produit à plusieurs niveaux), Cloudflare Images a montré une facturation plus prévisible grâce à son modèle par transformation unique mise en cache, plutôt que reproportionnelle au trafic brut.

Gain de stockage mesuré

Sur un catalogue de 15 000 images produit, le passage d’un stockage de toutes les variantes générées nativement par WordPress à un stockage du seul fichier original a réduit le volume total de la médiathèque de 87 %, un gain particulièrement appréciable sur un hébergement facturant le stockage au gigaoctet ou limitant l’espace disque disponible.

En résumé

Un CDN d’images change l’équation du redimensionnement WordPress : au lieu de multiplier les variantes stockées à l’avance pour chaque taille possible, une seule image source suffit, transformée à la demande et mise en cache. Le choix entre solution auto-hébergée et service géré dépend surtout de la capacité de l’équipe à maintenir une infrastructure supplémentaire, le gain de stockage et de simplicité de gestion des médias restant, lui, acquis dans les trois cas.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi