Réduire la taille de ses images en force

Voilà la problématique mes client.e.s ne compressent pas les images avant de les mettre sur leur site WordPress. Du coup au bout de quelque temps ils viennent me voir en se plaignant que leur site est trop lent. Une photo d’iphone est lourde.

Le problème c’est le download de tout ça et l’upload qui doit remettre tous les fichiers aux bons endroits avec le même nom. Du coup j’ai fait un setup pour gérer ça. J’ai un accès ssh à mes fichiers.

Pour gérer tout ça j’ai installé imagemagick https://imagemagick.org/

  1. faire un miroir du dossier upload dans votre dossier d’installation WordPress vous trouverez : wp-content/uploads c’est dans ce dossier que WP met tous les fichiers médias. Pour faire ce miroir j’utilise rsync en limitant la synchronisation aux fichiers png, Jjpg et jpeg.
cd my_working_folder
rsync -e ssh -acv --include="*/" --include="*.jpeg" \
--include="*.jpg" --include="*.png" --exclude="*" \
login@ssh-ftp-server:site-folder/wp-content/uploads ./
  1. Je fais ensuite tourner deux commandes sur les fichiers avec imagemagick. Ici on réduit la taille des fichiers au maximum 1024px sur le coté le plus long et réduit la qualité à 85%.
magick mogrify -resize $size *
magick mogrify -strip -quality $quality *

Je me suis fais un petit scipt pour faciliter un peu les choses que je vous laisse faire un find pour éxecuter ça la ou il faut :

cd my_working_folder
find . -type d -exec ~/bin/img-optimization.sh ./ "{}" \;

3. On re-upload avec rysnc

cd my_working_folder
rsync -e ssh -acv --include="*/" --include="*.jpeg"\
 -include="*.jpg" --include="*.png"\
 --exclude="*" ./ login@ssh-ftp-server:site-folder/wp-content/uploads

J”ai fait un repo avec deux de mes scripts :

https://github.com/needsone/pict4wp/

Aller à la barre d’outils