Incompatibilités entre le plugin CrowdHandler pour WordPress et la mise en cache

Nos clients installent le plugin CrowdHandler pour faire face à un trafic intense. Sans surprise, ces mêmes clients installent souvent des plugins de mise en cache pour accélérer leurs sites web. Malheureusement, un conflit peut survenir entre les deux, et les plugins de mise en cache ainsi que les services cloud peuvent nuire à la capacité de CrowdHandler à répartir le trafic et à rediriger les utilisateurs vers votre site de manière équitable.

À moins de bien maîtriser le fonctionnement de votre système de mise en cache, nous vous recommandons de désactiver les plugins de mise en cache et les services de mise en cache dans le cloud lorsque vous utilisez CrowdHandler. Des utilisateurs ont signalé des problèmes lors de l'utilisation de notre plugin WordPress avec :

  • Kinsta
  • NitroPack
  • Cache LiteSpeed
  • Cloudflare (when set to cache pages, not just assets)

There are many caching plugins and services available for WordPress and others, not listed above, could cause issues. While CrowdHandler acts as a ‘good citizen’ and sets the correct standards-based cache headers to assist third-party services, these are not always respected as some plugins seek to maximize caching behavior by overriding standards.

Cloud-based services may be particularly susceptible to this issue, because the caching behavior is implemented outside WordPress, and cannot be overridden by our plugin.

Remarque : nous ne sommes pas en mesure de résoudre les problèmes de configuration dus à des incompatibilités entre plugins ou à des services tiers. Si le comportement de la mise en cache vous pose problème et que vous ne parvenez pas à résoudre ces difficultés en désactivant des plugins, envisagez de désactiver le plugin WordPress et d'utiliser notre code JavaScript à la place. Ce code JavaScript est compatible avec les systèmes de mise en cache, et la combinaison de pages correctement mises en cache et de ce code JavaScript peut s'avérer efficace pour réduire la charge sur les sites WordPress.

What’s the problem?

Our WordPress Plugin checks the user’s cookie with the CrowdHandler API and redirects the user to the waiting room if they need to wait. Caching plugins can cache the cookie and/or the redirect. This means that users can come back to the site from the waiting room but be sent back, because the caching plugin has cached another user’s cookie or redirect. This will result in users being sent to the waiting room multiple times, and with a seeming randomness relating to whether the user gets through or not.

Can I confirm if my site has this issue?

Si vous pensez que votre site est confronté à ce problème, ou si vous souhaitez vérifier cette hypothèse, vous pouvez effectuer un test simple dans une fenêtre de terminal. Exécutez la commande suivante :

curl -I https://yourdomain.com/some-protected-url

Vous devriez voir s'afficher les en-têtes CrowdHandler renvoyés par votre page, y compris le cookie CrowdHandler. Si vous ne voyez aucun en-tête, mais que vous constatez la présence d'un en-tête de type « cache: hit », cela signifie que vous consultez une page mise en cache et que le plugin CrowdHandler n'est pas appelé. Si vous voyez bien les en-têtes et le cookie, répétez rapidement la requête. Si le même cookie est renvoyé (valeur identique), cela signifie qu’il est mis en cache.

Que dois-je faire ?

  1. Désactivez les plugins et services de mise en cache, puis refaites le test. Si un nouveau cookie apparaît à chaque fois, cela signifie que le problème est résolu. (Il se peut que vous deviez patienter un certain temps avant que les caches n'expirent et que la correction ne soit effective.)
  2. Si vous ne parvenez pas à désactiver les services de mise en cache, passez à la méthode d’implémentation via JavaScript dans le panneau d’administration de CrowdHandler, assurez-vous que notre code JavaScript est bien installé sur votre site, puis désactivez le plugin WordPress. L’intégration JavaScript gère la création et la récupération des cookies ainsi que les redirections via JavaScript ; elle n’est donc pas susceptible d’être mise en cache. Dans ce cas, la mise en cache est bénéfique. Si vos plugins de mise en cache fonctionnent correctement, vos pages d'atterrissage devraient s'afficher rapidement et le JavaScript redirigera l'utilisateur avant qu'il n'interagisse avec des pages non mises en cache, ce qui entraînerait une charge élevée.
  3. Si CrowdHandler ne protège que les URL non mises en cache, il ne sera pas concerné par ce problème ; vous pouvez donc essayer de limiter la couverture des URL de votre salle d'attente aux seules URL qui ne sont pas mises en cache.
  4. If the caching layer causing the problem is Cloudflare, you should probably be using our Cloudflare edge worker instead of the Wordpress Plugin. Set up the edge worker, and disable the Wordpress plugin. If you are using our Cloudflare edge worker, with a WordPress backend, we recommend raising a support ticket with us so that we can install WordPress URL exclusions on your account.