Tarayıcı Önbellekleme Nedir, Nasıl Yapılır Versiyon 2.10

soulmy Örnek Kodlar 14.Eki.2012 183 görüntülenme 25 yorum

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. smile smiley

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? unknown smiley

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. smile smiley

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? big grin smiley 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. bye bye smiley

Yorumlar

Fiko
merhaba, https://www.efekulucka.com sitemizde bazı ufak düzenlemeler yapılması için ekip arkadaşı arıyorum. 0544 232 40 85 ten ulaşabilirsiniz
birisi
Anlatim icin tesekkurler de aklima takilan nokta bunj bi, yapinca google botlari yada indexlenme konusunda sorun yasarmiyi ?. Ornegin 4hafta dedik ya google o dosyaya bakip bu site 4 hafta tutuyorysa bunum indexlenmesini de ona gore yapalim dermi acaba smile smiley
soulmy
Hayır, bir sorun yaşamazsın, aksine faydasını görürsü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.
mrc
hocam benim sitem asp.net ile c# dilinde kodlandı ona nasıl uygulayabirim bunu?
soulmy
Bilemiyorum hocam.
Kibirli kirpi
hocam sizin dediğiniz işlemi yaptım yanlız (http://www.kibirlikirpi.com ) bakarsanız.
yalnız halen Google Page Speed testinde Tarayıcı önbellekleme özelliğinden yararlanın diyor
Hasan aslan
sağolasın hızlı cevap verdin
soulmy
Rica ederim, ne demek.

PC başındaydım, tesadüf oldu. smile smiley
Hasan aslan
peki bu kod adsensenin js dosyasında önbellekleme yapmaz dimi ?
adsense kodu önbelleğe alınırsa google hesabı şeyetmesin smile smiley
soulmy
Adsense javascript dosyası, Google sunucusundan çekildiği için etkilemez.
Yunus Emre Polat
çok teşekkür ederim kod işe yarıyor, değerli bir paylaşım...
Salih Toy
Merhaba Hocam.

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. smile smiley 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... smile smiley
soulmy
Öncelikle şunu açıklığa kavuşturulım. Cache eklentilerinin sayfaları cachelemesiyle, burada anlatılan önbellekleme olayı aynı değil.

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.
sevban
Benim de flash oyun sitem var ve en son dediğiniz kodu tam olarak nereye ekleyeceğim?
soulmy
</IfModule>

bunun hemen üstüne ekleyebilirsiniz.
Berk Altunkılıç
Benim oyun sitem mevcut, oyunların swf dosyaları trafik harcıyor swf'yi nasıl tanımlayabiliriz.
soulmy
Bunu ekler misin?

ExpiresByType application/x-shockwave-flash "access plus 4 weeks"