Zum Hauptinhalt springen

Varify-Skript lädt nicht korrekt auf WordPress mit WP Rocket

Zuletzt aktualisiert am 21. Okt. 20264 Min. Lesezeit

So erkennst du den Fehler​

Deine Website läuft auf WordPress und nutzt das Plugin WP Rocket. Das Varify-Skript lädt nicht korrekt. Experimente werden nicht oder nur verzögert ausgeliefert, im Report kommen keine oder nur sehr wenige Daten an, oder das Objekt window.varify ist im Browser nicht definiert.

important

Das Varify-Skript muss unverändert und ohne Verzögerung laden, damit Varianten ausgeliefert werden, bevor der Besucher die Seite sieht. Es darf daher von WP Rocket nicht optimiert, verzögert oder gecacht werden.

Warum das passiert​

WP Rocket optimiert JavaScript-Dateien auf zwei Arten. Beide können das Varify-Skript beeinträchtigen:

  • Delay JavaScript execution: Verzögert Skripte, bis der Besucher mit der Seite interagiert. Dabei wird das Inline-Snippet mit der Varify-ID in eine data:text/javascript;base64-Adresse umgewandelt. Das Skript startet zu spät, sodass Varianten flackern oder nicht ausgeliefert werden.
  • Minify / Combine JavaScript files: Lädt externe Skripte herunter und liefert eine Kopie von deiner eigenen Domain aus, aus dem Ordner /wp-content/cache/min/. Die Seite lädt eine gecachte Kopie statt der aktuellen Datei von app.varify.io, sodass Änderungen an deinen Experimenten nicht ankommen.

So prüfst du, ob WP Rocket die Ursache ist​

Mit den Entwicklertools deines Browsers (Chrome: Rechtsklick auf die Seite, „Untersuchen") kannst du sehen, von wo das Skript geladen wird.

Schritt 1: Tab „Elemente" – wurde das Snippet verändert?​

Öffne den Tab „Elemente" und suche (Strg/Cmd + F) nach „varify". Wenn WP Rocket das Inline-Snippet mit der Varify-ID in ein Skript mit src="data:text/javascript;base64…" und dem Attribut data-rocket-status umgewandelt hat, wurde das Snippet verändert. Darunter wird varify.js von deiner eigenen Domain unter /cache/min/ geladen.

Tab „Elemente" zeigt das von WP Rocket umgewandelte Varify-Snippet

Schritt 2: Tab „Netzwerk" – woher kommt varify.js?​

Öffne den Tab „Network“, lade die Seite neu und gib „varify“ in den Filter ein. Klicke auf die Datei varify.js und prüfe die „Request URL“. Die korrekte Adresse lautet app.varify.io. Liegt die Datei auf deiner eigenen Domain, zum Beispiel unter /wp-content/cache/min/1/varify.js, liefert WP Rocket eine gecachte Kopie aus. Der Wert „Age“ in den Response-Headern zeigt, wie lange sich die Kopie bereits im Cache befindet.

Network-Tab mit der Request URL von varify.js auf der eigenen Domain

Schritt 3: Vergleich ohne WP Rocket​

Hänge ?nowprocket an die URL der Seite an. Dadurch werden die Optimierungen von WP Rocket umgangen. Lädt das Varify-Skript dort von app.varify.io und funktioniert, ist WP Rocket die Ursache.

Network-Tab mit ?nowprocket in der Adresse und varify.js von app.varify.io

Lösung: Varify-Skript mit data-nowprocket ausschließen​

WP Rocket schließt jedes Skript, das das Schlüsselwort nowprocket enthält, von der Verzögerung aus, zum Beispiel als Attribut. Füge daher beiden Script-Tags des Varify-Snippets das Attribut data-nowprocket hinzu: dem Inline-Skript mit deiner Varify-ID und dem Skript, das die Datei varify.js lädt.

<script data-nowprocket>
window.varify = window.varify || {};
window.varify.iid = YOUR ACCOUNT ID;
</script>
<script data-nowprocket src="https://app.varify.io/varify.js"></script>
important

Kopiere das Snippet mit deiner persönlichen ID aus deinem Varify-Konto (Tracking Setup) und füge nur das Attribut data-nowprocket hinzu. Ändere nichts weiter am Code.

Alternative: Skript in den WP Rocket-Einstellungen ausschließen​

Wenn du das Snippet nicht bearbeiten kannst, schließe es in WP Rocket aus. Öffne in WordPress „Settings > WP Rocket > File Optimization“ und gib diese Werte ein:

  • Unter „Delay JavaScript execution“, im Feld „Excluded JavaScript Files“: varify.js und window.varify. Der zweite Eintrag schließt das Inline-Snippet aus.
  • Unter „Minify JavaScript files“, im Feld „Excluded JavaScript Files“ (und, falls aktiviert, unter „Combine JavaScript files“): varify.js.
  • Speichere die Änderungen.
important

Verwende bei externen Skripten den Dateinamen und nicht die Domain. Ist „Minify JavaScript files“ aktiviert, wird die Datei lokal auf deinem Server gespeichert, und ein Eintrag mit app.varify.io würde nicht mehr greifen.

Cache leeren und Ergebnis prüfen​

  1. Leere den WP Rocket Cache, zum Beispiel mit „Clear cache" in der WordPress-Admin-Leiste. Leere bei Bedarf auch den Cache deines Hostings und deines CDN.
  2. Lade die Seite im Network-Tab mit aktivierter Option „Disable cache" neu und filtere nach „varify".
  3. Prüfe, dass varify.js von app.varify.io mit Status 200 geladen wird (wie im letzten Screenshot oben).
  4. Gib window.varify in der Konsole ein. Wenn ein Objekt zurückgegeben wird, ist das Skript geladen.

Wenn das Problem weiterhin besteht​

  • Prüfe, ob die Konsole die Meldung Refused to load the script 'data:text/javascript;base64…' anzeigt. Wenn ja, blockiert eine Content Security Policy deiner Website die data:-Adressen, die WP Rocket erzeugt. Erlaube data: in der script-src-Direktive oder schließe das Varify-Skript wie oben beschrieben von der Optimierung aus. Dein Hosting-Anbieter kann dabei helfen.
  • Prüfe, ob andere Optimierungs- oder Cache-Plugins, ein CDN oder Funktionen deines Hostings JavaScript verändern. Sie können dieselben Effekte haben.
  • Prüfe, dass das Varify-Snippet nur einmal auf der Seite eingebunden ist.
  • Wenn du weitere Hilfe benötigst, kontaktiere unser Support-Team.

Fazit​

Auf WordPress-Seiten mit WP Rocket verzögert oder cached das Plugin oft das Varify-Skript. Füge das Attribut data-nowprocket zu beiden Script-Tags des Varify-Snippets hinzu oder schließe varify.js und das Inline-Snippet in WP Rocket aus. Leere anschließend den Cache und prüfe im Network-Tab, dass varify.js von app.varify.io geladen wird.

Verwandte Artikel​