Incompatibilidades entre el plugin CrowdHandler para WordPress y el almacenamiento en caché

Nuestros clientes instalan el plugin CrowdHandler para hacer frente a un tráfico intenso. Como es lógico, esos mismos clientes suelen instalar plugins de almacenamiento en caché para acelerar sus sitios web. Lamentablemente, puede producirse un conflicto entre ambos, y los plugins de almacenamiento en caché y los servicios en la nube pueden interferir en la capacidad de CrowdHandler para distribuir el tráfico y redirigir a los usuarios a tu sitio web de forma equitativa.

A menos que conozcas muy bien el funcionamiento de tu sistema de almacenamiento en caché, te recomendamos que desactives los plugins de almacenamiento en caché y los servicios de almacenamiento en caché en la nube cuando utilices CrowdHandler. Algunos usuarios han informado de problemas al utilizar nuestro plugin de WordPress con:

  • Kinsta
  • NitroPack
  • Caché de 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.

Nota: No podemos resolver problemas de configuración causados por incompatibilidades entre plugins y servicios de terceros. Si el comportamiento del almacenamiento en caché te afecta negativamente y no consigues resolver los problemas desactivando los plugins, plantéate desactivar el plugin de WordPress y utilizar nuestro código JavaScript en su lugar. El código JavaScript funciona bien con los sistemas de almacenamiento en caché, y la combinación de páginas bien almacenadas en caché y JavaScript puede resultar eficaz para reducir la carga en los sitios de 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 crees que tu sitio web tiene este problema, o si quieres comprobar si existe esta posibilidad, hay una prueba sencilla que puedes realizar en una ventana de terminal. Ejecuta:

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

Deberías ver que tu página devuelve los encabezados de CrowdHandler, incluida la cookie de CrowdHandler. Si no ves ningún encabezado, pero sí ves algún tipo de encabezado de «cache: hit», esto indica que estás viendo una página almacenada en caché y que el complemento CrowdHandler no se está ejecutando. Si ves los encabezados y la cookie, repite la solicitud rápidamente. Si se devuelve la misma cookie (valor idéntico), significa que se está almacenando en caché.

¿Qué debo hacer?

  1. Desactiva los complementos y servicios de almacenamiento en caché y repite la prueba. Si empiezas a ver una nueva cookie cada vez, el problema se habrá resuelto. (Es posible que las cachés tarden un tiempo en caducar antes de que notes la solución).
  2. Si no puedes desactivar los servicios de almacenamiento en caché, cambia el método de implementación a JavaScript en el panel de administración de CrowdHandler, asegúrate de que nuestro JavaScript esté instalado en tu sitio web y desactiva el plugin de WordPress. La integración de JavaScript establece y recupera las cookies y las redirecciones mediante JavaScript, por lo que no es susceptible de que estas se almacenen en caché. En este caso, el almacenamiento en caché es beneficioso. Si tus plugins de almacenamiento en caché funcionan correctamente, tus páginas de destino deberían cargarse rápidamente y el JavaScript descargará al usuario antes de que interactúe con páginas no almacenadas en caché, lo que provocaría una carga elevada.
  3. Si CrowdHandler solo protege las URL que no están almacenadas en caché, no se verá afectado por este problema, por lo que podrías intentar reducir la cobertura de URL de tu sala de espera a aquellas que no estén almacenadas en caché.
  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.