Buradaki konuya yazdığım posttan sonra pm, mail, telefon vs. yoluyla pek çok arkadaş aynı soruyu sordu. %20'den %2'ye nasıl düşüyr CPU tüketimi diye. Herkese tek tek cevap yazmaktan yorulduğum için yapılabilecek basit birkaç şeyi liste halinde ekleme gereği duydum. Aslında çoğu bilindik şeyler. yinde hepsini tek tek yazacağım.
- Kesinlikle WordPress, kullandığınız eklentiler, temanız son sürüm olsun.
- Mümkün olduğunca az eklenti kullanın. İki satır kodla yapılabilecek şeyler için eklentilerle veritabanınızı şişirmeyin.
- Öncelikli olarak temanızı optimize edin.
- Temayı sadece bir sitede kullanıyorsanız header.php sayfasında yeralan bağlantıların tamanını sorgudan arındırıp
http://site.com/wp-content/themes/temaniz/style.css
http://site.com/wp-content/themes/temaniz/js/jquery.js
gibi statik html kodları haline getirin. - Yaptığınız temayı dağıtacak veya satacaksanız, header.php dosyası içinde, < head > etiketinden hemen sonra
<base href="<?php echo get_option('home'); ?>" />kodunu ekleyip bundan sonraki sorgu cümlelerini wp-content/themes/temaniz/style.css şeklinde statik olarak yazın. - charset kodunuzu < meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / > şeklinde statik yazın.
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> yerine
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - yazılar" href="./feed" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - yorumlar" href="./comments/feed" />
<link rel="pingback" href="./xmlrpc.php" />
kullanın. Buradaki ./ ifadesi sitenin kök dizinini işaret eder.
- CSS bilginiz yeterliyle css sprite tekniğini kullanın.
- CSS dosyanızda aynı etiketi farklı yerede defalarca kullanmayın. Bir tane h2 sınıfınız olsun ve her yerde aynını kullanın. Background-color, background-image, background-repeat, background position veya font-family, font-size, font-weight gibi bir kullanım yerine hepsini tek etikette font: ... şeklinde kullanın. aynı şekilde margin ve padding değerlerini ayrı ayrı vermek yerine tek seferde kullanın. margin ve padding değerleri üstten başlayıp saat yönünde ilerler.
- CSS ve JavaScript dosyalarınızdaki açıklama satırlarını silip, noktalama hatası yoksa minimize edecek şekilde satırları birleştirin. Mümkün olduğunda boşluk kullanmadan tek satır halinde kullanın. Örneğin: div#salas{color:red; paddin:5px; margin:0 auto;} gibi tek satırda birleştirin.
- Cache eklentisi yerine eburhan'ın burada paylaştığı cache sınıfını kullanın. PHP bilmiyorsanız cache eklentisi kullanın.
- Sunucunuzu gzip desteği varsa mutlaka gzip sıkıştırmayı aktif edip kullanın.
- İçeriklerinizde çok fazla resim varsa jQuery Image Lazy Load eklentisini kullanın.
- Yeni bir eklenti deneyecekseniz bunu localde yapın, sitelerinize sürekli eklenti kurup kaldırmayın. Aşağı yukarı her eklenti veritabanında tablo bırakır ve sorgular sürekli çalışır.
- Haftada bir PhpMyAdmin'den veritabanı tablolarınızı optimize edin.
- Mümkün olduğunca yazılarınızı bilgisayarınızda bir metin editörü ile yazdıktan ve imla kontrollerini yaptıktan sonra sitelerinize ekleyin. Böylece WorpPress 2.6 ile gelen yazının sürümleri özelliğine ihtiyacınız kalmayacaktır. Ayrıca bu özelliği wp-config içine
define('WP_POST_REVISIONS', false); ekleyerek kapatın.
Şimdilik aklıma gelenler bunlar. Daha sonra unuttuğum birşey varsa onları da eklerim.
Bu 12 madde ile sunucunuz, temanız ve sitenize göre %5-25 arası CPU optimasyonu olacağının garantisini verebilirim.