Tarayıcı Önbellekleme Nedir
Konuya girmeden önce şunu belirtemeliyimki: Bu konuyu WordPress kategorisinde açtım ama aslında tüm php sitelere uygulanabilecek bir yöntem. Tabi sunucunuzun mod_deflate.c özelliği açıksa.
Birçok seo analiz sitelerinde tarayıcı önbellekleme hatası ile karşı karşıya kalırız. İyi ama nedir bu tarayıcı önbellekleme dedikleri şey?
Ben size olayı bir örnekle açıklayayım: Mesela bir siteye girdiğinizde temaya ait resim, .js, .css vs. dosyalar sunucudan çekilir ve tarayıcıda görüntülenir. Başka bir sayfaya geçince ise bu dosyalar tekrardan indirilir. Ama önbellekleme yaptıysanız, dosyalar tekrardan indirilmez ve sayfa daha çabuk yüklenmiş olur. Bu özelliğin birçok açıdan avantajı var:
- Ziyaretçiler sitede daha hızlı dolaşır.
- Aylık trafik daha az harcanır.
- Site daha çabuk açılacağı için Google siteyi sever, yani seo açısından da faydası çoktur.
Tabi bazı dezavantajları da yok değil. Örneğin, temada bir takım değişiklik yapmak istediğimizde, tarayıcı yeni dosyayı indirmek yerine önbellekteki dosyaya göre işlem yapabiliyor. Ama bunun da bir çaresi var. Önce bunu anlatmak yerine önbellekleme nasıl yapılır, onu anlatayım.
Tarayıcı Önbellekleme Nasıl Yapılır
Öncelikle .htaccess dosyasının yedeğini alın. Ne olur, ne olmaz! Sonrasında ise .htaccess dosyasını açın ve aşağıdaki kodu en üste yerleştirin.
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 4 weeks" ExpiresByType image/jpg "access plus 4 weeks" ExpiresByType image/jpeg "access plus 4 weeks" ExpiresByType image/png "access plus 4 weeks" ExpiresByType image/bmp "access plus 4 weeks" ExpiresByType text/css "access plus 4 weeks" ExpiresByType application/javascript "access plus 4 weeks" ExpiresByType application/x-javascript "access plus 4 weeks" ExpiresByType text/javascript "access plus 4 weeks" </IfModule>
Sadece bu kodları yerleştirmeniz yeterli. Kendinize göre düzenlemek isterseniz:
- Bazı satırları kaldırabilirsiniz. Mesela css dosyalarının önbellekleme yapılmasını istemiyorsanız, 8. satırı silebilirsiniz.
- Verdiğim örnek kodda önbellekleme süresini 4 weeks (4 hafta) olarak ayarladım. Tercihinize göre 1 year, 1 month, 5 days gibi değerler de yazabilirsiniz.
Kodları yerleştirip, seo analiz sitelerinde hala tarayıcı önbellekleme hatası gözüküyor olabilir. Mesela ayrıntılara baktığınız zaman,
http://www.google-analytics.com/ga.js
gibi bir link görülebilir. Bu durumda yapılacak birşey yok arkadaşlar. Çünkü dosya google-analytics.com'dan çekiliyor.
Siteyi Geliştirme Aşamasında Ne Yapmalı
Önbelleklemeyi yaptık, iyi güzel de sitemizde değişiklik (css dosyalarında falan) yaptığımız zaman ne yapacağız, öyle değil mi? Bunun için birkaç yol var:
- CCleaner ile tarayıcı önbelleği temizlenebilir.
- Ctrl+F5 ile sayfa yenilenebilir.
- İlk iki örnek biraz uğraştırıcı olabilir. Bu yüzden yukarıda verdiğim kodda 4 hafta yerine 1 saniye yazabilirsiniz. İlgili yere 1 seconds yazmanız yeterli. Geliştirme aşamasından sonra tekrar eski haline getirmeyi unutmayın.
- Değişiklik yaptığınız dosyanın adını değiştirebilirsiniz. Yani eski adı image.jpg olan dosyanın yeni adını yeni-image.jpg olarak değiştirebilirsiniz. (Aslında en garantisi bu.)
Sormak istediğiniz birşey olursa çekinmeden sorabilirsiniz. Bir sonraki yazımda görüşmek üzere. Kendinize iyi bakın.
Bu konuda bahsedilen önbellekleme, tarayıcı tarafında yapılan bir önbellekleme. Yani Google, her daim güncel içeriği görecektir. Endişe etmenize gerek yok.
yalnız halen Google Page Speed testinde Tarayıcı önbellekleme özelliğinden yararlanın diyor
PC başındaydım, tesadüf oldu.
adsense kodu önbelleğe alınırsa google hesabı şeyetmesin
Makaleniz çok yararlı. Yazınızda anlattığınız gibi uyguladım ve performansı gördüm. Bunun için ayrıca teşekkürler. Bir problemim yok fakat sorum olacaktı.
Önbellekleme dediğiniz olayı ben yaptım ve kendime göre ayarladım. Fakat sayfam da bir değişiklik yapsam, resim dosyalarını silsem kaldırsam yada css, js dosyaların da değişiklik yapsam veya yeni bir makale yazsam sonra da sayfamı cache eklentileri ile optimize etsem, sistemi sıfırlasam bu yine önbellekleme yönteminin önüne geçer mi ? Yani sonucta bir ziyaretçi sayfama giriş yapıyor ve önbellekleme alıyor. ben bir değişillik yapsam başka bilgisayarlar da değişiklik görünmeyecek. Görünmesi için cache ve optimize etsem önbellekleme olsa bile yine de başka bilgisayarlar da görünür mü ? Öbellekleme oldugu için en son yaptıgım değişiklik görünmeyecek. O yuzden bende cache eklentiler ile sıfırlayıp, ziyaretçi giriş yaptıgın da en son yaptıgım değişikligi farkedecek ve yniden önbellekleme alacak.
Biiraz karısık oldu ama cevaplayabilirseniz, sevinirim. Teşekkürler...
Cache eklentilerinin yaptığı iş, sunucu tarafında yapılan bir iştir. Ziyaretçi X bir sayfaya girdiğinde sunucu tarafında bir cache dosyası oluşturulur ve aynı sayfaya tekrar girildiğinde veritabanını okumak yerine cache dosyası okunur. Siz, bu esnada yazıyı değiştirdiğinizde; sunucu, veritabanı yerine cache dosyasını okuyacağı için eski yazıyı görüntülenir. Cache verilerini sildiğinizde problem düzelmiş olur. (Cache eklentileri, yazıyı güncellediğinizde kendisi otomatik olarak cacheleri siliyor da olabilir, tam emin değilim kullanmadığım için.)
Burada anlattığım önbellekleme olayı ise resim, css, js gibi dosyaların kullanıcının tarayıcısında önbelleğe alınması işlemidir. Misal benim logomun adresi bu şekilde: "http://soulmy.net/wp-content/themes/alltuts/images/logo-soulmy.png" Ben şimdi dosya adını ve url adresini değiştirmeden resmin kendisini değiştirsem kullanıcılar bunu fark etmeyecek. Çünkü taraycı önbellekteki dosyayı okuyacak. Böyle bir durumda yapılacak en güzel şey dosya adını değiştirmek. "logo-soulmy-2.png" gibi.
</IfModule>
bunun hemen üstüne ekleyebilirsiniz.
ExpiresByType application/x-shockwave-flash "access plus 4 weeks"