Cara Mempercepat Loading Blog WordPress (Minimize SQL Queries)
Cara mempercepat loading blog WordPress sebagian sudah saya sharing, baik dengan menggunakan metode kompressi maupun menggunakan plugin. Kali ini saya akan sharing cara mempercepat loading blog wordpress dengan meminimalkan permintaan queri ke database. Seperti kita ketahui WordPress adalah mesin blog yang dibangun dengan bahasa pemrograman PHP dan basis data (database) MySQL, sehingga setiap kali blog diakses maka akan terjadi permintaan queri ke database terlebih dahulu sebelum sebuah postingan atau yang lainnya ditampilkan ke pembaca. Semakin banyak permintaan queri ke database maka akan semakin lama waktu loading yang dibutuhkan.
Supaya loading blog menjadi lebih cepat, maka kita harus meminimalkan permintaan queri ke database (membuatnya menjadi static dalam waktu tertentu dalam bentuk cache), caranya bisa menggunakan plugin DB Cache Reloaded, W3 Total Cache, WP Widget Cache atau yang lainnya.
Walaupun mungkin sudah ada yang menggunakan plugin tersebut, kita masih bisa mengoptimalkannya lagi. Seperti kita ketahui sebenarnya ada beberapa permintaan queri yang bisa kita pangkas atau membuatnya menjadi static untuk selamanya (sesuai kebutuhan), seperti nama blog dan tagline atau diskripsi blog, carshet Content-Type blog, language_attributes, url feed blog, url xmlrpc, url file css, javascript dan lain-lain yang ada di file header.php yang ada di folder theme.
Binguuung, oke saya kasih contoh, untuk nama blog dan tagline kode akan ditulis seperti ini (tidak persis sama tergantung jenis themenya) :
<h1 id="title"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></h1>
<div id="tagline"><?php bloginfo('description'); ?></div>kode tersebut biasanya ditempatkan di file header.php yang ada di folder theme atau file header.php yang ada di folder template (seperti theme inove), theme lain malah ada yg ditempatkan di file functions.php, intinya cari tag H1 ini biasanya digunakan untuk judul blog dan diskripsi/tagline.
Tag tersebut bisa kita buat menjadi static contohnya jadi seperti ini :
<h1 id="title"><a href="http://domainanda.com"/>Nama Blog Anda</a></h1> <div id="tagline">Diskripsi/Tagline Blog Anda</div>
Sesuaikan dengan url blog, nama blog dan diskripsi blog anda.
Untuk language_attributes, carshet Content-Type, url feed blog, url xmlrpc, url file css, javascript dan lain-lain biasanya kodenya tertulis seperti ini (dinamic ) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<link rel="alternate" type="application/rss+xml" title="<?php _e('RSS 2.0 - all posts'); ?>" href="<?php bloginfo( 'rss2_url' ); ?>" />
<link rel="alternate" type="application/rss+xml" title="<?php _e('RSS 2.0 - all comments'); ?>" href="<?php bloginfo('comments_rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<style type="text/css" media="screen">@import url( <?php bloginfo('stylesheet_url'); ?> );</style>
atau
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/stye.css" type="text/css" media="screen" />
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/javascript.js"></script>Dibuat static menjadi seperti di bawah ini (jangan lupa dibackup dulu code aslinya atau sekalian satu file utuh untuk berjaga-jaga ada kesalahan penulisan) atau bisa dicoba di server lokal :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="alternate" type="application/rss+xml" title="RSS 2.0 - all posts" href="http://domainanda.com/feed" /> <link rel="alternate" type="application/rss+xml" title="RSS 2.0 - all comments" href="http://domainanda.com/comments/feed" /> <link rel="pingback" href="http://domainanda.com/xmlrpc.php" /> <style type="text/css" media="screen">@import url( http://domainanda.com/wp-content/themes/folderthemeanda/style.css);</style> atau <link rel="stylesheet" href="http://domainanda.com/wp-content/themes/folderthemeanda/style.css" type="text/css" media="screen" /> <script type="text/javascript" src="http://domainanda.com/wp-content/themes/folderthemeanda/namafilejavascriptanda.js"></script>
Kode tersebut bisa dicek dengan melihat source code blog masing-masing silahkan disesuaikan. Untuk url feed juga bisa langsung diganti dengan url feedburner anda.
Selain di file header.php di bagian footer dan sidebar juga ada coding php yang sifatnya dinamic (queri sql ke database) seperti nama blog, url rss, Subscribe to RSS, email feed dan lain-lain. Bahkan beberapa plugin yang kita gunakan bisa kita buat static seperti url css, javascript dan lain-lain dan bisa dikombine jadi satu file, disamping mengurangi queri ke database juga untuk mengurangi http request. Kalaupun masih menggunakan plugin semisal DB Cache dan sejenisnya maka permintaan queri cachenya akan menjadi minimal, karena sebagian besar sudah kita buat jadi static, sehingga beban server juga makin berkurang.
Dengan metode ini saya bisa mengurangi/memangkas permintaan queri ke database kurang lebih ada 15 queri, termasuk queri yang berasal dari plugin.
Ga’ ngerti mass..
Coz baru nich di WordPress.org..
Reply
mas kalau bicara soal sql ini saya mau tanya,di sql saya terdapat salah satu penampakan aneh yang menyertakan sebuah link iklan, setelah saya mencoba membuat CDN miror dengan W3TC ke speedymirror,query sql tersebut sudah saya hapus,tetapi masih nongol aja di blogku,bahkan dihalaman admin juga nongol, ini yang muncul mas
ada solusi mas, terimakasih sebelumnya
Reply
D3NYC4HYOE Reply:6-07-2011 at 05:05
maaaf mas kode ini yang muncul
<script type="text/javascript"><!--
google_ad_client = "pub-1671884496900595";
/* 728x90, created 6/30/11 */
google_ad_slot = "7699147185";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Reply
alexin Reply:6-07-2011 at 09:14
kok aneh mas..itu kan script buat iklan G**gle *adsense
trus sapa yg masang itu mas?
Reply
@alexin: kurang tau juga mas,itu muncul setelah saya mengaktifkan CDN di W3 total cache,tiba2 muncul script itu di SQL-nya,sudah diapus di SQL-nya tapi malah masih nongol aja sampai sekarang,bahkan sudah coba buat database baru masih nongol aja,liat aja diblog ane
Reply
punya ane kgak ada file extensi *.JS om …??? gimana nii…??
Reply
terima kasih pak alwi,blog anda yang telah menjadikan saya lebih dan berani belajar ttg semua yang anda tulis.( walaupun menguras pikiran tentunya ).
saat ini blog saya sudah terjadi perubahan yang signifikan dalam kecepatan loading..terima kasih dan saluto untuk anda MASTER
Reply
Tips yang ringan tapi bikin blog saya jadi lebih ringan. Thx mas.
Reply
makasih banget mas tutorialnya
ane dah praktekin tuh
Reply
canggih nih tutorialnya…
Reply