vendredi 25 septembre 2026

À propos

Contact

Performance

Miniatures générées à la volée : désactiver les tailles WordPress inutilisées

Un thème hérité génère encore huit tailles d'image par upload alors que trois suffisent. Comment désactiver les tailles inutiles et gagner du disque et du temps.

Par Clément Hadrot • 15 février 2021 • 4 min de lecture • Aucun commentaire
Miniatures générées à la volée : désactiver les tailles WordPress inutilisées

En reprenant la maintenance d’un site vitrine pour une chaîne de magasins de bricolage, la première chose qui saute aux yeux dans la médiathèque, c’est la taille du dossier uploads : plus de 40 Go pour un site qui ne compte pourtant que quelques centaines d’articles illustrés. L’explication tient en un chiffre : chaque image envoyée génère huit fichiers différents, alors que l’inspection du thème actif révèle que trois tailles seulement sont réellement utilisées dans les templates.

Ce genre de dérive s’installe progressivement, refonte après refonte, sans que personne ne pense à nettoyer les déclarations de tailles d’image héritées des versions précédentes du thème. Le correctif est simple une fois le diagnostic posé, mais il demande de la rigueur pour ne rien casser côté affichage.

Recenser les tailles réellement enregistrées

WordPress enregistre par défaut quatre tailles : thumbnail, medium, medium_large et large, en plus de l’image originale. Le thème examiné ici en ajoutait cinq supplémentaires via add_image_size(), dont deux correspondaient à d’anciennes maquettes de page d’accueil abandonnées depuis deux refontes. La commande WP-CLI suivante permet de lister toutes les tailles enregistrées sur l’installation :

wp eval 'global $_wp_additional_image_sizes; print_r( $_wp_additional_image_sizes );'

Croiser cette liste avec une recherche de the_post_thumbnail( et wp_get_attachment_image( dans les fichiers du thème a permis d’identifier lesquelles de ces tailles étaient effectivement appelées quelque part dans le code.

Désactiver les tailles inutilisées à la source

Le filtre intermediate_image_sizes_advanced permet de retirer des tailles de la liste utilisée lors de la génération des miniatures, sans toucher à la déclaration elle-même dans le thème, ce qui évite de casser un appel existant à une taille encore utilisée ailleurs :

add_filter( 'intermediate_image_sizes_advanced', function ( $tailles ) {
    unset( $tailles['ancien-hero-accueil'] );
    unset( $tailles['ancien-bandeau-categorie'] );
    unset( $tailles['medium_large'] );
    return $tailles;
} );
L'essentiel à retenir : WordPress génère par défaut plusieurs tailles à chaque envoi d'image ; Un thème hérité peut en ajouter cinq ou six de plus, souvent sans usage réel ; Le filtre intermediate_image_sizes_advanced retire celles qui ne servent pas

Régénérer sans dupliquer l’historique

Ce filtre n’agit que sur les futurs envois d’images. Pour les images déjà présentes, deux choix étaient possibles : laisser les anciennes tailles orphelines en place, en acceptant qu’elles occupent de l’espace disque sans être régénérées, ou passer par la commande WP-CLI regenerate fournie par une extension dédiée pour reconstruire proprement la médiathèque. Sur ce projet, la deuxième option a été retenue, avec une commande limitée aux tailles concernées pour éviter un traitement trop long sur plusieurs milliers d’images :

wp media regenerate --only-missing --image_size=thumbnail,medium,large

Un point de vigilance : la commande regenerate ne supprime pas d’elle-même les anciens fichiers devenus orphelins après retrait d’une taille. Un script de nettoyage complémentaire a parcouru le dossier uploads à la recherche de fichiers dont le suffixe de dimension ne correspondait plus à aucune taille enregistrée.

Les gains mesurés

  • Réduction d’environ 35 % de l’espace disque occupé par la médiathèque après nettoyage des anciennes tailles orphelines.
  • Temps de traitement d’un envoi d’image en médiathèque réduit d’environ 40 %, la génération de miniatures étant l’étape la plus coûteuse en CPU lors d’un import en masse.
  • Sauvegardes du site plus rapides et moins volumineuses, un bénéfice secondaire apprécié par l’équipe d’exploitation.

Ce qu’il faut vérifier avant de généraliser cette approche

Avant de retirer une taille d’image sur un site en production, il est indispensable de vérifier qu’aucune extension tierce ne l’utilise en arrière-plan, notamment pour générer des vignettes dans des courriels automatiques ou des flux RSS personnalisés. Sur ce projet, une extension d’export de flux marchand s’appuyait justement sur une taille que l’équipe s’apprêtait à supprimer, ce qui a été repéré à temps grâce à une recherche exhaustive dans le code avant application du filtre en production.

Pour aller plus loin

Ce nettoyage ne traite volontairement pas la question du format des images elles-mêmes : les fichiers restaient au format JPEG classique, une conversion vers un format plus compact étant un chantier distinct mené séparément. Réduire le nombre de tailles générées reste néanmoins une action à faible risque et à effet immédiat, à envisager systématiquement lors d’un audit de performance d’un site WordPress ancien.

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