Le script Varify ne se charge pas correctement sur WordPress avec WP Rocket
Comment reconnaître l'erreur
Ton site fonctionne sous WordPress et utilise le plugin WP Rocket. Le script Varify ne se charge pas correctement. Les expériences ne sont pas diffusées ou seulement avec un délai, aucune ou très peu de données arrivent dans le rapport, ou l'objet window.varify n'est pas défini dans le navigateur.
Le script Varify doit se charger sans modification et sans délai afin que les variantes soient diffusées avant que le visiteur ne voie la page. Il ne doit donc pas être optimisé, retardé ou mis en cache par WP Rocket.
Pourquoi cela se produit
WP Rocket optimise les fichiers JavaScript de deux manières. Les deux peuvent affecter le script Varify :
- Delay JavaScript execution : Retarde les scripts jusqu'à ce que le visiteur interagisse avec la page. Dans ce processus, l'extrait de code inline contenant l'ID Varify est converti en une adresse
data:text/javascript;base64. Le script démarre trop tard, ce qui fait clignoter les variantes ou empêche leur diffusion. - Minify / Combine JavaScript files : Télécharge les scripts externes et sert une copie depuis ton propre domaine, depuis le dossier
/wp-content/cache/min/. La page charge une copie en cache au lieu du fichier actuel depuis app.varify.io, de sorte que les modifications apportées à tes expériences n'arrivent pas.
Comment vérifier si WP Rocket est en cause
Avec les outils de développement de ton navigateur (Chrome : clic droit sur la page, « Inspecter »), tu peux voir d'où le script est chargé.
Étape 1 : Onglet Elements – l'extrait de code a-t-il été modifié ?
Ouvre l'onglet « Elements » et recherche (Ctrl/Cmd + F) « varify ». Si WP Rocket a converti l'extrait de code inline contenant l'ID Varify en un script avec src="data:text/javascript;base64…" et l'attribut data-rocket-status, l'extrait de code a été modifié. En dessous, varify.js est chargé depuis ton propre domaine sous /cache/min/.
Étape 2 : Onglet Network – d'où vient varify.js ?
Ouvre l'onglet « Network », recharge la page et saisis « varify » dans le filtre. Clique sur le fichier varify.js et vérifie « Request URL ». L'adresse correcte se trouve sur app.varify.io. Si le fichier se trouve sur ton propre domaine, par exemple sous /wp-content/cache/min/1/varify.js, WP Rocket diffuse une copie en cache. La valeur « Age » dans les en-têtes de réponse indique depuis combien de temps la copie est en cache.
Étape 3 : comparer sans WP Rocket
Ajoute ?nowprocket à l'URL de la page. Cela contourne les optimisations de WP Rocket. Si le script Varify se charge alors depuis app.varify.io et fonctionne, WP Rocket en est la cause.
Solution : exclure le script Varify avec data-nowprocket
WP Rocket exclut du délai tout script contenant le mot-clé nowprocket, par exemple sous forme d'attribut. Ajoute donc l'attribut data-nowprocket aux deux balises script du snippet Varify : le script inline avec ton ID Varify et le script qui charge le fichier varify.js.
<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>
Copie le snippet avec ton ID personnel depuis ton compte Varify (Tracking Setup) et ajoute uniquement l'attribut data-nowprocket. Ne modifie rien d'autre dans le code.
Alternative : exclure le script dans les paramètres WP Rocket
Si tu ne peux pas modifier le snippet, exclus-le dans WP Rocket. Dans WordPress, ouvre « Settings > WP Rocket > File Optimization » et saisis ces valeurs :
- Sous « Delay JavaScript execution », dans le champ « Excluded JavaScript Files » :
varify.jsetwindow.varify. La deuxième entrée exclut le snippet inline. - Sous « Minify JavaScript files », dans le champ « Excluded JavaScript Files » (et, si activé, sous « Combine JavaScript files ») :
varify.js. - Enregistre les modifications.
Pour les scripts externes, utilise le nom du fichier et non le domaine. Si « Minify JavaScript files » est activé, le fichier est stocké localement sur ton serveur, et une entrée avec app.varify.io ne correspondrait plus.
Vider le cache et vérifier le résultat
- Videz le cache de WP Rocket, par exemple avec « Clear cache » dans la barre d'administration WordPress. Si nécessaire, videz également le cache de votre hébergement et de votre CDN.
- Rechargez la page dans l'onglet Network avec l'option « Disable cache » activée et filtrez sur « varify ».
- Vérifiez que
varify.jsest chargé depuis app.varify.io avec le statut 200 (comme dans la dernière capture d'écran ci-dessus). - Entrez
window.varifydans la console. Si un objet est retourné, le script est chargé.
Si le problème persiste
- Vérifiez si la console affiche le message
Refused to load the script 'data:text/javascript;base64…'. Si c'est le cas, une Content Security Policy de votre site bloque les adresses data: que WP Rocket crée. Autorisezdata:dans la directivescript-srcou excluez le script Varify de l'optimisation comme décrit ci-dessus. Votre hébergeur peut vous aider à ce sujet. - Vérifiez si d'autres plugins d'optimisation ou de cache, un CDN ou des fonctionnalités de votre hébergement modifient le JavaScript. Ils peuvent avoir les mêmes effets.
- Vérifiez que le snippet Varify n'est inclus qu'une seule fois sur la page.
- Si vous avez besoin d'aide supplémentaire, contactez notre équipe support.
Conclusion
Sur les sites WordPress avec WP Rocket, le plugin retarde ou met souvent en cache le script Varify. Ajoutez l'attribut data-nowprocket aux deux balises script du snippet Varify, ou excluez varify.js et le snippet inline dans WP Rocket. Videz ensuite le cache et vérifiez dans l'onglet Network que varify.js est chargé depuis app.varify.io.