Les pages ne sont pas mises en cache ou les optimisations ne fonctionnent pas

Par défaut, WP Rocket fournit des pages mises en cache et optimisées pour les visiteurs, sauf si vous êtes en train de visiter :

  • Des pages en tant qu'utilisateur connecté, dans ce cas, vous devriez activer le Cache utilisateur, vous déconnecter de WordPress ou visiter le site en utilisant une fenêtre incognito.
  • Des pages avec des chaînes de requête dans leur URL (Exemple : yourdomain.com/?your-query-string), pour lesquelles vous devrez visiter les pages sans chaînes de requête ou utiliser l'option Cacher les Query String(s).
  • Les page Panier, paiement, et mon compte de ces plugins e-commerce.
  • Quand une page est visitée pour la première fois, et un plugin avec cookie obligatoire compatible (en anglais) est activé. Une fois que le cookie obligatoire est défini, WP Rocket servira le cache lors des visites suivantes.

Si vous êtes sur un hébergement spécialisé WordPress (Kinsta, WP Engine...), la mise en cache des pages peut être désactivée par défaut. Veuillez consulter notre doc sur les hébergeurs notre doc sur les hébergeurs à ce sujet. Les autres optimisations doivent encore être appliquées et les conseils ci-dessous seront toujours valables.

Si vous pensez que WP Rocket ne met pas vos pages en cache ou ne minifie pas vos fichiers CSS et JS (après avoir activé ces options), il se peut que les conditions minimales pour que le plugin fonctionne ne soient pas remplies. Il se peut aussi que vous ayez déjà installé d'autres plugins de mise en cache, et même si vous les avez supprimés via le tableau de bord WordPress, ils ont laissé des fichiers et leur configuration derrière eux.

Dans cet article

Permissions en écriture

Pour fonctionner correctement, WP Rocket doit pouvoir créer et écrire dans certains fichiers et dossiers de votre installation WordPress. Les fichiers et dossiers suivants sont associés à WP Rocket ou modifiés par WP Rocket :

{dossier racine wordpress}
┣━.htaccess
┣━wp-config.php
┗━wp-content
  ┣━advanced-cache.php
  ┣━cache
  ┃ ┣━busting
  ┃ ┣━critical-css
  ┃ ┣━min
  ┃ ┗━wp-rocket
  ┗━wp-rocket-config

.htaccess

{dossier racine wordpress}
┗━.htaccess

Sur les serveurs Apache/LiteSpeed, le fichier .htaccess doit être inscriptible par WP Rocket (CHMOD 0644). Après l'activation, il devrait y avoir un grand bloc de code relatif à WP Rocket, commençant tout en haut du fichier :

# BEGIN WP Rocket v{numéro de version}

... Pleins de ligne de code ici ...

# END WP Rocket

... d’autres lignes de code plus bas ...

wp-config.php

{dossier racine wordpress}
┗━wp-config.php

Le fichier wp-config.php doit être inscriptible pour WP Rocket (CHMOD 0644). Assurez vous que la ligne suivante est présente en haut du fichier, après la balise d’ouverture <?php. Si elle située trop en bas dans le fichier, WP Rocket ne fonctionnera pas !

define( 'WP_CACHE', true ); // Added by WP Rocket

Assurez-vous également qu’il n’y a pas de référence à un autre plugin de mise en cache. Par exemple, WP Super Cache laisse généralement derrière lui le code suivant :

define( 'WPCACHEHOME', '/path-to-your-wordpress-install/wp-content/plugins/wp-super-cache/' ); //Added by WP-Cache Manager

advanced-cache.php

{dossier racine wordpress}
┗━wp-content
  ┗━advanced-cache.php

Assurez vous que le fichier advanced-cache.php, dans le dossier /wp-content et qu’il ne fasse référence qu'à WP Rocket.

Dossier de configuration WP Rocket

{dossier racine wordpress}
┗━wp-content
  ┗━wp-rocket-config

Assurez-vous qu’un dossier nommé wp-rocket-config soit bien présent dans /wp-content. Dans le cas contraire, créez-le et faites en sorte qu’il ait les bons droits en écriture.

Dossier de Cache (et ses sous-dossiers)

{dossier racine wordpress}
┗━wp-content
  ┗━cache
    ┣━busting
    ┣━critical-css
    ┣━min
    ┗━wp-rocket

Assurez-vous que WP Rocket ait les bonne permissions en écriture au sein du dossier cache (CHMOD 0755), et qu'il contient les 4 sous-dossiers décrits ci-dessus. Tous ces WP Rocket doivent être inscriptible également. Si ces dossiers n'existent pas, vous devez les créer manuellement.

Nettoyer le dossier de cache

Si vous aviez un autre plugin de mise en cache précédemment activé, il se peut qu'il ait laissé derrière lui ses propres dossiers. Nous vous recommandons de les supprimer.

WP Super Cache crée aussi un dossier wp-cache-config.php dans wp-content qui doit être supprimé.

W3 Total Cache crée les éléments suivants dans wp-content, et doivent être supprimés

wp-content         (Conserver !)
┣━cache            (Conserver !)
┃ ┣━config         (Supprimer)
┃ ┣━db             (Supprimer)
┃ ┣━minify         (Supprimer)
┃ ┣━object         (Supprimer)
┃ ┗━page_enhanced  (Supprimer)
┣━db.php           (Supprimer)
┣━object-cache.php (Supprimer)
┗━w3tc-config      (Supprimer)

(Il peut aussi créer d'autres dossiers en fonction des paramètres individuels.)

Remarque : Bien qu'il soit possible de supprimer tous les fichiers et dossiers de plugins de mise en cache que vous n'utilisez plus, certains thèmes peuvent aussi créer des sous-dossiers dans le dossier cache. Vous devriez toujours les conserver.

Réglages de WP Rocket

  1. Allez dans WP Rocket > Règles avancées > Ne jamais mettre en cache ces URL(s)
    Assurez-vous qu'il n'y a pas d'exclusions inattendues. Par exemple, un / exclura la page d'accueil de toutes optimisations :
  2. Les paramètres peuvent également être contrôlés page par page. Allez à l'écran d'édition d'une page affectée et cochez la case Options WP Rocket sur le côté. Vérifiez si la page a été exclue, ou si certaines options ont été désactivées : 

Multisite et domain mapping

Si vous avez une installation multisite qui utilise le "domain mapping", essayez de vous connecter à votre zone d'administration avec le domaine assigné au lieu du domaine original, puis désactivez/réactivez WP Rocket. Cela permettra à WP Rocket de détecter le bon domaine pour l'activation du cache.

Changer de domaine & migrer un site

Lorsque vous changez de domaine pour votre site, ou si vous déplacez votre site d'une URL de développement vers l'URL de production, il vous faut désactiver et réactiver WP Rocket sur la nouvelle URL, afin que les fichiers de configuration puissent être mis à jour correctement.

Dans la majorité, cela suffit à corriger le problème. Plus de détails dans cette doc : Changer de domaine & migrer un site avec WP Rocket

Autres plugins qui désactivent le cache

Il arrive qu’une autre extension définisse la constante DONOTCACHEPAGE. Cela outrepasse toutes les extensions de mise en cache en empêchant la mise en cache de fonctionner. Il faut donc la retirer, et le développeur de ce plugin doit en être informé.

Vous pouvez tester si c'est ça qui vous cause problème en installant ce mini-plugin outrepassera la constante DONOTCACHEPAGE :

📥  Télecharger (.zip): WP Rocket | Force Page Caching
Dévelopeurs : vous trouverez le code de ce plugin sur GitHub.

Veuillez consulter cette liste (EN) pour connaître tous les plugins/thèmes dont nous avons connaissance et qui empêchent la mise en cache et/ou les optimisations.

Cache SSL

Depuis WP Rocket 3.3.4, le Cache SSL est automatiquement activé sur les nouvelles installations.
Sur les installations existantes qui n'utilisent pas actuellement SSL mais l'activeront plus tard, assurez-vous de mettre à jour vos paramètres URL WordPress pour utiliser HTTPS et WP Rocket activera automatiquement le cache SSL.

Lisez cet article pour plus d’infos :
Utiliser SSL avec WP Rocket

Compatibilité du thème

Assurez-vous que votre thème contient bien wp_footer(). S'il est absent, ajoutez-le dans footer.php, juste avant la balise de fermeture </body>, et ça devrait résoudre le problème :

Après avoir fait n’importe lequel de ces réglages, désactivez et réactivez WP Rocket.

Puis vous pouvez vérifier que WP Rocket fonctionne en suivant les instructions données dans cet article :
http://fr.docs.wp-rocket.me/article/180-comment-verifier-si-wp-rocket-met-bien-en-cache-vos-pages

Autre configuration requise

  • mod_expire et mod_deflate doivent être activés (demandez à votre hébergeur de les activer)
  • Aucune restriction sur le dossier tmp
  • La fonction curl_exec doit être activée

Domaines temporaires

La mise en cache ne fonctionne pas sur les domaines temporaires qui contiennent un tilde. ~, ex. https://exemple.com/~temp.

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.