Si tu gères ton propre serveur et que tu utilises Nginx avec WordPress, tu peux drastiquement booster les performances de ton site sans aucun plugin, simplement grâce à un système de cache statique au niveau du serveur.
👉 Dans ce tuto technique, je t’explique pas à pas comment configurer un FastCGI Cache avec Nginx pour WordPress.
🔥 Pourquoi préférer un cache Nginx natif ?
Contrairement aux plugins comme WP Super Cache ou W3 Total Cache, le cache Nginx est géré directement au niveau du serveur, avant même que WordPress ne soit exécuté. Cela permet :
- 💨 Une réduction drastique du temps de réponse
- 🧠 Moins de charge serveur (PHP/MySQL ne sont pas sollicités)
- 🧩 Moins de dépendance aux plugins
- ✅ Une meilleure compatibilité avec des outils comme PageSpeed Insights, GTmetrix, etc.
🛠️ Pré-requis
- Serveur avec Nginx installé (Debian/Ubuntu recommandé)
- Accès root ou sudo
- WordPress fonctionnel (FPM-PHP obligatoire)
- Un fichier de config Nginx par site (vhost)
📁 1. Créer le dossier de cache
sudo mkdir -p /var/cache/nginx/wordpress
sudo chown -R www-data:www-data /var/cache/nginx/wordpress
🧾 2. Configurer le fastcgi_cache
dans le vhost
Voici un exemple de configuration à ajouter dans ton fichier /etc/nginx/sites-available/ton-site.conf
:
fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2 keys_zone=WORDPRESS:100m inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
Ajoute ensuite ces blocs dans ton server
(généralement à l’intérieur du location ~ \.php$
) :
set $no_cache 0;
# Ne pas cacher pour les connexions ou commentaires
if ($http_cookie ~* "comment_author|wordpress_logged_in|wp-postpass") {
set $no_cache 1;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 200 60m;
add_header X-FastCGI-Cache $upstream_cache_status;
# Garde les headers pour que WP fonctionne bien
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
⚠️ Adapte le chemin
fastcgi_pass
à ta version PHP (vérifie avecphp -v
).
📤 3. Purger le cache manuellement
Tu peux vider tout le cache avec :
sudo rm -rf /var/cache/nginx/wordpress/*
Automatise-le avec un script Bash ou une tâche Cron si nécessaire.
👤 4. Désactiver le cache pour les utilisateurs connectés
Déjà prévu dans la directive suivante :
if ($http_cookie ~* "wordpress_logged_in") {
set $no_cache 1;
}
Cela permet d’éviter les bugs d’admin (comme l’édition de pages avec du contenu mis en cache).
🧪 5. Tester si le cache fonctionne
Utilise curl
ou inspecte les headers HTTP :
curl -I https://ton-site.fr
Tu dois voir :
X-FastCGI-Cache: HIT
Après une purge ou une première visite, ce sera MISS
.
🚀 Résultat : un WordPress ultra-performant
Tu viens de mettre en place un système de cache ultra-léger, rapide et robuste. Résultat :
- ✅ Moins de 100 ms de temps de réponse TTFB
- ✅ Score Google PageSpeed amélioré
- ✅ Charge CPU/RAM réduite sur le serveur
🧠 Astuces bonus
- Pour vider automatiquement le cache à chaque mise à jour de contenu, tu peux utiliser un hook WordPress côté PHP avec une commande
exec()
vers le script de purge. - Combine cette config avec Redis Object Cache pour booster les requêtes MySQL.
- Active Brotli ou Gzip dans Nginx pour une meilleure compression des pages.
Laisser un commentaire