Optimiser WordPress sur un VPS
Optimiser WordPress sur un VPS – Guide technique Pixzo
Cet article décrit comment maximiser les performances de WordPress sur un VPS Pixzo, destiné aux administrateurs qui configurent eux-mêmes le serveur.
Prérequis
- Serveur : VPS Pixzo avec au minimum 2 Go de RAM et 2 cœurs CPU - Version de WP : WordPress 6.5 ou supérieur (vérifiez avec `wp core version`) - PHP : 8.1 ou 8.2 (vérifiez avec `php -v`) - Accès SSH avec droits root ou sudo - Serveur web : Nginx (recommandé) ou LiteSpeed - Optionnel : `wp-cli` (installez avec `curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar`)
Étapes
1. Optimisez le serveur web et la pile PHP
Utilisez Nginx pour de meilleures performances sur les fichiers statiques qu’Apache. Activez OPcache pour PHP 8.2.
Ouvrez `/etc/php/8.2/fpm/php.ini` et modifiez ces lignes :
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000Redémarrez PHP-FPM :
sudo systemctl restart php8.2-fpm
2. Configurez les workers PHP-FPM
Adaptez le nombre de workers aux ressources de votre VPS. Pour 2 Go de RAM et 2 cœurs : maximum 8 workers.
Modifiez `/etc/php/8.2/fpm/pool.d/www.conf` :
pm = dynamic
pm.max_children = 8
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4Redémarrez PHP-FPM :
sudo systemctl restart php8.2-fpm
3. Activez HTTP/2 dans Nginx
Ouvrez `/etc/nginx/nginx.conf` et ajoutez au bloc `http` :
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
}Vérifiez la configuration et redémarrez :
sudo nginx -t && sudo systemctl restart nginx
4. Installez la mise en cache des pages
Pour Nginx : utilisez WP Rocket (plugin) et configurez les paramètres de cache.
Installez WP Rocket via WP-admin et définissez dans Réglages > WP Rocket > Cache : - Activer la mise en cache : activé - Durée de vie du cache : 3600 secondes (1 heure)
Ou utilisez nginx-helper pour un cache côté serveur :
sudo apt install nginx-common
Ajoutez à `/etc/nginx/sites-available/your-site` :
set $cache_uri $request_uri;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public, immutable";
}Testez et redémarrez :
sudo nginx -t && sudo systemctl reload nginx
5. Configurez la mise en cache du navigateur
Ajoutez les en-têtes de cache ci-dessus à Nginx pour les fichiers statiques.
Dans le même fichier, sous `location ~* \.(jpg|jpeg|png|gif|ico|css|js)$`, ajoutez également :
add_header Cache-Control "public, immutable";
Rechargez Nginx.
6. Optimisez les images
Utilisez `optipng` et `jpegoptim` pour la réduction en masse :
sudo apt install optipng jpegoptim
find /var/www/html/wp-content/uploads -name "*.jpg" -exec jpegoptim --strip-all --max=85 {} \;
find /var/www/html/wp-content/uploads -name "*.png" -exec optipng -o7 {} \;Activez le support WebP via WP Rocket (paramètres sous Médias).
7. Nettoyez la base de données
Utilisez WP-Optimize :
wp plugin install wp-optimize --activate
wp db optimizeSupprimez les transients expirés et les spammeurs :
wp transient delete --all
wp comment delete $(wp comment list --status=spam --format=ids) --force8. Limitez les options autoloaded
Vérifiez la taille de l’autoload :
wp option list --autoload=yes --format=total_size
Si elle dépasse 1 Mo, trouvez et supprimez les options inutilisées :
wp option list --autoload=yes --format=json | grep -E '"option_name":"(.*)"' | head -20
wp option delete nom_option_inutiliséeVérification
Vérifiez la vitesse des pages avec un outil :
curl -o /dev/null -s -w "Time total: %{time_total}\n" https://votresite.be
Temps de chargement normal inférieur à 500 ms.
Vérifiez le statut d’OPcache PHP :
php -r "print_r(opcache_get_status());"
Vérifiez que `opcache_enabled` = true.
Problèmes fréquents
Problème : La mise en cache des pages ne fonctionne pas avec Nginx et WP Rocket. Solution : Vérifiez que le plugin nginx-helper est activé et configurez correctement le bloc de location du cache.
Problème : PHP-FPM plante après la configuration des workers. Solution : Réduisez `pm.max_children` à 4 et vérifiez la RAM : `free -h`.
Problème : Les images ne sont pas servies en WebP. Solution : Installez l’extension PHP Imagick : `sudo apt install php8.2-imagick` et redémarrez PHP-FPM.
Grâce à cette configuration, WordPress tourne sur votre VPS Pixzo sans requêtes de base de données superflues ni processus PHP inutiles. Quel est votre plus grand goulot d’étranglement en termes de performances ?