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 (cuando está configurado para almacenar en caché las páginas, no solo los recursos)
Existen muchos plugins y servicios de almacenamiento en caché disponibles para WordPress, y otros que no se han mencionado anteriormente podrían causar problemas. Aunque CrowdHandler actúa como un «buen ciudadano» y establece los encabezados de caché correctos, basados en estándares, para facilitar el funcionamiento de los servicios de terceros, estos no siempre se respetan, ya que algunos plugins intentan maximizar el comportamiento del almacenamiento en caché ignorando los estándares.
Los servicios basados en la nube pueden ser especialmente vulnerables a este problema, ya que el comportamiento del almacenamiento en caché se implementa fuera de WordPress y nuestro plugin no puede anularlo.
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.
¿Cuál es el problema?
Nuestro plugin de WordPress comprueba la cookie del usuario mediante la API de CrowdHandler y redirige al usuario a la sala de espera si tiene que esperar. Los plugins de almacenamiento en caché pueden almacenar en caché la cookie y/o la redirección. Esto significa que los usuarios pueden volver al sitio desde la sala de espera, pero ser devueltos a ella, porque el plugin de almacenamiento en caché ha almacenado en caché la cookie o la redirección de otro usuario. Esto hará que los usuarios sean enviados a la sala de espera varias veces, y con una aparente aleatoriedad en cuanto a si el usuario consigue acceder o no.
¿Puedo comprobar si mi sitio web tiene este problema?
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?
- 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).
- 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.
- 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é.
- Si la capa de almacenamiento en caché que está causando el problema es Cloudflare, probablemente deberías utilizar nuestro Edge Worker de Cloudflare en lugar del plugin de WordPress. Configura el Edge Worker y desactiva el plugin de WordPress. Si estás utilizando nuestro Edge Worker de Cloudflare con un backend de WordPress, te recomendamos que nos envíes un ticket de soporte para que podamos instalar exclusiones de URL de WordPress en tu cuenta.