Lo script Varify non si carica correttamente su WordPress con WP Rocket
Come riconoscere l'errore
Il tuo sito web funziona su WordPress e utilizza il plugin WP Rocket. Lo script Varify non si carica correttamente. Gli esperimenti non vengono erogati o vengono erogati solo con ritardo, nel report arrivano pochi o nessun dato, oppure l'oggetto window.varify non è definito nel browser.
Lo script Varify deve caricarsi invariato e senza ritardi, in modo che le varianti vengano erogate prima che il visitatore veda la pagina. Non deve quindi essere ottimizzato, ritardato o messo in cache da WP Rocket.
Perché succede
WP Rocket ottimizza i file JavaScript in due modi. Entrambi possono influire sullo script Varify:
- Delay JavaScript execution: Ritarda gli script finché il visitatore non interagisce con la pagina. In questo processo, lo snippet inline con l'ID Varify viene convertito in un indirizzo
data:text/javascript;base64. Lo script parte troppo tardi, quindi le varianti sfarfallano o non vengono erogate. - Minify / Combine JavaScript files: Scarica gli script esterni e ne serve una copia dal tuo stesso dominio, dalla cartella
/wp-content/cache/min/. La pagina carica una copia in cache invece del file aggiornato da app.varify.io, quindi le modifiche ai tuoi esperimenti non arrivano.
Come verificare se la causa è WP Rocket
Con gli strumenti per sviluppatori del tuo browser (Chrome: clic destro sulla pagina, "Ispeziona"), puoi vedere da dove viene caricato lo script.
Passo 1: scheda Elements – lo snippet è stato modificato?
Apri la scheda "Elements" e cerca (Ctrl/Cmd + F) "varify". Se WP Rocket ha convertito lo snippet inline con l'ID Varify in uno script con src="data:text/javascript;base64…" e l'attributo data-rocket-status, lo snippet è stato modificato. Subito sotto, varify.js viene caricato dal tuo stesso dominio sotto /cache/min/.
Passo 2: scheda Network – da dove proviene varify.js?
Apri la scheda "Network", ricarica la pagina e inserisci "varify" nel filtro. Clicca sul file varify.js e controlla la "Request URL". L'indirizzo corretto è su app.varify.io. Se il file si trova sul tuo stesso dominio, ad esempio sotto /wp-content/cache/min/1/varify.js, WP Rocket sta servendo una copia dalla cache. Il valore "Age" negli header di risposta mostra da quanto tempo la copia è nella cache.
Passo 3: Confronta senza WP Rocket
Aggiungi ?nowprocket all'URL della pagina. Questo bypassa le ottimizzazioni di WP Rocket. Se lo script Varify si carica da app.varify.io in questo caso e funziona, la causa è WP Rocket.
Soluzione: escludere lo script Varify con data-nowprocket
WP Rocket esclude dal ritardo ogni script che contiene la parola chiave nowprocket, ad esempio come attributo. Aggiungi quindi l'attributo data-nowprocket a entrambi i tag script dello snippet Varify: lo script inline con il tuo ID Varify e lo script che carica il file 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>
Copia lo snippet con il tuo ID personale dal tuo account Varify (Tracking Setup) e aggiungi solo l'attributo data-nowprocket. Non modificare nient'altro nel codice.
Alternativa: escludere lo script nelle impostazioni di WP Rocket
Se non puoi modificare lo snippet, escludilo in WP Rocket. In WordPress, apri "Settings > WP Rocket > File Optimization" e inserisci questi valori:
- Sotto "Delay JavaScript execution", nel campo "Excluded JavaScript Files":
varify.jsewindow.varify. La seconda voce esclude lo snippet inline. - Sotto "Minify JavaScript files", nel campo "Excluded JavaScript Files" (e, se abilitato, sotto "Combine JavaScript files"):
varify.js. - Salva le modifiche.
Per gli script esterni, usa il nome del file e non il dominio. Se "Minify JavaScript files" è abilitato, il file viene salvato localmente sul tuo server, e una voce con app.varify.io non corrisponderebbe più.
Svuota la cache e controlla il risultato
- Svuota la cache di WP Rocket, ad esempio con "Clear cache" nella barra di amministrazione di WordPress. Se necessario, svuota anche la cache del tuo hosting e della tua CDN.
- Ricarica la pagina nella scheda Network con l'opzione "Disable cache" attivata e filtra per "varify".
- Verifica che
varify.jsvenga caricato da app.varify.io con stato 200 (come nell'ultimo screenshot sopra). - Digita
window.varifynella console. Se viene restituito un oggetto, lo script è caricato.
Se il problema persiste
- Verifica se la console mostra il messaggio
Refused to load the script 'data:text/javascript;base64…'. In questo caso, una Content Security Policy del tuo sito blocca gli indirizzi data: creati da WP Rocket. Consentidata:nella direttivascript-srcoppure escludi lo script Varify dall'ottimizzazione come descritto sopra. Il tuo provider di hosting può aiutarti in questo. - Verifica se altri plugin di ottimizzazione o cache, una CDN o funzionalità del tuo hosting modificano il JavaScript. Possono avere gli stessi effetti.
- Verifica che lo snippet Varify sia incluso una sola volta nella pagina.
- Se hai bisogno di ulteriore aiuto, contatta il nostro team di supporto.
Conclusione
Sui siti WordPress con WP Rocket, il plugin spesso ritarda o mette in cache lo script Varify. Aggiungi l'attributo data-nowprocket a entrambi i tag script dello snippet Varify, oppure escludi varify.js e lo snippet inline in WP Rocket. Poi svuota la cache e verifica nella scheda Network che varify.js venga caricato da app.varify.io.