Das WordPress-Plugin „CrowdHandler“ und Inkompatibilitäten beim Caching

Unsere Kunden installieren das CrowdHandler-Plugin, um hohen Datenverkehr bewältigen zu können. Es überrascht nicht, dass dieselben Kunden häufig auch Caching-Plugins installieren, um ihre Websites zu beschleunigen. Leider kann es zu Konflikten zwischen den beiden kommen, und Caching-Plugins sowie Cloud-Dienste können die Fähigkeit von CrowdHandler beeinträchtigen, Nutzer fair zu entlasten und auf Ihre Website zurückzuleiten.

Sofern Sie die Funktionsweise Ihres Caching-Systems nicht sehr gut kennen, empfehlen wir Ihnen, Caching-Plugins und Cloud-Caching-Dienste zu deaktivieren, wenn Sie CrowdHandler verwenden. Nutzer haben Probleme bei der Verwendung unseres WordPress-Plugins mit folgenden Diensten gemeldet:

  • Kinsta
  • NitroPack
  • LiteSpeed-Cache
  • Cloudflare (wenn die Einstellung so gewählt ist, dass Seiten und nicht nur Assets zwischengespeichert werden)

Es gibt zahlreiche Caching-Plugins und -Dienste für WordPress, die oben nicht aufgeführt sind und Probleme verursachen könnten. Zwar verhält sich CrowdHandler vorbildlich und setzt die korrekten, standardkonformen Cache-Header, um Dienste von Drittanbietern zu unterstützen, doch werden diese nicht immer beachtet, da einige Plugins versuchen, das Caching-Verhalten zu optimieren, indem sie die Standards außer Kraft setzen.

Cloud-basierte Dienste sind möglicherweise besonders anfällig für dieses Problem, da das Caching-Verhalten außerhalb von WordPress implementiert ist und von unserem Plugin nicht überschrieben werden kann.

Hinweis: Wir können keine Konfigurationsprobleme beheben, die durch Inkompatibilitäten zwischen Plugins und Diensten von Drittanbietern verursacht werden. Wenn Sie durch das Caching-Verhalten beeinträchtigt werden und die Probleme nicht durch Deaktivieren von Plugins beheben können, sollten Sie in Erwägung ziehen, das WordPress-Plugin zu deaktivieren und stattdessen unser JavaScript zu verwenden. Das JavaScript lässt sich gut mit Caching-Systemen kombinieren, und die Kombination aus gut zwischengespeicherten Seiten und JavaScript kann die Auslastung von WordPress-Websites wirksam reduzieren.

Wo liegt das Problem?

Unser WordPress-Plugin überprüft das Cookie des Nutzers über die CrowdHandler-API und leitet den Nutzer in den Warteraum weiter, falls er warten muss. Caching-Plugins können das Cookie und/oder die Weiterleitung zwischenspeichern. Das bedeutet, dass Nutzer zwar aus dem Warteraum auf die Website zurückkehren können, dann aber wieder dorthin zurückgeleitet werden, weil das Caching-Plugin das Cookie oder die Weiterleitung eines anderen Nutzers zwischengespeichert hat. Dies führt dazu, dass Nutzer mehrfach in den Warteraum geleitet werden, wobei es scheinbar zufällig erscheint, ob der Nutzer durchkommt oder nicht.

Kann ich überprüfen, ob dieses Problem auf meiner Website auftritt?

Wenn Sie vermuten, dass dieses Problem auf Ihrer Website auftritt, oder ob Sie diese Möglichkeit überprüfen möchten, können Sie einen einfachen Test in einem Terminalfenster durchführen. Führen Sie folgenden Befehl aus:

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

Sie sollten sehen, dass die CrowdHandler-Header von Ihrer Seite zurückgesendet werden, einschließlich des CrowdHandler-Cookies. Wenn Sie die Header überhaupt nicht sehen, aber einen „Cache: Hit“-Header, deutet dies darauf hin, dass Sie eine zwischengespeicherte Seite aufrufen und das CrowdHandler-Plugin nicht aufgerufen wird. Wenn Sie die Header und das Cookie sehen, wiederholen Sie die Anfrage kurz darauf. Wenn dasselbe Cookie zurückkommt (identischer Wert), wird es zwischengespeichert.

Was soll ich tun?

  1. Deaktivieren Sie Caching-Plugins und -Dienste und wiederholen Sie den Test. Wenn jedes Mal ein neues Cookie angezeigt wird, ist das Problem behoben. (Es kann einige Zeit dauern, bis die Caches abgelaufen sind und die Korrektur sichtbar wird.)
  2. Falls Sie die Caching-Dienste nicht deaktivieren können, stellen Sie im CrowdHandler-Admin-Panel die Implementierungsmethode auf JavaScript um, stellen Sie sicher, dass unser JavaScript auf Ihrer Website installiert ist, und deaktivieren Sie das WordPress-Plugin. Die JavaScript-Integration setzt und ruft Cookies sowie Weiterleitungen in JavaScript ab und ist nicht anfällig dafür, dass diese zwischengespeichert werden. In diesem Fall ist das Caching von Vorteil. Wenn Ihre Caching-Plugins einwandfrei funktionieren, sollten Ihre Landingpages schnell geladen werden, und das JavaScript leitet den Nutzer weiter, bevor er mit nicht zwischengespeicherten Seiten interagiert, was zu einer hohen Auslastung führen würde.
  3. Wenn CrowdHandler nur nicht zwischengespeicherte URLs schützt, ist es von diesem Problem nicht betroffen. Sie könnten daher versuchen, die URL-Abdeckung Ihres Warteraums auf URLs zu beschränken, die nicht zwischengespeichert sind.
  4. Falls die Caching-Ebene, die das Problem verursacht, Cloudflare ist, sollten Sie wahrscheinlich unseren Cloudflare Edge Worker anstelle des WordPress-Plugins verwenden. Richten Sie den Edge Worker ein und deaktivieren Sie das WordPress-Plugin. Wenn Sie unseren Cloudflare Edge Worker in Verbindung mit einem WordPress-Backend nutzen, empfehlen wir Ihnen, ein Support-Ticket bei uns zu erstellen, damit wir URL-Ausnahmen für WordPress in Ihrem Konto einrichten können.