Ana içeriğe geç

WP Rocket kullanılan WordPress'te Varify betiği doğru yüklenmiyor

Son güncelleme: 21 Eki 20263 dk okuma süresi

Hatayı nasıl tanırsınız​

Web siteniz WordPress üzerinde çalışıyor ve WP Rocket eklentisini kullanıyor. Varify betiği doğru yüklenmiyor. Deneyler iletilmiyor veya sadece gecikmeli olarak iletiliyor, raporda hiç veri gelmiyor ya da çok az veri geliyor, ya da tarayıcıda window.varify nesnesi tanımlı değil.

important

Varify betiğinin değişmeden ve gecikmeden yüklenmesi gerekir, böylece ziyaretçi sayfayı görmeden önce varyasyonlar iletilir. Bu nedenle WP Rocket tarafından optimize edilmemeli, geciktirilmemeli veya önbelleğe alınmamalıdır.

Bunun nedeni​

WP Rocket, JavaScript dosyalarını iki şekilde optimize eder. Her ikisi de Varify betiğini etkileyebilir:

  • Delay JavaScript execution: Ziyaretçi sayfayla etkileşime geçene kadar betikleri geciktirir. Bu işlem sırasında Varify ID'sini içeren satır içi kod parçası (inline snippet) bir data:text/javascript;base64 adresine dönüştürülür. Betik çok geç başlar, bu nedenle varyasyonlar titrer veya hiç iletilmez.
  • Minify / Combine JavaScript files: Harici betikleri indirir ve /wp-content/cache/min/ klasöründen kendi alan adınızdan bir kopyasını sunar. Sayfa, app.varify.io'daki güncel dosya yerine önbelleğe alınmış bir kopya yükler, bu nedenle deneylerinizdeki değişiklikler ulaşmaz.

WP Rocket'ın neden olup olmadığını nasıl kontrol edersiniz​

Tarayıcınızın geliştirici araçlarıyla (Chrome: sayfaya sağ tıklayın, "İncele") betiğin nereden yüklendiğini görebilirsiniz.

Adım 1: Elements sekmesi – kod parçası değiştirildi mi?​

"Elements" sekmesini açın ve (Ctrl/Cmd + F) ile "varify" araması yapın. WP Rocket, Varify ID'sini içeren satır içi kod parçasını src="data:text/javascript;base64…" ve data-rocket-status özniteliğine sahip bir betiğe dönüştürmüşse, kod parçası değiştirilmiş demektir. Bunun altında, varify.js kendi alan adınızdan /cache/min/ altında yüklenir.

WP Rocket tarafından dönüştürülen Varify kod parçasını gösteren Elements sekmesi

Adım 2: Network sekmesi – varify.js nereden geliyor?​

"Network" sekmesini açın, sayfayı yeniden yükleyin ve filtreye "varify" yazın. varify.js dosyasına tıklayın ve "Request URL" alanını kontrol edin. Doğru adres app.varify.io üzerindedir. Dosya kendi alan adınızda, örneğin /wp-content/cache/min/1/varify.js altında yer alıyorsa, WP Rocket önbelleğe alınmış bir kopyayı sunuyor demektir. Yanıt başlıklarındaki "Age" değeri, kopyanın ne kadar süredir önbellekte olduğunu gösterir.

Kendi alan adında varify.js dosyasının istek URL'sini gösteren Network sekmesi

Adım 3: WP Rocket olmadan karşılaştırın​

Sayfanın URL'sine ?nowprocket ekleyin. Bu, WP Rocket'ın optimizasyonlarını devre dışı bırakır. Varify betiği orada app.varify.io adresinden yükleniyor ve çalışıyorsa, sorunun kaynağı WP Rocket'tır.

Adreste ?nowprocket ve app.varify.io'dan yüklenen varify.js'i gösteren Network sekmesi

Çözüm: Varify betiğini data-nowprocket ile hariç tutun​

WP Rocket, nowprocket anahtar kelimesini içeren her betiği, örneğin bir öznitelik olarak, gecikmeden hariç tutar. Bu yüzden Varify snippet'inin her iki script etiketine de data-nowprocket özniteliğini ekleyin: Varify ID'nizin bulunduğu satır içi betik ve varify.js dosyasını yükleyen betik.

<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

Kişisel ID'nizi içeren snippet'i Varify hesabınızdan (Tracking Setup) kopyalayın ve yalnızca data-nowprocket özniteliğini ekleyin. Koddaki başka hiçbir şeyi değiştirmeyin.

Alternatif: Betiği WP Rocket ayarlarında hariç tutun​

Snippet'i düzenleyemiyorsanız, onu WP Rocket'ta hariç tutun. WordPress'te "Settings > WP Rocket > File Optimization" bölümünü açın ve şu değerleri girin:

  • "Delay JavaScript execution" altında, "Excluded JavaScript Files" alanına: varify.js ve window.varify. İkinci kayıt, satır içi snippet'i hariç tutar.
  • "Minify JavaScript files" altında, "Excluded JavaScript Files" alanına (ve etkinse "Combine JavaScript files" altında da): varify.js.
  • Değişiklikleri kaydedin.
important

Harici betikler için alan adı yerine dosya adını kullanın. "Minify JavaScript files" etkinse, dosya sunucunuzda yerel olarak depolanır ve app.varify.io içeren bir kayıt artık eşleşmez.

Önbelleği temizleyin ve sonucu kontrol edin​

  1. WordPress yönetici çubuğundaki "Clear cache" gibi bir yöntemle WP Rocket önbelleğini temizleyin. Gerekirse hosting'inizin ve CDN'inizin önbelleğini de temizleyin.
  2. "Disable cache" seçeneği etkinleştirilmiş şekilde Network sekmesinde sayfayı yeniden yükleyin ve "varify" için filtreleyin.
  3. varify.js dosyasının app.varify.io'dan 200 durum koduyla yüklendiğini kontrol edin (yukarıdaki son ekran görüntüsündeki gibi).
  4. Konsola window.varify yazın. Bir nesne döndürülüyorsa, komut dosyası yüklenmiş demektir.

Sorun devam ederse​

  • Konsolda Refused to load the script 'data:text/javascript;base64…' mesajının görünüp görünmediğini kontrol edin. Görünüyorsa, web sitenizin bir Content Security Policy'si WP Rocket'ın oluşturduğu data: adreslerini engelliyor demektir. script-src direktifinde data: adresine izin verin veya yukarıda açıklandığı gibi Varify betiğini optimizasyondan hariç tutun. Hosting sağlayıcınız bu konuda yardımcı olabilir.
  • Başka optimizasyon veya önbellek eklentilerinin, bir CDN'nin veya hosting'inizin özelliklerinin JavaScript'i değiştirip değiştirmediğini kontrol edin. Bunlar da aynı etkiye yol açabilir.
  • Varify kod parçacığının sayfada yalnızca bir kez yer aldığını kontrol edin.
  • Daha fazla yardıma ihtiyacınız varsa destek ekibimizle iletişime geçin.

Sonuç​

WP Rocket kullanan WordPress sitelerinde, eklenti genellikle Varify betiğini geciktirir veya önbelleğe alır. Varify kod parçacığının her iki script etiketine de data-nowprocket özniteliğini ekleyin veya WP Rocket'ta varify.js ile satır içi kod parçacığını hariç tutun. Ardından önbelleği temizleyin ve Network sekmesinde varify.js dosyasının app.varify.io'dan yüklendiğini kontrol edin.

İlgili makaleler​