Si vous êtes propriétaire d’un site WordPress, vous avez probablement croisé le message suivant dans l’onglet « État de santé du site » : « Vous devriez utiliser un cache objet persistant ». Ce message, bien qu’il ne soit pas critique, souligne une opportunité d’améliorer les performances de votre site. Dans cet article, nous allons explorer pourquoi ce message apparaît, ce qu’est un cache objet persistant et comment Redis peut être la solution idéale pour accélérer votre site WordPress.
Pourquoi ce message apparaît-il dans WordPress ?
WordPress utilise un mécanisme appelé WP_Object_Cache pour stocker temporairement des données fréquemment utilisées, comme les résultats des requêtes SQL ou les métadonnées des articles. Par défaut, ce cache est non persistant, ce qui signifie qu’il est effacé à chaque chargement de page ou redémarrage du serveur. Cela oblige WordPress à reconstruire ces données à chaque requête, augmentant ainsi la charge sur la base de données et le temps de réponse.
Le message « Vous devriez utiliser un cache objet persistant » apparaît pour vous inciter à activer une solution qui conserve ces données en mémoire entre les chargements de pages. Cela permet de réduire considérablement les requêtes répétées à la base de données et d’accélérer votre site.
Redis : Une solution puissante pour le cache objet persistant
Redis est un système open source de gestion de bases de données clé-valeur en mémoire. Il est extrêmement rapide et idéal pour stocker des données temporaires comme celles générées par le cache objet de WordPress. Contrairement aux solutions traditionnelles comme Memcached, Redis offre une plus grande flexibilité et peut gérer des structures de données complexes.
Avantages d’utiliser Redis avec WordPress :
- Réduction des temps de chargement : Les objets mis en cache sont récupérés directement depuis la mémoire vive (RAM), beaucoup plus rapide que les requêtes SQL.
- Diminution de la charge serveur : Moins de requêtes vers la base MySQL signifie une meilleure gestion des ressources.
- Amélioration de l’expérience utilisateur : Un site plus rapide réduit le taux de rebond et améliore le référencement SEO.
Comment installer et configurer Redis sur votre site WordPress
Étape 1 : Installer Redis sur votre serveur
- Connectez-vous à votre serveur via SSH.
- Installez Redis et l’extension PHP correspondante :
sudo apt update
sudo apt install redis-server php-redis -y
- Assurez-vous que Redis est actif :
sudo systemctl enable redis-server
sudo systemctl start redis-server
redis-cli ping
Si tout fonctionne, vous devriez voir la réponse : pong.
Étape 2 : Installer le plugin Redis Object Cache
- Connectez-vous à l’administration WordPress.
- Allez dans Extensions > Ajouter, recherchez Redis Object Cache, puis installez-le et activez-le.
Étape 3 : Configurer wp-config.php
Pour éviter les conflits entre les caches des différents sites, ajoutez les configurations suivantes dans le fichier « wp-config.php » de chaque site, juste avant la ligne /* That’s all, stop editing! Happy blogging. */ .
Exemple de configuration pour un site :
define('WP_REDIS_HOST', '127.0.0.1'); // Adresse du serveur Redis
define('WP_REDIS_PORT', 6379); // Port par défaut de Redis
define('WP_REDIS_PASSWORD', 'votre_mot_de_passe_redis'); // Si configuré
define('WP_REDIS_DATABASE', 0); // Base de données Redis (0 à 15)
define('WP_CACHE_KEY_SALT', 'site.com_'); // Préfixe unique pour ce site
define('WP_REDIS_TIMEOUT', 1); // Timeout des connexions Redis (en secondes)
define('WP_REDIS_READ_TIMEOUT', 1); // Timeout des lectures Redis (en secondes)
Points importants :
- Base de données Redis (WP_REDIS_DATABASE) : Dans le cas où vous gérez plusieurs sites sur un même serveur, utilisez une base différente pour chaque site (par exemple, 0 pour le premier site, 1 pour le second, etc.). Redis prend en charge jusqu’à 16 bases par défaut (configurable dans /etc/redis/redis.conf).
- Préfixe unique (WP_CACHE_KEY_SALT) : Ajoutez un préfixe unique basé sur le domaine ou l’identifiant du site pour éviter tout chevauchement des clés.
Exemple pour plusieurs sites :
- Site 1 (site1.com):
define('WP_REDIS_HOST', '127.0.0.1'); // Adresse du serveur Redis
define('WP_REDIS_PORT', 6379); // Port par défaut de Redis
define('WP_REDIS_PASSWORD', 'votre_mot_de_passe_redis'); // Si configuré
define('WP_REDIS_DATABASE', 0);
define('WP_CACHE_KEY_SALT', 'site1.com_');
define('WP_REDIS_TIMEOUT', 1); // Timeout des connexions Redis (en secondes)
define('WP_REDIS_READ_TIMEOUT', 1); // Timeout des lectures Redis (en secondes)
- Site 2 (site2.com) :
define('WP_REDIS_HOST', '127.0.0.1'); // Adresse du serveur Redis
define('WP_REDIS_PORT', 6379); // Port par défaut de Redis
define('WP_REDIS_PASSWORD', 'votre_mot_de_passe_redis'); // Si configuré
define('WP_REDIS_DATABASE', 1);
define('WP_CACHE_KEY_SALT', 'site2.com_');
define('WP_REDIS_TIMEOUT', 1); // Timeout des connexions Redis (en secondes)
define('WP_REDIS_READ_TIMEOUT', 1); // Timeout des lectures Redis (en secondes)
Étape 4 : Tester la configuration
Retournez sur votre administration wordpress :
- Rendez-vous dans Réglages > Redis et cliquez sur Enable Object Cache.
- Vérifiez que le statut indique Connected.
- Testez votre site en naviguant sur plusieurs pages pour vous assurer qu’il fonctionne correctement.
Optimisation avec Redis
Pour maximiser les performances, configurez Redis pour limiter son utilisation mémoire et gérer efficacement les clés expirées :
- Ouvrez le fichier /etc/redis/redis.conf :
sudo nano /etc/redis/redis.conf
- Ajoutez ou modifiez les lignes suivantes :
maxmemory 512mb # Limite mémoire (à ajuster selon vos ressources)
maxmemory-policy allkeys-lru # Politique d'éviction des clés les moins utilisées
- Redémarrez Redis :
sudo systemctl restart redis-server
Optimisations complémentaires avec Redis
Configurer Redis pour gérer plusieurs bases
Redis utilise par défaut jusqu’à 16 bases (indexées de 0 à 15). Si vous avez besoin de plus, modifiez /etc/redis/redis.conf :
databases 16
Activer la persistance des données (optionnel)
Pour éviter la perte des données en cas d’arrêt du serveur, activez la persistance dans /etc/redis/redis.conf. Cela permet à Redis d’écrire les changements dans un fichier journal.
appendonly yes
Restreindre l’accès à Redis
Par défaut, Redis écoute sur 127.0.0.1. Assurez-vous que cette configuration est maintenue dans /etc/redis/redis.conf :
bind 127.0.0.1 ::1
Configurer un mot de passe pour Redis (optionnel mais recommandé)
Ajoutez un mot de passe sécurisé dans /etc/redis/redis.conf en décommentant et modifiant cette ligne :
requirepass votre_mot_de_passe_redis
Après avoir fait les modifications dans le fichier conf, redémarrez ensuite Redis.
sudo systemctl restart redis-server
Redis et autres solutions de mise en cache
Redis est particulièrement utile pour les sites dynamiques ou ceux avec beaucoup d’interactions utilisateur (e-commerce, forums, etc.). Cependant, il peut être combiné avec un plugin comme WP Fastest Cache ou WP Rocket pour optimiser également le frontend en générant des pages HTML statiques.
Conclusion
Activer un cache objet persistant avec Redis est une étape essentielle pour améliorer les performances de votre site WordPress, surtout si vous voyez apparaître le message « Vous devriez utiliser un cache objet persistant ». En réduisant la charge sur votre base de données et en accélérant le chargement des pages, Redis offre une solution puissante et fiable pour répondre aux exigences modernes en matière de vitesse et d’expérience utilisateur.
Alors n’attendez plus ! Mettez en place Redis dès aujourd’hui et profitez d’un site rapide, performant et prêt à accueillir vos visiteurs dans les meilleures conditions possibles.