Google Analytics.js ve Leverage Browser Caching Sorunu

Eylül 2018
YouTube'ta Takip Et

Sitenizi GTMetrix veya PageSpeed gibi site hızı ölçen web sitelerinde test ediyorsanız ve hedefiniz 100 puansa muhtemelen Leverage Browser Caching sorunu ile karşılaşırsınız. Tarayıcının önbelleğe alma özelliğinden faydalanarak görseller, CSS veya HTML, JavaScript dosyaları gibi sayfayı her ziyaret edişinde yeniden yüklenmesi gerekmeyen öğelerle ilgilidir bu sorun. Sayfaya önceden giren bir ziyaretçi bu öğreleri zaten edindiği ve bilgisayarına indirdiği için tarayıcı tekrar yükleme yapmaz, böylece web sitesi daha hızlı açılır.

Google Analytics kodunu incelediğinizde analytics.js kodunu çektiğini görürsünüz. Google bu dosya için düşük bir önbellek süresi ayarlamıştır. Page Speed Insights‘da sitenizi test ettiğinizde göreceğiniz analytics.js ile ilgili Leverage Browser Caching sorunu da bundan kaynaklanır. Hem Google tarafından test etmek, hem de Google’ın bir hizmetinden dolayı sorun yaşamak garip. Google, Analytics.js veya Ga.js kodunu olası bir değişikliklerinde, hızlı bir şekilde kullanıcılara yeni dosyanın erişmesini sağlamak niyetinde olduğu için bu sorunu yaşıyoruz.

Beni dikkatle takip edin. Bu makelede anlatacağım Leverage Browser Caching sorunu çözümü için kafanız karışmaması adına biraz teknik bilgiye ihtiyacınız olması gerektiğini söyleyeyim. Bu sorunun üstesinden gelebilmek için JS kodunu kendi sunucumuzda barındırmamız gerekiyor. Ama bu dosyanın düzenli olarak güncellenmesi de gerekiyor, her gün yeni dosyayı alıp sunucunuza yüklemek epey zahmetli bir iş. İşte bu sorunu da otomatik hallolmasını sağlamaya çalıacağız. Bunu sağlayan bir WordPress eklentisi var aslında, CAOS | Complate Analytics Optimization Suite adında. Google Analytics kodunu yerel sunucunuzda barındırılmasını sağlıyormuş. Muş diyorum çünkü ben bu eklentiyi denemedim ve eklenti kullanmadan sorunun üstesinden gelmeye çalıştım.

Aşamalara başlamadan önce sunucunuzun ana dizinindeki .htaccess dosyasını açıp aşağıdaki kodu dosyaya yapıştırın. Yaptığımız işlem tarayıcı önbelleği ilgili dosyaların ne kadar süre ile barındırılacağıdır. Bunlar bile sitenin hızını artırmaya yeterli. Ama biz hatanın çözümü için devam edelim.

Google Analytics Komut Dosyasını Yerel Olarak Barındırma

Analytics.js dosyasını sunucunuza attığınızda otomatik olarak bu hatanın çözümünü bulmuş olursunuz. Ama Google Analytics kodunun işlevselliğini yitirmemesi için düzenli olarak güncellenmesi gerektiğinden bahsetmiştik. Bunu da sunucuya bir cronjob atayarak otomatik olarak güncellenmesini sağlayarak başaracağız.

Google Analytics dosyasını indirmek

  1. Analytics.js kodunu bilgisayarınıza indirin ve sunucunuzun ana dizinine yükleyin. En sonunda domain.com/analytics.js ile dosyaya ulaşabiliyor olmanız gerekiyor.
  2. Temanızın içindeki Analytics kodunu bulun ve orijinal URL’yi kendi URL’nizle değiştirin.

Analytics.js’nin güncelleme dosyası

Şimdi yine ana dizine ga-update.php adında bir dosya oluşturalım ve içine aşağıdaki kodu kopyalayalım.

$location dosyasına analytics.js kodunun yolunu yazmamız gerekiyor. Yolu kendinize göre değiştirdiğinize emin olun. Bu kodun anlamı şöyle. Google adresindeki analytics.js kodunu al ve bizimkiyle değiştir. ga-update.php dosyasını çalıştırırsak aynen bu bahsettiğimiz işlemi yapacaktır. Ama biz bu dosyayı her gün çalıştırmakla uğraşamayacağımız için bunu bir cronjob’a aktaracağız ve her gün otomatik olarak çalıştırılmasını sağlayacağız.

PHP dosyası çalıştırmak için cronjob nasıl oluşturulur?

Sunucunuzun cpanel adresine giriş yapın ve Cron Jobs seçeneğini seçin. Cron zamanı için dakika, saat, gün, ay, hafta değerlerini girerek dosyanın hangi aralıklarla çalıştırılması gerektiğini ayarlıyoruz.

Minute (Dakika) ve Saat (Hour) seçeneklerine 0 değerini girelim, diğer seçenekler olan Day (Gün), Month (Ay) ve Weekday (Hafta İçi Günleri) seçeneklerini * koyalım. Komut satırına da aşağıdaki kodu kendi sunucunuza göre ayarlayarak yerleştirelim.

Şimdi biz ne yaptık? Cron Jobs denilen zamanlanmış görev olarak her gün saat 00:00’da ga-update.php kodunu çalıştır demek istedik. ga-update.php dosyası çalıştırılarak yeni analytics.js kodu eskisi ile değiştirilecek ve bu durumda hem Page Speed Insights gibi site hızı ölçen web sitelerinde Leverage Browser Caching Analytics.js sorununu almamış, hem de Google Analytics kodunun randımanlı çalışmasını engellememiş olduk.

Gözden kaçırdığım veya eklemek istediğiniz bir şey olursa yorum kısmına yazabilirsiniz.