Website yang lambat berpotensi ditinggalkan pengunjungnya. Artikel ini ditulis untuk memberikan panduan cara mempercepat website WordPress dengan lengkap.
Kecepatan sebuah website adalah hal mutlak yang harus Anda capai sebagai seorang webmaster. Website yang lambat berpotensi ditinggalkan oleh pengunjungnya.
Namun memang secara umum cara optimasi kecepatan WordPress bisa dikatakan hanya itu-itu saja. Tapi dalam beberapa poin, ada tips dan trik tertentu supaya bisa memberikan hasil signifikan dalam mempercepat website berbasis WordPress.
Intro
Sedikit intro, kalau Anda mencari-cari panduan cara mempercepat website WordPress di internet, sebagian besar Anda hanya akan menemukan cara setting plugin cache dan plugin optimasi.
Masalahnya, optimasi kecepatan WordPress tidak hanya tentang setting plugin cache dan selesai. Mungkin juga Anda beruntung hanya dengan setting plugin optimasi dan tujuan Anda memiliki WordPress yang cepat tercapai.
Tidak semua orang akan seberuntung itu. Saya memperhatikan di berbagai grup diskusi banyak yang memiliki masalah dengan kecepatan WordPress mereka yang berlarut-larut. Sudah mencoba plugin ini itu namun tidak mendapatkan hasil seperti yang diharapkan.
Masalahnya adalah, orang-orang ini tidak tahu apa yang harus dilakukan untuk melakukan optimasi. Sekali lagi, optimasi WordPress tidak hanya instal plugin dan kemudian selesai.
Berkaca dari hal tersebut, akhirnya artikel saya tulis untuk memberikan panduan yang lebih lengkap. Saya tekankan bahwa ini bukanlah panduan setting plugin.
Saya akan menjabarkan berbagai aspek yang bisa Anda lakukan agar website WordPress Anda benar-benar cepat diakses oleh pengunjung manusia (bukan bot dan bukan hasil tes saja).
Panduan cara mempercepat website WordPress ini akan menggabungkan optimasi kecepatan tanpa plugin yang dipadukan dengan penggunaan plugin pendukung (nyaris mustahil melakukan optimasi kecepatan WordPress tanpa bantuan plugin).
Saya akan mencoba menampilkan panduan yang semoga saja berbeda dari tutorial optimasi lain dengan misi bisa membantu Anda mencapai tujuan yaitu website WordPress yang cepat untuk diakses pengunjung.
Sebagai informasi:
- Cara optimasi WordPress berikut sudah saya terapkan di semua (50+) blog berbasis WordPress dan hasilnya sangat memuaskan
- Ini bukanlah panduan setting plugin, tapi sebuah panduan penerapan strategi dari berbagai aspek secara menyeluruh agar website WordPress cepat diakses
- Saya berjanji panduan ini akan memberikan Anda beberapa strategi yang sebagian (mungkin) belum pernah Anda ketahui.
1. Memilih Hosting
Kita awali optimasi ini dengan sedikit membahas tentang pemilihan hosting. Inilah kunci utama kecepatan website WordPress. Karena apapun yang akan dilakukan untuk optimasi, jika pemilihan hosting tidak tepat maka hasilnya adalah zonk!
1.1 Lokasi Server
Hal pertama yang harus ditentukan ketika memilih hosting yang akan digunakan adalah lokasi servernya. Pilih lokasi server hosting yang sama atau dekat dengan lokasi target pengunjung website.
Idealnya, jika Anda menargetkan pengunjung dari Indonesia, maka pilihlah server hosting yang berada di Indonesia. Alternatif lain adalah server yang berlokasi di Singapura juga bisa menjadi pilihannya.
Sangat tidak disarankan memilih lokasi server hosting di Eropa atau Amerika jika Anda membidik target pengunjung lokal Indonesia. Semakin jauh lokasi server dengan pengunjung, maka latensi juga makin besar dan latensi besar membutuhkan waktu loading lama.
Selain itu TTFB (Time to First Byte) juga akan semakin lama yang tentu akan mempengaruhi waktu pemuatan.
Baca juga: Apa Itu TTFB (Time to First Byte)?
1.2 Tipe Hosting
Hal berikut yang harus dipertimbangkan adalah tipe hosting yang akan digunakan. Ada 3 macam server yang dipilih sesuai dengan budget yang dimiliki serta jumlah pengunjung website.
Shared Hosting cocok digunakan bagi Anda yang baru saja akan memulai membangun website atau blog. Namun dengan pengunjung kelas ringan hingga menengah, shared hosting masih bisa menanganinya.
Jika budget Anda masih minim, shared hosting bisa menjadi pilihan yang logis. Namun tentu memilih shared hosting pun juga harus selektif.
Saat ini yang sedang populer dan menanjak adalah cloud shared hosting. Levelnya sudah berbeda dengan shared hosting biasa. Saran saya silahkan menggunakan cloud shared hosting yang benar-benar real cloud bukan hanya gimmick menggunakan embel-embel cloud namun hanya shared hosting biasa.
Infrastruktur cloud shared hosting yang mumpuni bahkan bisa menampung jumlah pengunjung hingga ribuan dalam sehari. Apa sebenarnya cloud hosting atau komputasi awan ini?
Cloud hosting adalah tipe hosting yang dapat membagi sumber daya (resource) server secara terpisah seperti besaran CPU, RAM dan storage untuk masing-masing pengguna dalam server itu sendiri dan resource dapat dikurangi atau ditingkatkan kapan saja dibutuhkan.
Kelebihan teknologi cloud hosting adalah dapat memastikan bahwa tidak ada satu website pun yang bisa menyebabkan server down jika salah satu pengguna mengalami gangguan atau overload.
1.2.2 VPS (Virtual Private Server)
VPS atau Virtual Private Server adalah hampir sama dengan Cloud Hosting yaitu sebuah teknologi partisi ataupun membagi sumberdaya (resource) sebuah server fisik menjadi beberapa server virtual dan di dalam server virtual tersebut bisa diinstall sistem operasi dan software serta memiliki kemampuan menjalankan sistem operasi sendiri seperti layaknya sebuah server fisik.
Kelebihan VPS adalah memiliki akses root untuk OS Linux dan administator untuk OS Windows, dan memiliki ip public.
Kekurangan layanan VPS adalah tidak cocok untuk pemula karena dibutuhkan keahlian seperti mengelola server, kerusakan hardware server akan mempengaruhi semua VPS dalam server fisik yang sama dan harga yang lebih mahal dari layanan cloud hosting.
1.2.3 Dedicated Server
Dedicated Server disebut juga dedicated hosting adalah layanan hosting dimana Anda dapat menyewa seluruh server dan tidak dibagi dengan siapapun. Kelebihan layanan dedicated server adalah:
- Memiliki fisik server secara keseluruhan
- Akses root untuk OS Linux dan administrator untuk OS Windows
- Data lebih aman dan masalah privasi lebih terjamin
- Sumber daya (resource) yang lebih tinggi dari layanan VPS dan cloud hosting
- Memiliki ip public
- Prioritas layanan
- Jaminan kerusakan hardware pada server menjadi tanggung jawab provider hosting
- Mengurangi biaya infrastruktur perusahaan dan manajemen IT.
Kekurangan layanan dedicated server adalah tidak cocok untuk pemula karena dibutuhkan keahlian mengelola server secara penuh, harus melakukan update, patch dan monitoring, harga sewa server dedicated yang mahal, semakin tinggi spesifikasi server maka biaya sewa server semakin mahal (sumber: rackh.com).
1.3 HTTP / 2
Hal yang tidak kalah penting lagi adalah pastikan hosting yang digunakan sudah mendukung protokol HTTP / 2. Secara singkat, HTTP / 2 akan mempercepat cara penyampaian situs website. Selain itu file WordPress juga sudah tidak perlu khawatir tentang concatentation (menggabungkan file).
Apapun yang akhirnya Anda pilih, sekali lagi saran terbaik saya pilih lokasi server yang sama dengan target pengunjung website.
2. Update
Selalu update software pendukung website WordPress Anda. Pastikan selalu menggunakan versi WordPress terbaru, update plugin dan theme secara berkala.
Hal penting yang tidak boleh dilewatkan adalah selalu update versi PHP yang terbaru (minimal versi 7). PHP versi 7.3 dapat menangani 3x lebih banyak permintaan (transaksi) per detik dibandingkan PHP 5.6.
PHP versi 7.3 juga rata-rata 9% lebih cepat jika dibandingkan dengan PHP 7.2. Penggunaan PHP versi terbaru tidak hanya mempercepat sisi front-end (halaman depan website), namun juga memengaruhi kecepatan respon back-end atau dashboard wp-admin WordPress Anda.
3. DNS
Pemilihan DNS (Domain Name System) akan memberikan dampak yang signifikan dalam proses membantu mengarahkan lalu lintas di Internet dengan menghubungkan nama domain dengan server web yang sebenarnya.
Secara standar, ketika Anda membeli sebuah domain dan kemudian mengarahkan nameservers ke hosting, maka hosting Anda akan menggunakan DNS standar milik hosting tersebut.
DNS kelas premium selalu lebih baik. Namun untuk menggunakan DNS level premium tentu membutuhkan biaya.
Tidak masalah jika Anda memiliki modal untuk hal tersebut. Bagaimana jika kita ingin menggunakan DNS gratis namun berkualitas?
Solusinya? Gunakan DNS gratis milik Cloudflare yang saat ini terbukti sebagai DNS tercepat (bukti: dnsperf).
Jadi jika WordPress Anda saat ini masih menggunakan nameservers standar, segeralah beralih ke DNS yang lebih cepat seperti milik Cloudflare.
4. Tema
Pemilihan tema adalah salah satu kunci “sukses” supaya WordPress Anda cepat diakses oleh pengunjung. Dalam memilih tema yang akan digunakan, Anda harus memahami bahwa saat ini adalah jamannya “smartphone” dimana pengunjung website saat ini mayoritas menggunakan ponsel.
Faktor yang harus Anda pertimbangkan ketika memilih tema untuk WordPress saat ini adalah:
- Ringan dan responsif (mampu beradaptasi dengan tampilan ponsel).
- Mendapatkan dukungan penuh dari pengembang sehingga selalu mendapatkan update secara rutin.
- Mampu menampilkan bagian terpenting dalam website yaitu informasi dengan jelas.
Percayalah, saya yakin tema yang terlalu banyak fitur (yang sebagian bahkan mungkin kurang berguna) hanya akan membuatnya makin berat. Yang dibutuhkan saat ini adalah tema yang mampu menampilkan informasi kepada pengunjung dengan jelas dan cepat.
Intinya adalah gunakan tema yang mampu menampilkan informasi (karena itu yang dicari oleh pengunjung website) dan tidak memberikan beban berlebihan baik ke server hosting dan ke pengunjung (terutama bandwidth).
Sejauh pengalaman saya hingga saat ini, beberapa tema berikut ini memiliki fitur yang lengkap, fleksibel dan tentu saja ringan serta ramah kepada pengunjung:
- GeneratePress (gratis dan premium).
- Astra (gratis dan premium).
- SuperFast (premium).
- OceanWP (gratis dan premium).
- Kadence WP (gratis dan premium).
Ada yang lain?
Mungkin Anda butuh:
5. Plugin
Mungkin Anda pernah melihat dan membaca statemen berikut ini:
Semakin banyak plugin yang digunakan akan membuat WordPress semakin lambat!
Saya berani mengatakan bahwa itu hanyalah mitos!
Bukan jumlah plugin yang akan membuat WordPress makin lambat, namun kualitas kode dan pengembangan plugin yang buruk lah yang akan membuat lambat.
Tidak masalah Anda memasang 30-40 plugin untuk 1 situs WordPress selama semuanya berguna dan dikembangkan dengan sangat baik oleh pihak developer.
Anda hanya menggunakan 5 plugin, namun semuanya memiliki pemrogaman yang buruk yang berimbas mempengaruhi kecepatan WordPress Anda tentu bukanlah hal yang kita inginkan.
Dan ketika menggunakan plugin, jangan menggunakan dua plugin berbeda namun memiliki fungsi yang sama, seperti:
- Menggunakan dua plugin cache = mubazir dan akan memberatkan hosting
- Menggunakan dua plugin SEO dengan harapan makin lancar masuk halaman 1 pencarian (percuma)
- Menggunakan plugin SEO dan plugin sitemap generator (hampir semua plugin SEO sudah menyertakan sitemap)
- Menggunakan dua plugin security berbeda dengan harapan akan memberikan kemanan berlapis-lapis (percuma dan akan memberatkan server)
- Dan seterusnya.
Selain itu, beberapa plugin yang “menyuntikkan” data ke dalam database dalam jumlah besar harus sebisa mungkin. Plugin yang biasanya melakukan hal ini adalah plugin popular posts (artikel populer) dan plugin “artikel terkait”.
Plugin dengan sifat seperti di atas akan secara kontinyu melakukan kueri (permintaan) ke database dan memberikan beban. Hindari juga plugin optimasi gambar yang melakukan proses di server hosting Anda.
Ada beberapa plugin yang dikenal rakus sumber daya dan memberatkan kinerja server hosting. Saya tidak akan menyebutkan apa saja plugin tersebut karena saya yakin Anda sudah bisa mencarinya sendiri (beberapa blog menyertakan bukti teknis betapa sebuah plugin benar-benar rakus resources).
Dan satu hal lagi yang penting adalah, hapus saja plugin yang sudah tidak digunakan.
7. Optimasi Homepage (Beranda)
Lakukan optimasi pada tampilan homepage WordPress. Pengunjung datang untuk mencari informasi, buang segala macam tampilan seperti widget yang tidak terlalu diperlukan.
Semakin minimalis yang tampil, semakin cepat halaman akan dimuat.
Berikut ini beberapa hal yang bisa dilakukan untuk optimasi halaman homepage:
- Kurangi jumlah postingan yang tampil di beranda (cukup 5-7 artikel)
- Tampilkan excerpts, jangan postingan penuh
- Kurangi jumlah widget atau bahkan tidak perlu ditampilkan sama sekali (tampilkan pada halaman artikel). Jika memang harus menampilkan widget, tampilkan saja yang memang penting.
Semakin bersih beranda Anda, semakin cepat halaman akan dimuat.
8. Cache
Faktor utama lain yang sangat mempengaruhi kecepatan website WordPress adalah manajemen cache.
Apa itu cache?
Setiap halaman website yang dikunjungi melakukan permintaan ke server yang kemudian diproses oleh server tersebut (termasuk database), dan kemudian hasil akhirnya dikirim dari server ke browser pengguna. Hasilnya adalah situs web Anda, lengkap dengan semua file dan elemen yang membuatnya terlihat seperti aslinya.
Dalam sebuah website, ada beberapa elemen seperti header, gambar, menu, dan blog. Karena server harus memproses semua permintaan tersebut, perlu beberapa waktu agar halaman website dikirimkan ke pengguna secara lengkap.
Di sinilah cache akan memiliki peran. Cache akan menginstruksikan server untuk menyimpan beberapa file ke disk atau RAM (tergantung pada konfigurasinya).
Ketika pengunjung mengakses website, mereka akan dilayani oleh file cache yang sudah tersimpan tanpa perlu mengakses satu persatu file aslinya, hasilnya akan lebih ringan dan cepat.
Pada dasarnya, proses ini akan mengurangi jumlah pekerjaan yang diperlukan untuk menghasilkan tampilan halaman. Hasilnya, halaman website akan termuat lebih cepat, langsung dari cache .
Dengan manajemen cache yang tepat, ada dua keuntungan utama yang akan didapatkan:
- Kinerja server hosting akan menggunakan sedikit sumber daya yang otomatis akan mengurangi beban server hosting yang digunakan
- TTFB yang lebih rendah. Manajemen cache yang tepat bisa memangkas TTFB hingga 90 persen.
Cache sendiri masih terbagi menjadi dua jenis yaitu:
- Server cache
- Plugin cache.
Jika Anda menggunakan shared hosting, server cache tidak bisa Anda “sentuh”. Hal tersebut tergantung pihak hosting bagaimana meracik cache dalam sisi server yang mereka tangani.
Jika pihak hosting sudah meracik server caching dengan benar, maka hal tersebut adalah keuntungan yang akan kita dapatkan.
Jika Anda menggunakan VPS dan dedicated server, maka pengaturan sepenuhnya berada dalam genggaman Anda. Semakin tepat racikan Anda maka semakin cepat juga website WordPress Anda.
Sedangkan manajemen cache dengan plugin juga akan membantu secara signifikan terhadap kecepatan WordPress.
Beberapa plugin cache yang sudah sangat kita kenal sebagian di antaranya adalah:
- Wp Rocket (premium)
- Litespeed Cache (gratis)
- W3 Total Cache (gratis)
- WP Fastest Cache (gratis)
- WP-Optimize (gratis)
- WP Super Cache (gratis)
- Dan sebagainya.
Semua plugin yang disebutkan di atas dikenal sangat baik dalam membantu proses caching WordPress. Tidak masalah plugin mana yang Anda gunakan karena kesemuanya sudah terbukti mampu menangani caching dengan sangat baik.
Catatan:
- Plugin cache itu ibarat “jodoh”. Tidak semua setting yang diterapkan di website A akan memiliki hasil sama di website B meski tema dan plugin pendukung yang digunakan sama persis. Kuncinya adalah mencoba satu persatu plugin cache dan optimasi mana yang cocok untuk website Anda.
9. Optimasi File Statis
Manajemen file statis WordPress adalah salah satu kunci lain yang sangat mempengaruhi kecepatan akses website WordPress. Apa saja file statis WordPress?
- JavaScript
- CSS
- Gambar
- Font.
Salah satu strategi untuk mempercepat WordPress adalah mengkompres, minify, dan combine (merge) file statis (terutama JavaScript dan CSS).
9.1 Minify
Dengan mengurangi jumlah panggilan dan kompres ukuran file CSS dan JS, hal ini dapat meningkatkan kecepatan dalam pemuatan website. Inilah tugas minify yang akan mengkompres ukuran CSS dan JS sehingga membantu mengurangi jumlah permintaan (request).
9.2 Combine
Melakukan combine (merging) file JS dan CSS juga mampu menurunkan request secara drastis. Namun ada beberapa hal yang harus diketahui sebelum melakukan combine.
Jika server yang digunakan sudah menggunakan protokol HTTP/2, maka combine tidak perlu dilakukan karena mubazir. Plugin seperti WP Rocket juga memberikan peringatan di pengaturan combine milik mereka agar tidak perlu melakukan combine pada protokol HTTP/2.
Jadi apakah perlu melakukan combine jika memang sudah menggunakan HTTP/2 ?
- Tidak disarankan jika website Anda sudah memiliki ratusan atau bahkan ribuan halaman
- Tidak disarankan jika website Anda dibangun dengan page builder seperti contohnya Elementor
- Aman jika website Anda belum memiliki banyak halaman
- Aman jika tema Anda tidak memiliki banyak baris kode JS dan CSS (GeneratePress memiliki baris kode yang “bersih” dan ramping, jadi aman untuk melakukan combine).
Catatan: tidak masalah meski pada akhirnya Anda memaksakan untuk melakukan combine JS dan CSS agar mendapatkan skor yang bagus di GTmetrix atau Google Pagespeed Insight. Pastikan saja tampilan website tidak berantakan dan fungsi yang bergantung pada JavaScript berjalan dengan benar.
9.3 Optimasi Gambar
Gambar yang tidak dioptimasi dengan baik bisa menjadi salah satu pemicu lambatnya proses pemuatan website. Untungnya proses optimasi gambar untuk WordPress saat ini sangat mudah.
Ada 3 pilihan cara untuk optimasi gambar sebelum ditampilkan kepada pengunjung:
- Plugin Optimasi Gambar
- CDN khusus gambar
- Kompres manual sebelum upload ke WordPress.
9.3.1 Plugin Optimasi Gambar
Keuntungan menggunakan WordPress adalah banyaknya pilihan plugin yang bisa membantu. Plugin optimasi gambar adalah salah 1 kebutuhan dasar yang harus digunakan. Saya yakin Anda sudah mengetahui beberapa plugin optimasi gambar untuk WordPress.
Plugin untuk optimasi gambar yang sangat disarankan adalah:
Hal terpenting saat memilih plugin optimasi gambar adalah menggunakan plugin yang melakukan proses kompresi dan mengoptimalkan gambar secara eksternal di server mereka.
9.3.2 CDN Gambar
Alternatif berikutnya untuk mengoptimasi gambar adalah menggunakan CDN khusus gambar. Semua proses optimasi akan dilakukan pada sisi server milik CDN yang tentu saja memberikan keuntungan server hosting kita berkurang bebannya.
Berikut ini beberapa layanan CDN optimasi gambar yang sangat saya rekomendasikan:
- Flying Images
- Gumlet (berbayar)
- Optimole
- ShortPixel Adaptive Images.
9.3.3 Kompresi Manual
Dalam beberapa hal, saya lebih suka melakukan sesuatu tanpa bantuan plugin. Salah satunya adalah kompresi dan optimasi gambar. Cara manual ini tidak sulit dilakukan namun memang membutuhkan sedikit usaha.
Sebelum kita upload gambar, proses kompresi dan optimasi dilakukan secara manual menggunakan bantuan tools yang bisa digunakan secara online. Jadi file gambar yang nantinya kita upload sudah dalam keadaan terkompresi dengan ideal.
Dua tools kompresi dan optimasi favorit saya adalah squoosh.app dan TinyPNG. Mana yang lebih baik? Saya sangat menyarankan squoosh karena memberikan pilihan output dalam beberapa format berbeda.
Format gambar yang disarankan adalah JPG. Namun saat ini Google merekomendasikan penggunaan format gambar WebP. Ukurannya yang ringkas namun memiliki kualitas resolusi yang masih sangat baik adalah keutungannya.
Saat ini (ketika artikel ini ditulis), memang belum semua browser support dengan format WebP. Untuk melayani penggunaan WebP, kita bisa menggunakan bantuan plugin khusus WebP atau CDN gambar.
CDN gambar atau plugin WebP memiliki automatisasi dalam hal penampilan format gambar. Jika pengunjung menggunakan browser yang sudah support Webp (seperti Chrome, Firefox, Edge dan Opera), maka secara otomatis gambar dengan format WebP yang akan ditampilkan.
Dan jika pengunjung menggunakan browser yang belum support WebP (Safari), maka yang ditampilkan adalah format gambar yang asli (JPG atau PNG).
Plugin yang direkomendasikan untuk mengolah format gambar WebP adalah WebP Converter for Media dan WebP Express.
Baca juga: Optimasi Gambar WordPress dengan CDN Gratis
9.3.4 Lazy Loading
Lazy Load adalah proses yang hanya memuat gambar “above the fold” (gambar yang terlihat di jendela browser pengunjung), kemudian saat pengunjung menggulir ke bawah, gambar lain mulai dimuat, tepat sebelum ditampilkan.
Lazy Load tidak hanya akan mempercepat pemuatan halaman Anda, tetapi juga dapat menghemat bandwidth dengan memuat lebih sedikit data untuk pengguna yang tidak menggulir halaman Anda sepenuhnya.
9.3.5 Font
Selalu “bijaksana” menggunakan system fonts. Penggunaan Google Fonts atau fonts lain apapun yang berasal dari pihak ke 3 (eksternal) akan selalu “menyusahkan”. Fonts bisa menjadi salah satu penyebab waktu pemuatan berjalan lebih lambat jika tidak ditangani dengan tepat.
Berikut beberapa keuntungan menggunakan system fonts:
- Tidak ada permintaan jaringan ke pihak luar
- Tidak membutuhkan waktu pemuatan
- Meminimalkan masalah CLS (Cumulative Layout Shift).
Hasilnya adalah: cepat.
Beberapa tema WordPress untungnya menyediakan beberapa pilihan fonts lokal yang bisa dipilih. Namun jika tema Anda tidak mendukung penggunaan dan pemilihan fonts, memang solusinya adalah menggunakan fonts pihak ke 3 seperti Google Fonts yang memiliki banyak pilihan menarik.
Solusi lain jika Anda memilih menggunakan Google Fonts dan tidak ingin menambah request jaringan yang macam-macam, pilihannya adalah melokalkan fonts tersebut.
Plugin seperti OMGF bisa membantu untuk melokalkan Google Fonts. Hanya saja untuk beberapa orang, pengaturan plugin ini dirasa rumit (seharusnya mudah namun memang tampilan antar muka yang dibuat oleh developer terlihat membingungkan bagi yang belum terbiasa).
Bagi pengguna tema GeneratePress Premium, untungnya ada cara yang mudah dan tanpa plugin untuk melokalkan Google Fonts. Saya sudah menyiapkan panduan melokalkan Google Fonts di tema GeneratePress di artikel berikut.
Baca juga: Menggunakan Google Fonts Local di GeneratePress
10. Optimasi Database
Database yang teroptimasi dengan baik adalah faktor penting berikutnya dalam mendukung kecepatan website WordPress. Layaknya sebuah kendaraan, database memerlukan perawatan dan peningkatan agar selalu dalam kondisi “prima”.
10.1 InnoDB
Mungkin sebagian dari kita masih awam dengan database. Salah satu optimasi yang bisa dilakukan untuk meningkatkan performa database adalah dengan menggunakan engine penyimpanan InnoDB. Standar engine database kebanyakan masih menggunakan MyISAM.
Bagaimana supaya kita tahu engine apa yang digunakan database WordPress milik kita?
Pertama:
Buka tabel database WordPress Anda dan kemudian lihat pada bagian “type” disitu akan tampil jenisnya.
Alasan kenapa harus menggunakan InnoDB adalah karena InnoDB memiliki proses kueri (permintaan) database yang lebih cepat dibandingkan dengan MyISAM. Semakin cepat kueri tentu saja waktu pemuatan website juga semakin cepat.
Bagaimana cara konversi dari MyISAM ke InnoDB?
Penting:
- Backup dulu database Anda sebelum melakukan langkah berikut
- Versi minimal database yang digunakan adalah MySQL 5.6.4.
Jika Anda menggunakan plugin LiteSpeed Cache, klik pada menu database dan silahkan lihat pada bagian “Database Table Engine Converter“.
Anda tinggal klik “Convert to InnoDB.
Bagaimana jika tidak menggunakan plugin LiteSpeed Cache? Konversi langsung di database.
Langkah pertama adalah klik pada baris tabel yang akan dikonversi. Setelah itu klik “Operations“, pilih “Storage Engine” dan pilih InnoDB, setelah itu klik “Go“.
10.2 Kelola Revisi
Revisi yang menumpuk di database akan membuatnya semakin berat. Lakukan pembersihan revisi secara rutin. Apa itu revisi (revison)?
Setiap kali Anda menyimpan halaman atau posting di WordPress, hal tersebut akan menciptakan apa yang disebut revisi. Revisi sangat berguna jika Anda perlu kembali ke versi konten Anda sebelumnya.
Beberapa plugin cache sudah menyertakan menu optimasi database. Plugin cache yang memiliki menu manajemen database yang dikenal sangat bagus adalah WP-Optimize.
Anda juga bisa membatasi jumlah revisi supaya tidak menumpuk. Dengan membatasi jumlah revisi tentu akan sangat baik dan menghindari database yang “gendut”. Masukkan kode berikut di wp-config.php dan masukkan sebelum ‘ABSPATH’.
define('WP_POST_REVISIONS', 3);
Dan bahkan revisi juga bisa dinonaktifkan. Dengan cara ini database Anda benar-benar bebas dari semua revisi lama dan tidak ada revisi baru yang akan ditambahkan ke depannya. Masukkan kode berikut di wp-config.php di atas ‘ABSPATH’.
define('WP_POST_REVISIONS', false);
Selain revisi, file database lain yang harus sering dioptimasi adalah transient.
11. CDN
CDN (Content Delivery Network) bermanfaat jika pengunjung website Anda memiliki jangkauan global. Seperti jika server hosting Anda berada di Eropa sedangkan target pengunjung mayoritas berada di Asia.
Jika lokasi server hosting Anda berada sama atau dekat dengan pengunjung, CDN hanya akan mubazir jika lokasi servernya jauh.
Contoh: server hosting berada di Indonesia dan target pengunjung dari Indonesia. Tidak bermanfaat jika menggunakan CDN yang servernya berada di Australia.
Ini sama seperti Anda melakukan perjalanan dari Bekasi menuju Tangerang namun memutar dulu melewati Sukabumi.
CDN bagaimanapun juga akan memberikan bantuan yang sangat bermanfaat terutama untuk membantu melayani file statis.
Ketika pengunjung membuka website Anda, CDN akan menyuguhkan file statis WordPress yang sudah tersimpan di server mereka.
Melayani file statis adalah hal yang memberatkan bagi server. Apalagi jika permintannya berulang-ulang dan banyak. Dengan menggunakan CDN tentu saja beban server yang digunakan oleh WordPress kita menjadi lebih ringan.
Cloudflare adalah penyedia CDN plus Firewall yang paling termasuk termasyhur di jagad internet. Infrastruktur mereka tersebar hampir di seluruh penjuru dunia bahkan termasuk di Indonesia.
Saya tidak akan membahas tentang CDN lebih lanjut. Anda bisa membaca dan melihat pilihannya di artikel berikut ini.
Baca juga: Pilihan 6 CDN Gratis Untuk WordPress
12. Hotlink
Hotlink adalah ketika gambar di website Anda ditampilkan di website milik orang lain dengan menempatkan URL gambar WordPress Anda di website mereka. Resikonya? Server hosting Anda yang akan menanggung bebannya.
Biasanya yang suka melakukan hal seperti ini adalah website AGC (Auto Generated Contents) wallpaper. Hal ini dijamin akan menguras sumber daya server hosting yang digunakan WordPress Anda.
Untuk mencegah hotlink, Anda bisa menangkalnya dengan menyisipkan kode berikut ke dalam file .htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domainmu.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Jangan lupa domainmu.com ganti dengan domain WordPress Anda.
13. Memory Limit
Hal yang tidak kalah penting lainnya adalah menaikkan PHP memory limit. Beberapa hosting dalam kondisi standar memberikan memory limit yang terlalu rendah. Kita bisa merubahnya dengan menaikkan atau menambah limitnya.
Ada beberapa cara untuk menaikkan ambang batas atau limit ini. Silahkan pilih mana cara termudah menurut Anda.
Pertama:
Masukkan kode berikut ke file wp-config.php (masukkan di bagian sebelum “/* That’s all, stop editing! Happy publishing. */”
define( 'WP_MEMORY_LIMIT', '256M' );
Kedua:
Masuk ke menu Select PHP Version dan lanjutkan ke Options kemudian pada bagian memory_limit silahkan naikkan batasnya.
14. Optimasi Eksternal Scripts
Scripts eksternal pihak ketiga adalah masalah besar yang selalui menghantui. Apa yang yang dimaksud scripts eksternal? Yaitu kode scripts yang eksekusinya berasal dari pihak luar (di luar hosting).
Contohnya: kode Google Adsense, kode Analytics dan sebagainya.
Eksternal scripts akan menambah request (permintaan) jaringan yang tentu memakan waktu untuk dimuat.Jika Anda menggunakan Adsense atau Analytics dan kemudian melakukan tes kecepatan, pasti akan muncul peringatan seperti gambar berikut.
Bagaimana cara mengatasi hal ini?
Cara terbaik (saat ini) untuk “menjinakkan” scripts eksternal pihak ketiga adalah dengan melakukan delay (menunda) pemuatannya untuk beberapa detik. Atau bisa ditunda hingga pengunjung melakukan interaksi seperti scroll mouse atau menggeser layar ponsel.
Kita bisa menggunakan bantuan plugin Flying Scripts untuk menunda file JavaScript. Plugin ini memberikan pilihan untuk menunda dengan waktu yang bisa ditentukan atau hanya sampai pengunjung melakukan interaksi.
Saya sudah menggunakan plugin ini sejak awal diluncurkan. Penggunaan utama saya adalah untuk melakukan delay script Google Adsense.
Apakah tidak berbahaya untuk Adsense? Apakah tidak menurunkan penghasilan karena iklannya tertunda munculnya?
Saya mengatur timeout 3 detik, namun meski saya mengatur waktu penundaan pada 3 detik, pada kenyataannya adalah pemuatan iklan Adsense tidak sampai menunggu 3 detik sudah muncul.
Logikanya penundaan seperti ini akan menurunkan impresi (peluang iklan muncul dan dilihat pengunjung), namun berbulan-bulan saya menggunakan plugin ini tidak ada yang namanya penurunan penghasilan ataupun impresi.
Ini adalah pilihan Anda untuk menggunakannya atau tidak. Namun cara ini sangat terbukti manjur untuk menjinakkan scripts yang berasal di sumber luar seperti Adsense. Saran saya silahkan lakukan percobaan 1 hingga 3 bulan untuk memantau pengaruhnya bagi Adsense Anda.
Bagaimana dengan kode Analytics, apakah bisa ditunda dengan Flying Scripts? Bisa, Anda bisa memasukkan kata kunci “gtag” dalam list. Hanya saja saya tidak menyarankan untuk menunda Analytics dengan plugin ini.
Alasannya sederhananya adalah laporan Google Analytics bisa menjadi kacau dalam beberapa aspek. Bagaimana solusinya? Trik lain adalah melokalkan script Analytics.
Jika Anda pengguna WP Rocket dan LiteSpeed Cache, keduanya menyediakan fitur untuk melokalkan kode pihak ke 3 seperti kode Analytics.
Atau kita bisa menggunakan plugin Flying Analytics yang juga berasal dari developer yang sama dengan plugin Flying Scripts.
Menggunakan ke 2 plugin di atas akan membantu Anda menangani permasalahan scripts yang berasal dari pihak eksternal.
15. Query Strings
Jika Anda sudah sering melakukan konfigurasi plugin cache, beberapa di antaranya menyertakan pilihan untuk “Remove Query Strings” (beberapa plugin menyediakan fitur ini pada fitur premium).
Apa itu Query Strings?
File CSS dan JavaScript biasanya memiliki versi file di akhir URL. Contohnya:
https://www.wpnesia.id/file.min.css?ver=4.5.3
“?ver=4.5.3” inilah yang dimaksud dengan Query Strings. Terlihat sepele namun bisa memberikan masalah karena beberapa server tidak dapat menyimpan Query Strings ke dalam cache.
Jika plugin cache yang Anda gunakan memiliki fitur untuk menonaktifkan Query Strings, silahkan nonaktifkan.
Anda juga bisa mematikan Query Strings dengan memasukkan kode berikut ke dalam file functions.php tema WordPress Anda.
function remove_query_strings() {
if(!is_admin()) {
add_filter('script_loader_src', 'remove_query_strings_split', 15);
add_filter('style_loader_src', 'remove_query_strings_split', 15);
}
}
function remove_query_strings_split($src){
$output = preg_split("/(&ver|\?ver)/", $src);
return $output[0];
}
add_action('init', 'remove_query_strings')
16. Embeds
Embeds sebenarnya fitur yang menarik. Website lain bisa memasukkan link artikel Anda di dalam artikel mereka dan akan menampilkan snippet kecil (review) artikel milik Anda. Hampir sama seperti hotlink, fitur ini tentu akan membebani server yang digunakan.
WP Rocket dan beberapa plugin cache lain menyertakan fitur menonaktifkan embeds WordPress.
Jika plugin optimasi Anda tidak memiliki fitur tersebut, alternatif lain adalah menggunakan plugin Disable Embeds.
Jika tidak ingin menggunakan plugin, masukkan kode ini ke bagian functions.php tema WordPress yang sedang digunakan.
function disable_embeds_code_init() {
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );
// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Remove all embeds rewrite rules.
add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
// Remove filter of the oEmbed result before any HTTP requests are made.
remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}
add_action( 'init', 'disable_embeds_code_init', 9999 );
function disable_embeds_tiny_mce_plugin($plugins) {
return array_diff($plugins, array('wpembed'));
}
function disable_embeds_rewrites($rules) {
foreach($rules as $rule => $rewrite) {
if(false !== strpos($rewrite, 'embed=true')) {
unset($rules[$rule]);
}
}
return $rules;
}
17. Emoji
Jika Anda tidak menampilkan emoji pada artikel, fitur ini sebaiknya dinonaktifkan saja. Emoji akan menambah permintaan HTTP ketika memuatnya. Beberapa plugin optimasi seperti LiteSpeed Cache memiliki fitur untuk mematikan emoji.
Emoji juga dinonaktifkan dengan memasukkan kode berikut ke functions.php tema WordPress:
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );
/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' == $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );
$urls = array_diff( $urls, array( $emoji_svg_url ) );
}
return $urls;
}
18. Komentar
Jangan abaikan komentar di artikel. Jika komentar masih dalam jumlah sedikit memang tidak ada masalah yang muncul. Namun ketika komentar artikel Anda sudah ratusan, akan membutuhkan waktu tambahan untuk melakukan pemuatan halaman.
Mematikan kolom komentar mungkin ide yang baik. Namun bagaimana jika komentar menjadi sarana interaksi antara admin website dengan pengunjungnya?
Mari kita melakukan optimasi kolom komentar WordPress supaya tidak menjadi beban.
Buka pengaturan -> Diskusi. Kemudian centang atau cek (√) pada bagian “Bagi komentar ke dalam laman-laman”. Silahkan atur ke angka yang lebih kecil.
Hal lain yang harus diperhatikan adalah Gravatar. Gravatar akan membuat permintaan (HTTP request) ke server Gravatar dan ini akan menambah “beban” pemuatan. Saya sangat menyarankan untuk tidak menampilkan Gravatar pada kolom komentar.
Jika Anda masih ingin tetap menampilkan Gravatar, Anda bisa mengoptimasinya dengan melakukan prefetch.
19. Prefetch
Apa itu prefetch? Sebuah proses untuk melakukan pencarian DNS yang berjalan di latar belakang (background) sebelum pengunjung melakukan klik pada link, yang selanjutnya dapat membantu meningkatkan performa.
Plugin WP Rocket dan LiteSpeed Cache memiliki fitur tambahan untuk melakukan prefetch.
Untuk Gravatar, masukkan link berikut:
//s.gravatar.com
//0.gravatar.com
//2.gravatar.com
//1.gravatar.com
Tidak hanya Gravatar saja, Anda juga bisa memasukkan link yang berasal dari eksternal scripts seperti Adsense, Analytics, Google Maps dan sebagainya.
//maps.googleapis.com
//maps.gstatic.com
//fonts.googleapis.com
//fonts.gstatic.com
//ajax.googleapis.com
//apis.google.com
//google-analytics.com
//www.google-analytics.com
//ssl.google-analytics.com
//youtube.com
//api.pinterest.com
//cdnjs.cloudflare.com
//pixel.wp.com
//connect.facebook.net
//platform.twitter.com
//syndication.twitter.com
//platform.instagram.com
//disqus.com
//sitename.disqus.com
//s7.addthis.com
//platform.linkedin.com
//w.sharethis.com
//s0.wp.com
//s1.wp.com
//s2.wp.com
//s.gravatar.com
//0.gravatar.com
//2.gravatar.com
//1.gravatar.com
//stats.wp.com
//i.ytimg.com
//www.googletagmanager.com
//www.googletagservices.com
//adservice.google.com
//pagead2.googlesyndication.com
//tpc.googlesyndication.com
//bp.blogspot.com
//1.bp.blogspot.com
//2.bp.blogspot.com
//3.bp.blogspot.com
//4.bp.blogspot.com
//ajax.microsoft.com
//ajax.aspnetcdn.com
//s3.amazonaws.com
//code.jquery.com
//stackpath.bootstrapcdn.com
//use.fontawesome.com
//player.vimeo.com
//github.githubassets.com
//referrer.disqus.com
//c.disquscdn.com
//0.gravatar.com
//2.gravatar.com
//1.gravatar.com
//ad.doubleclick.net
//googleads.g.doubleclick.net
//stats.g.doubleclick.net
//cm.g.doubleclick.net
//stats.buysellads.com
//s3.buysellads.com
20. Pingback
Pingback adalah komentar otomatis yang akan dibuat ketika blog lain menautkan link milik blog Anda. Ada juga self-pingback yang dibuat saat Anda menautkan ke artikel dalam blog Anda sendiri (internal link).
Pingback akan sangat menganggu layaknya spam. Selain itu, proses pingback juga akan selalu melakukan query (permintaan) ke database secara terus menerus. Nonaktifkan saja pingback di pengaturan diskusi.
Untuk menonaktifkan self-pingback, masukkan kode berikut ke bagian functions.php tema.
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );
Tes Kecepatan
Menggunakan alat tes kecepatan bisa menjadi bantuan yang berharga untuk mengetahui kekurangan WordPress kita.
Beberapa website yang bisa membantu melakukan pengukuran kecepatan yang saya rekomendasikan adalah:
Pilih salah satu yang akan menjadi alat tolak ukur utama Anda. Anda tidak berkewajiban memuaskan semuanya. Mana yang harus dijadikan acuan?
Saya menyukai Webpagetest, kenapa?
Webpagetest bisa memberikan data yang lebih akurat karena bisa memiliki lokasi server untuk tes kecepatan sehingga hampir bisa menggambarkan kecepatan sesungguhnya. Selain itu, Webpagetest juga bisa memilih perangkat apa dan browser apa yang akan digunakan untuk tes kecepatan.
Apapun yang akhirnya Anda pilih tidak menjadi masalah. Yang penting adalah perbaikan-perbaikan yang direkomendasikan agar website WordPress Anda bisa teroptimasi dengan baik.
Kesimpulan
Optimasi WordPress tidak hanya tentang mengatur plugin cache dan selesai. Banyak faktor lain yang harus Anda perbaiki untuk mencapai batas maksimal dalam melakukan optimasi.
Panduan dan strategi cara mempercepat website WordPress ini hadir untuk memberikan kebutuhan yang lengkap untuk melakukan optimasi.
Gan bisa jasa optimasi? Saya juga pake gp premium. Udah coba ini dan itu n utak atik ini itu hasilnya masih letoy.
Email saja detail. Silahkan cek halaman kontak untuk alamat email.
Om, enteng banget wpnesia.
Cek email ya ada beberapa pertanyaan dan request. Tks
Thanks mas,
Ada beberapa hal yg saya pelajari setelah semalaman membaca dan menerapkan strategi ini,
1. Sy selama ini fanatik dgn yg namanya cdn. Tiap bikin blog langsung pake cdn. Sy sllu fikir pake cdn pasti cepat. Begonya sy adalah pdhal hosting sy sudah pake server Indonesia tapi selama ini pake cloudflare. Sy baru tau jg ternyata trafik sy selama ini muter2 dulu ke amerika dll.
2. Sy jg baru tau ttg optimasi database dan ttg inodb. Trm kasih sudah langsung sy terapkan.
3. Prefetch dan delay adsense. Masih percobaan dulu sebulan kedepan untuk tahu apakah ngaruh ke pendapatan.
Thanks.
Tips / ulasan yg komprehensif. Di tulis oleh praktisinya langsung, sehingga damage ya luar biasa mencerahkan.
Baca dari atas sampai bawah isinya angguk2 setuju semua, no debatable. Sekali update lsg bikin killer content/artikel pilar, semoga artikel ini pejwan. Hhehe
Mungkin bisa diperdalam ulasan poin 19, preconnect/prefetch/dns-prefetch/preload, karena juga relevan dgn speed dan analisa waterfall.
Waduh kacau nih panjang dan lengkap banget bang haha…
Mantap panduan-nya, emang beneran ada beberapa yang ternyata diluar dugaan ane.
Sekali lagi makasih banyak bang.
(Sepertinya jarang posting ya bang?)