Le caching : pourquoi votre site WordPress en a besoin
Sans cache, chaque visite sur votre site WordPress déclenche le même processus : le serveur exécute PHP, interroge la base de données MySQL, génère le HTML, et l’envoie au navigateur. Pour un article simple, ça peut représenter 20-50 requêtes SQL. Multipliez par 100 visiteurs simultanés et votre serveur rame.
Le caching stocke le résultat final (la page HTML générée) et la sert directement aux visiteurs suivants, sans repasser par PHP et MySQL. Résultat : un temps de chargement divisé par 5 à 10, et un serveur qui peut gérer beaucoup plus de trafic.
Les différents niveaux de cache
Le caching n’est pas une seule chose — c’est un système à plusieurs niveaux. Chaque niveau accélère une étape différente.
1. Cache navigateur (Browser Cache)
Le navigateur de votre visiteur stocke localement les fichiers statiques (CSS, JavaScript, images) pour ne pas les re-télécharger à chaque page.
Configuration via .htaccess :
# Cache navigateur - fichiers statiques
<IfModule mod_expires.c>
ExpiresActive On
# Images : cache 1 an
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
# CSS et JavaScript : cache 1 mois
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
# Polices : cache 1 an
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
# HTML : pas de cache (contenu dynamique)
ExpiresByType text/html "access plus 0 seconds"
</IfModule>
Quand vous modifiez un fichier CSS ou JS, WordPress ajoute automatiquement un paramètre de version (?ver=6.5) qui force le navigateur à charger la nouvelle version.
2. Cache page (Page Cache)
C’est le cache le plus impactant. Il stocke la page HTML complète générée par WordPress et la sert aux visiteurs suivants sans exécuter PHP.
Comment ça marche :
- Premier visiteur → WordPress génère la page normalement → le cache stocke le HTML résultant
- Visiteurs suivants → le serveur sert directement le fichier HTML stocké → pas de PHP, pas de MySQL
- Quand vous modifiez un article → le cache de cette page est invalidé → WordPress régénère au prochain visiteur
3. Cache objet (Object Cache)
Stocke les résultats des requêtes SQL fréquentes en mémoire RAM (Redis ou Memcached). Utile pour les sites avec beaucoup de contenu dynamique (forums, e-commerce, espaces membres) où le cache page ne peut pas tout couvrir.
4. Cache CDN (Content Delivery Network)
Distribue vos fichiers statiques sur des serveurs partout dans le monde. Le visiteur reçoit les fichiers depuis le serveur le plus proche de lui.
Crucial pour le Sénégal : Si votre hébergement est en France ou aux USA, la latence est de 150-300ms. Un CDN comme Cloudflare a des serveurs en Afrique qui réduisent cette latence à 30-50ms.
Plugin recommandé n°1 : WP Super Cache
Le plugin de cache le plus simple. Développé par Automattic (les créateurs de WordPress).
Installation et configuration
- Extensions → Ajouter → « WP Super Cache » → Installer et Activer
- Réglages → WP Super Cache
- Onglet « Easy » → Cochez « Caching On » → Mettre à jour le statut
Configuration avancée recommandée
- Onglet « Advanced » :
- Cochez « Cache hits to this website for quick access » (activé)
- Méthode de livraison : « Expert » (mod_rewrite) — le plus rapide car Apache sert les fichiers directement sans charger PHP
- Cochez « Compress pages » (compression gzip)
- Cochez « Don’t cache pages for known users »
- Cochez « Cache rebuild » (sert l’ancien cache pendant la régénération)
- Cliquez « Update Status » puis « Update Mod_Rewrite Rules »
Avantage : Gratuit, simple, fiable. Parfait pour les blogs et sites vitrines.
Inconvénient : Pas de minification CSS/JS intégrée, pas d’optimisation d’images.
Plugin recommandé n°2 : W3 Total Cache
Plus complet que WP Super Cache, avec plus d’options de configuration.
Configuration essentielle
- Performance → General Settings :
- Page Cache : Enabled, méthode « Disk: Enhanced »
- Minify : Enabled (attention, peut casser le CSS/JS — testez)
- Database Cache : Enabled, méthode « Disk »
- Object Cache : Enabled, méthode « Disk » (ou Redis si disponible)
- Browser Cache : Enabled
- Performance → Page Cache :
- « Cache front page » : coché
- « Cache feeds » : coché
- « Don’t cache pages for logged in users » : coché
- Performance → Browser Cache :
- « Set expires header » : coché
- « Set cache control header » : coché
- « Enable HTTP (gzip) compression » : coché
Plugin recommandé n°3 : LiteSpeed Cache
Si votre hébergeur utilise LiteSpeed (de plus en plus courant), c’est le meilleur choix. Il fonctionne au niveau du serveur web, pas de PHP, donc ultra-rapide.
Hébergeurs LiteSpeed populaires : Hostinger, A2 Hosting, Starter (hébergeur sénégalais), certains plans OVH.
Avantages par rapport aux autres plugins
- Cache au niveau serveur (le plus rapide possible)
- Optimisation d’images intégrée (WebP, compression, lazy load)
- Minification CSS/JS avec moins de risque de casse
- CDN QUIC.cloud gratuit inclus
- Optimisation de base de données intégrée
Cloudflare : le CDN gratuit indispensable
Cloudflare est un CDN + pare-feu + optimisation, avec un plan gratuit très généreux. Pour un site au Sénégal, c’est quasi obligatoire.
Pourquoi Cloudflare est crucial en Afrique de l’Ouest
- Réduction de latence : Cloudflare a des serveurs à Abidjan, Lagos et bientôt Dakar. Vos fichiers statiques sont servis depuis l’Afrique, pas depuis l’Europe
- Protection DDoS : Bloque les attaques automatiquement
- SSL gratuit : HTTPS sans configuration complexe
- Compression automatique : Minifie HTML, CSS et JS à la volée
Configuration Cloudflare pour WordPress
- Créez un compte sur cloudflare.com
- Ajoutez votre domaine
- Changez vos nameservers chez votre registrar (Cloudflare vous les indique)
- Règles de cache recommandées :
- Cache Level : Standard
- Browser Cache TTL : 1 month
- Always Use HTTPS : On
- Auto Minify : HTML, CSS, JavaScript
- Brotli : On
- Installez le plugin WordPress « Cloudflare » pour la purge automatique du cache quand vous publiez
Les pièges du caching WordPress
Pages qui ne doivent PAS être cachées
- Panier WooCommerce : Chaque utilisateur a un panier différent
- Page de compte : Contenu personnalisé par utilisateur
- Page de checkout : Données de paiement dynamiques
- Résultats de recherche : Différents à chaque requête
- Pages protégées par mot de passe : Le cache afficherait le contenu à tout le monde
La plupart des plugins de cache excluent automatiquement ces pages, mais vérifiez dans les réglages.
Cache et utilisateurs connectés
Ne cachez jamais les pages pour les utilisateurs connectés. La barre d’administration WordPress, les commentaires en attente, et le contenu personnalisé seraient incorrects. Cochez toujours « Don’t cache for logged-in users ».
Purger le cache après modification
Si vous modifiez un article et que l’ancienne version s’affiche encore :
- Purgez le cache du plugin (bouton « Purge Cache » dans la barre d’admin)
- Purgez le cache Cloudflare si utilisé
- Videz le cache de votre navigateur (Ctrl+Shift+Del)
- Testez en navigation privée pour vérifier
Mesurer l’impact du cache
Avant et après activation du cache, mesurez avec ces outils :
- Google PageSpeed Insights : Score mobile et desktop, TTFB, LCP
- GTmetrix : Temps de chargement complet, waterfall des requêtes
- Pingdom Tools : Temps de chargement depuis différentes locations
Métriques à surveiller
- TTFB (Time To First Byte) : Temps avant le premier octet reçu. Sans cache : 500ms-2s. Avec cache : 50-200ms. C’est la métrique la plus impactée par le cache page
- LCP (Largest Contentful Paint) : Temps d’affichage du plus grand élément visible. Objectif : < 2.5 secondes
- Poids de la page : La compression gzip/brotli réduit le poids de 60-80%
Configuration recommandée par type de site
Blog / site vitrine
WP Super Cache + Cloudflare gratuit. Simple, efficace, suffisant.
E-commerce WooCommerce
LiteSpeed Cache (si hébergeur compatible) ou W3 Total Cache + Cloudflare + Redis (object cache). Excluez les pages panier, checkout et compte.
Site à fort trafic (100k+ visites/mois)
Hébergement avec cache serveur intégré (Kinsta, WP Engine, ou Cloudways avec Varnish) + Cloudflare Pro + Redis. À ce niveau, le cache plugin est secondaire — c’est l’infrastructure qui prime.
Site avec contenu dynamique (forum, espace membres)
Object Cache (Redis) prioritaire + cache page sélectif (uniquement les pages publiques). Le cache page classique ne fonctionne pas pour le contenu personnalisé.
Checklist caching WordPress
- ☐ Plugin de cache page installé et activé
- ☐ Compression gzip ou brotli activée
- ☐ Cache navigateur configuré (expires headers)
- ☐ Cloudflare configuré (ou autre CDN)
- ☐ Pages dynamiques exclues du cache (panier, compte, checkout)
- ☐ Cache désactivé pour les utilisateurs connectés
- ☐ TTFB vérifié avec PageSpeed Insights (objectif < 200ms)
- ☐ Score mobile PageSpeed > 80
- ☐ Test en navigation privée après chaque modification importante