Varify-Skript lädt nicht korrekt auf WordPress mit WP Rocket
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.
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.
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.
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.
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>
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.jsundwindow.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.
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
- 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.
- Lade die Seite im Network-Tab mit aktivierter Option „Disable cache" neu und filtere nach „varify".
- Prüfe, dass
varify.jsvon app.varify.io mit Status 200 geladen wird (wie im letzten Screenshot oben). - Gib
window.varifyin 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. Erlaubedata:in derscript-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.