WordPress consomme bcp d'inodes dans wp-content/uploads, comment réduire cela ?

Démarré par MassiveHoster, Déc 02, 2024, 01:19 PM

« précédent - suivant »

MassiveHoster

Il est possible que vos sites WordPress consomment une quantité considérable d'inodes. Une consommation anormale en regard de l'utilisation réelle faite de vos sites. Autrement, un petit site même modeste qui consommerait des centaines de milliers d'inodes.

Cela peut arriver par exemple lorsque les images contenues dans /wp-content/uploads/* sont dupliquées en de nombreux formats qui se retrouvent pour la plupart inutilisés.

  • Comment réduire le nombre de formats d'images générés par WordPress pour ne conserver que les formats réellement utiles et utilisés ?
  • Quelle méthodes utiliser pour supprimer les formats et images inutiles et inutilisés ?
  • Existe-t-il des plugins qui peuvent aider à mieux gérer les formats d'images et thumbnails pour réduire ma consommation ?

C'est ce que nous allons découvrir au travers de ce tutoriel.

Pour réduire le nombre de formats d'images générés par WordPress et conserver uniquement ceux qui sont réellement utiles, vous pouvez suivre plusieurs approches que nous détaillons ci-dessous. Mais d'abord, il vous sera utile de confirmer si les répertoires problématiques sont ceux liés à vos images envoyées via WordPress. 

1. Comment détecter les répertoires qui sont très consommateurs d'inodes ?

Avant de pouvoir nettoyer certains fichiers et répertoires, il est évidemment important de détecter quels sont les répertoires qui sont très consommateurs d'inodes sur votre espace d'hébergement web. Pour cela, rendez-vous sur ce 2e tutoriel où vous découvrirez une méthode simple dénicher les répertoires les plus consommateurs d'inodes, étape par étape.


2. Obtenir la liste de toutes les "tailles d'images" actuellement configurées dans votre site WordPress

Des plugins comme Regenerate Thumbnails ou Simple Image Sizes vous permettront d'obtenir la liste de toutes les "image sizes" de votre site, comme vous pouvez le voir sur les captures suivantes.

Tailles d'images détectés par Regenerate Thumbnails (aperçu) :



Comme vous l'aurez compris, ce plugin a aussi l'énorme avantage de vous montrer les déclinaisons d'images (image sizes) qui sont actives (ou qui sont toujours actives suite à leurs désactivations).

Tailles d'images détectés par  Simple Image Sizes (aperçu) :



Les tailles entourées d'un cadre sont celles qui ont été ajoutées, non pas par WordPress, mais pas un thème ou un plugin que vous avez installé et que vous avez pu abandonner plus tard.

De même, toutes les tailles créées par vos thèmes et vos plugins ne sont pas nécessairement utilisées par ces thèmes et ces plugins. Dans ce cas, ces nombreuses images sont donc générées et hébergées pour rien.

3. Comment définir quelles "tailles d'images" doivent être désactivées / supprimées ?

Déterminer quelles tailles d'images sont effectivement utilisées ou non nécessitera plusieurs tests et vérifications.

  • Par exemple, vous pouvez désactiver certaines "image sizes", puis ensuite, créer un article avec thumbnail et vérifier votre page "Blog" pour vous assurer qu'il n'y a pas d'images "404 Not found". Pareil pour les articles en question où l'on retrouve souvent un module "Articles sur le même sujet" où des tailles d'images secondaires peuvent être utilisées.
  • Vous pouvez aussi créer un produit eCommerce avec images et vérifier que votre "Page Produit" contient toutes les images souhaitées.

Aussi, il vous sera souvent utile de faire un "Clic droit" sur vos images > "Copier l'adresse de l'image" (ou inspecter votre code source), pour vérifier les URLs complètes des images afin de déterminer les déclinaisons à ne pas désactiver / supprimer.

À noter : la taille d'image "Large" ("Grande" en français) native de WordPress est souvent utilisée pour les images intégrées dans les articles de blog. C'est la taille par défaut sélectionnée lorsque vous insérez une image dans vos articles de blog.

Il s'agit d'un vrai travail de maintenance basé sur la vérification fine de ce qu'il se passe sur votre site. Les images ne sont pas uniquement visuelles. Elles ont aussi une adresse URL propre incluse dans votre code source.

Néanmoins, ce travail en vaut la peine si vous ne désirez pas consommer inutilement vos quotas d'inodes.


4. Configurer les tailles d'image dans les Réglages des Médias de WordPress

Si vous désirez désactiver certains "image sizes" natives au cœur de WordPress, rendez-vous dans le Tableau de bord WordPress, puis dans "Réglages" > "Médias".
Ici, vous pouvez définir les tailles d'image que WordPress génère automatiquement.
Si certaines tailles ne sont pas nécessaires, vous pouvez les définir à zéro pour éviter leur génération future.

Veuillez noter que les tailles "thumbnail", "medium" et "large" sont les tailles d'images par défaut ajoutées par WordPress.

Le plus souvent, vous voudrez désactiver (les tailles d'images) et supprimer (les images générées) pour des déclinaisons superflues qui ont été ajoutées, le plus souvent par des thèmes installés précédemment, ou parfois par des plugins que vous n'utilisez plus. Celles listées précédemment au point 2.

Comment désactiver les déclinaisons d'images inutiles (issues d'anciens thèmes ou plugins) grâce à un plugin ?

Des plugins comme Disable Media Sizes ou Perfect Images peuvent aussi s'avérer utiles pour désactiver les tailles d'images générées par vos thèmes et d'autres plugins.

Ensuite, après avoir ajusté les réglages et utilisé les plugins, il sera important de nettoyer les anciennes images et leurs tailles inutiles pour libérer des inodes, et ce, grâce à un plugin tel que Regenerate Thumbnails.

5. Désactiver les tailles d'image inutiles via le code source (functions.php)

Si vous êtes à l'aise avec le code, sachez que vous pouvez forcer la désactivation de certaines tailles d'images via votre fichier functions.php (/wp-content/themes/Your_Theme/functions.php). Pour cela, vous pouvez ajouter des filtres PHP pour désactiver les tailles d'image inutiles en vous inspirant de ces 2 différentes approches.

NB : les "tailles d'images" à désactiver et conserver dépendent vraiment de votre thème WordPress. Les codes fournis ci-dessous ne devraient pas être utilisés tels quels. Il s'agit d'exemples à adapter.
Vous devriez désactiver les "tailles d'images" qui ne sont pas (ou plus) utilisées par votre site, grâce à la liste obtenue précédemment avec des plugins tels que "Regenerate Thumbnails" ou "Simple Image Sizes".


remove_unused_image_sizes (RECOMMANDÉ) :

Cela aura pour effet de désactiver certaines tailles d'images pour les générations futures et ne conserver QUE les déclinaisons mentionnées (dans cet exemple, 'thumbnail', 'medium' et 'large'). Bien sûr, ce code est à adapter avec les noms des déclinaisons qui sont réellement utilisées dans votre frontend. C'est-à-dire, les "image sizes" que vous désirez conserver.

function remove_unused_image_sizes() {
    $allowed_sizes = array( 'thumbnail', 'medium', 'large' );
    $registered_sizes = get_intermediate_image_sizes();
    foreach ( $registered_sizes as $size ) {
        if ( ! in_array( $size, $allowed_sizes ) ) {
            remove_image_size( $size );
        }
    }
}
add_action('init', 'remove_unused_image_sizes');

Alternativement, vous pourriez utiliser cette approche inverse...

remove_default_image_sizes :

À l'inverse de la fonction précédente, ce code a pour but de désactiver certaines déclinaisons mentionnées explicitement ci-dessous. Les déclinaisons mentionnées explicitement ci-dessous devraient être désactivées. Soyez bien sûr que la variable est bien orthographiée. 

function remove_default_image_sizes($sizes) {
    unset($sizes['thumbnail']); // Désactiver la taille 'thumbnail'
    unset($sizes['medium']); // Désactiver la taille 'medium'
    unset($sizes['large']); // Désactiver la taille 'large'
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_image_sizes');

Pensez à tester que la désactivation est bien effective !

Pour cela, rien de plus simple. Il vous suffit de téléverser n'importe quelle image dans votre Bibliothèque des Médias WordPress et de vérifier via le "Gestionnaire de Fichiers" de votre hébergement (File Manager) ou via "FTP", dans le répertoire /wp-content/uploads/$year/$month/ que l'image a été déclinée uniquement dans les formats que vous désiriez conserver.

Enfin, pour réduire votre consommation d'inodes de façon significative, il vous faudra utiliser un plugin de régénération des images de WordPress tel que Regenerate Thumbnails ou Force Regenerate Thumbnails cités au point 6.

6. Utiliser un plugin pour nettoyer les "tailles d'images" désactivées

Il existe plusieurs plugins qui peuvent vous aider à mieux gérer les formats d'images et à réduire la consommation d'inodes.

ATTENTION : Avant d'utiliser un plugin de nettoyage d'images quel qu'il soit, il est important de réaliser une SAUVEGARDE complète et fiable de l'ensemble de votre site (fichiers et base de données), à stocker sur 2 emplacements (Clé USB, Disque dur, Service Cloud comme Google Drive ou Dropbox, etc).

Voici quelques plugins qui peuvent s'avérer utiles.


Ce plugin vous permet de régénérer les miniatures pour vos images. Vous devriez l'utiliser après avoir modifié les réglages des tailles d'image (comme expliqué précédemment au point 4), pour supprimer les tailles inutiles.

Alternativement, le plugin Force Regenerate Thumbnails peut être utile pour régénérer les formats d'images en ne conservant que les "image sizes" actuellement utilisés par votre site WordPress.

Une fois le choix des "tailles d'images" à désactiver réalisé ; et une fois la désactivation des déclinaisons d'images paramétré via un plugin ou votre code source (functions.php), il vous sera nécessaire de regénérer les déclinaisons d'images de votre site WordPress, avec suppression des anciennes images associées aux "tailles" désactivées.

Pour supprimer les déclinaisons inutiles lors de la regénération, veillez à cocher l'option suivante :

« Delete thumbnail files for old unregistered sizes in order to free up server space. This may result in BORKEN IMAGE in your posts and pages »



Traduction :

« Supprimez les fichiers d'images pour les anciennes tailles non enregistrées afin de libérer de l'espace serveur. Cela peut entraîner des IMAGES CASSÉES dans vos articles et pages »

Nous donc insistons donc sur l'importance de bien définir quelles "tailles d'images" doivent être désactivées / supprimées, pour éviter les images cassées.

___________


Ce plugin analyse votre bibliothèque de médias pour identifier et supprimer les fichiers inutilisés, y compris les images et leurs différentes tailles.

ATTENTION :
Une sauvegarde complète de votre site et des vérifications rigoureuses devront être réalisées.

Ces plugins peuvent vous aider à identifier et supprimer les déclinaisons d'images et les images réelles présentes sur votre hébergement web. Autrement dit, des images qui ne sont pas utilisées réellement par votre site.

7. Éviter d'utiliser les formats WebP ou AVIF avec sauvegarde des images originales

Des plugins comme Imagify ou WebP Express permettent de compresser et de convertir vos images au format WebP ou AVIF, offrant de meilleures performances pour le chargement des pages.

Cependant, un problème courant pour votre consommation d'inodes est que ces plugins proposent souvent de sauvegarder les déclinaisons originales des images (png, jpg, etc.) en parallèle des fichiers WebP/AVIF générés.

Résultat : chaque fichier image se retrouve en double, ce qui double la consommation d'inodes de vos images.

Pour soulager votre quota d'inodes et éviter de surcharger vos quotas, 2 solutions opposées s'offrent à vous :

  • Renoncer au format WebP/AVIF : si ces formats ne sont pas essentiels à votre site, conserver uniquement les formats originaux (png, jpg) peut grandement réduire le nombre d'inodes utilisés et vous éviter de passer à un plan d'hébergement supérieur ou souscrire à un quota d'inodes supplémentaire.
  • Ne pas sauvegarder les originaux (WebP seulement) : si vous souhaitez garder le WebP et que ce format vous satisfait, vous pourriez configurer votre plugin de compression pour qu'il remplace directement les images originales, sans sauvegarder les formats jpg et png.
    Attention toutefois :
    cela signifie que le format original sera définitivement supprimé, une décision qui doit être mûrement réfléchie ! D'ailleurs, évitez ce choix pour le format AVIF, car celui-ci reste actuellement non compatible avec certaines solutions tierces. Il pourrait être très problématique d'être bloqué sur le format AVIF sans possibilité de retour en arrière. 

Vous n'arrivez rien compris ? On résume la procédure en quelques mots...

Bien qu'établir la liste des tailles utilisées puisse prendre un peu de temps, ce n'est pas si complexe que ça, une fois la logique comprise.

Pour faire court (et dit autrement), il vous suffit principalement d'ouvrir chacun de vos différents templates :

  • accueil du site
  • accueil du blog
  • catégorie d'articles
  • page d'article
  • accueil de la boutique
  • liste de produits (catégorie de produit)
  • page de produit (fiche eCommerce)
  • etc

Ensuite, survolez brièvement vos pages et vérifiez les tailles d'images qui sont utilisées pour chaque image de ces templates.

Par exemple, si vous utilisez le thème Divi, on peut voir ci-dessous que :

  • la taille d'image pour la Vignette d'aperçu d'Article de la page Blog est 400x250



  • la taille d'image pour les Vignettes de Variations de Produits WooCommerce est 100x100



  • et ainsi de suite

Pour rappel : la taille d'image "Large" ("Grande" en français) native de WordPress est souvent utilisée pour les images intégrées dans les articles de blog. C'est la taille par défaut sélectionnée lorsque vous insérez une image dans vos articles de blog.

Une fois tout cela compris, il suffit de...

  • noter les "tailles" réellement utilisées sur vos différents templates
  • > désactiver les tailles inutiles
  • > > regénérer enfin vos images avec suppression des anciennes images de déclinaisons désactivées (option "Delete thumbnail files for old unregistered sizes" dans "Regenerate Thumbnails")

Pour vérifier directement l'effet de votre nettoyage...

Après désactivation / regénération, vous pourrez immédiatement vérifier si des déclinaisons ont été supprimées en ouvrant vos dossiers médias. Par exemple : /wp-content/uploads/2025/01/ et ainsi de suite.

En appliquant rigoureusement cette méthode, vous devriez pouvoir réduire efficacement le nombre de formats d'images générés, et par conséquent, optimiser l'utilisation des inodes sur votre site WordPress.

Vous voilà expert en nettoyage d'images en vue de réduire votre consommation d'inodes !

En optant pour l'une de ces stratégies, vous pouvez réduire efficacement la pression sur vos limites d'inodes et éviter de devoir souscrire à un plan d'hébergement plus coûteux ou acheter des quotas supplémentaires.
Rappel important : ce forum est public, veuillez donc ne pas partager de mots de passe ou d'autres informations confidentielles.
Guide pour bien débuter - @MassiveHoster sur Twitter (X)