Les pages ne sont pas mises en cache, ou la minification CSS et JS ne fonctionne pas

WP Rocket fournit par défaut des pages mises en cache pour les visiteurs qui ne sont pas des utilisateurs WordPress connectés. Lorsque vous vérifiez si la mise en cache fonctionne comme prévu, assurez-vous que l'une des conditions suivantes est vraie :

  • Soit vous êtes déconnecté de WordPress
  • Soit vous avez activé le Cache Utilisateur dans l'onglet Cache.
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, 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.

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.

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é.

Deux plugins connues pour ajouter une constante DONOTCACHEPAGE sont :

  • s2 Member
  • WooCommerce Klarna Gateway.

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.

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