Header Ads

Vultr $100

MENINGKATKAN PERFORMA WEBSITE PADA SERVER BERBASIS VPS/DEDICATED

Meningkatkan Website WordPress Pada Server Berbasis VPS/Dedicated — Saya akan memberikan beberapa rekomendasi yang dapat membantu untuk meningkatkan dan mempercepat website Sampeyan tanpa ribet. Tehnik ini sudah saya lakukan sejak lama dan terus saya tweaking dan kembangkan mengikuti perkembangan algorithm, PHP version, SQL dan lain sebagainya.

VPS~TWEAKS

Daftar isi:

Saya memiliki banyak website yang berjalan di single VPS ataupun Dedicated server dengan spesifikasi machine berbeda-beda tentunya.
Sebagai contoh salah satu website dengan server berbasis VPS berikut dengan traffic 18.000 - 25.000 UV (Unique Visits) per day:
  1. Ubuntu Server 21.04 atau sesuaikan dengan update patch terbaru.
  2. 4 GB RAM
  3. 2 Processors (Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz)
  4. 80 GB disk space
  5. 1 GB NIC
  6. 256-bit SSL encryption
  7. Self-hosted mail server
  8. Native Custome News Theme official WP.org/themes. Saya tidak pernah menggunakan web builder (Elementor, Oxygen, WP Backery, DIVI dll) untuk website-website berbasis News sites
  9. Redis Cache – backend
  10. Litespeed cache – front end
  11. 18 plugins
Dengan spesifikasi ini, termasuknya udah include Google AdSense script yang notabene bikin hancur metrix, saya udah mendapatkan hasil yang cukup bikin puas dari GTmetrix:

Untuk SharedHosting, Sampeyan tidak akan dapat berbuat banyak dan melakukan sebagian besar item backend yang tercantum di bawah ini, jadi user SharedHost cukup pasrah aja menerima kenyataan yang cukup pahit;

Tapi sampeyan masih bisa melakukan semua item di bagian Frontend dan masih bisa meningkatkan performa websites yang cukup signifikan.

For Virtual Private Servers (VPS)/Dedicated Servers:

BACKEND

  1. Gunakan VPS yang handal, cepat tetapi terjangkau – pada case ini Saya terbiasa menggunakan Vultr dan Google Clouds Compute. Kadang Digital Ocean, hanya saja Digital Ocean tidak memiliki layanan instance Dedicated.

    Ya, saya memang addicted dengan provider hosting Vultr dan Google Clouds Compute. Sampeyan boleh menentukan server kesukaan Sampeyan.
     
    root
    /root@xxxxxx:~# uptime -p
    up 41 weeks, 6 days, 39 minutes
    
  2. Gunakan NGINX reverse proxy server daripada Apache2, NGINX emang dirancang untuk kinerja – Baca artikel ini memahami keduanya https://kinsta.com/blog/nginx-vs-apache/

  3. Gunakan PHP 8.0, dimana kemampuannya 18.47% lebih cepat, progressive dan responsive dibandingkan PHP 7.4. Dan jika Sampeyan membandingkannya dengan PHP 7.0, dapat mengatasi 50% lebih request (transactions) per second.

    PHP 8.0 memberikan fitur baru seperti yang banyak diantisipasi pada Just In Time (JIT) compiler, optimasi kinerja lainnya adalah built-in/core JSON support

  4. Aktifkan server-side caching solution seperti Memcached atau Redis Cache.

    Keduanya sangat mendukung untuk kebutuhan WordPress; Redis cukup mumpuni dan menawarkan lebih banyak object caching settings jika sampeyan mau nge-tweak lebih dalam lagi.

  5. Gunakan MariaDB pada MySQL, Sampeyan memang tidak akan melihat terlalu banyak peningkatan kinerja yang signifikan, tetapi setiap milisecond-nya cukup membantu ketika harus mengambil data pada database dan memuat/menampilkannya pada halaman tersebut akan sangat membantu. Untuk detail lebih lanjut, baca artikel ini https://blog.kernl.us/2019/10/wordpress-database-performance-showdown-mysql-vs-mariadb-vs-percona/

  6. Update VPS Sampeyan dengan patches terbaru, software, dan OS distribution. Untuk Debian based Linux distros (Ubuntu, Deepin, Linux Mint) gunakan commands dibawah ini:
    
    apt-get update
    apt-get upgrade
    apt-get dist-upgrade
    apt-get autoclean
    apt-get autoremove
    

FRONTEND

  1. Gunakan WordPress versi terbaru.
  2. Gunakan plugins-plugins sebutuhnya aja.
    Setiap plugins yang aktif akan menambahkan lebih banyak query database, membuat table-table tambahan dan jelas akan menggunakan lebih banyak sumber daya server, menambahkan lebih banyak waktu untuk me-loading halaman website Sampeyan. Dan banyak juga plugins-plugins yang di coding asal-asalan dengan mengabaikan structure yang baik sekalipun developernya cukup ternama.

    Cek ulang, apakah Sampeyan dapat menggabungkan beberapa konfigurasi atau functions dalam pengaturan pada satu plugin atau langsung tweak pada theme. Hal ini membutuhkan pengetahuan script-writing, minimal bisa bikin fungsi PHP.

    Misalnya, theme yang saya gunakan memungkinkan untuk mengintegrasikan kode HTML (Google Analytics) di semua halaman tanpa perlu menginstal plugin GA terpisah untuk yang melakukan hal yang sama. Lebih sedikit query maka akan lebih sedikit sumber daya server yang dibutuhkan, dan beban halaman yang lebih cepat!

    Sejak kenal WordPress, saya gak pernah sekalipun install plugins addons Google Analitycs atau semacamnya, langsung inject aja pada themes footer.php.

    Saya malah menggunakan plugins Hello Dolly bawaan WordPress yang saya custom secara fundamental untuk saya gunakan sebagai bridge kebutuhan-kebutuhan optimasi speedload (terutama), optimasi front-end seperti minifying, functions core HTML compression hingga security seperti mengamankan XMLRPC, Anti-SQL Injection, Anti-Internet Provider blocker dan sebagainya. Jadi gak perlu install plugins-plugins dengan fungsi sama yang hanya membebani kinerja.

    Setiap enam bulan, tinjau plugin dan nonaktifkan/hapus apa pun yang tidak Sampeyan butuhkan.

  3. Gunakan plugin caching seperti Litespeed, W3 Total Cache, WP Fastest Cache, WP Super Cache, WPRocket.
  4. Gunakan lightweight theme.

    Seperti yang sudah saya mention diatas, saya tidak menggunakan web builder seperti Elementor, Oxygen, WP Backery, DIVI dll. Jika Sampeyan menggunakan web builder tersebut, pastikan Sampeyan menguasai performanya, mampu melakukan tweaking pada themes.

    Minify semua CSS dan javascript pada file-file theme, buang semua white space pada CSS dan javascript. Lakukan defer pada file javascript.

    Buatlah Child Theme. Aktifkan Child Theme setelah website kelar development.

  5. Jika situs Sampeyan menggunakan banyak gambar, pastikan untuk mengompresnya sebelum menguploadnya, menghemat waktu load halaman. Saya menggunakan hal berikut untuk mengkompres semua gambar secara mudah: https://squoosh.app/ atau https://ezgif.com/ Alternative lain, gunakan versi .webp images. Dikembangkan oleh Google dan dirancang untuk membuat file yang lebih kecil untuk kualitas yang sama, atau kualitas yang lebih tinggi untuk ukuran yang sama, daripada JPEG, PNG, dan GIF image formats

    Jangan gunakan functions/plugins webp generator on the fly pada functions theme ataupun core nginx.conf atau .htaccess jika menggunakan Apache Webserver, karena sama aja akan menambah query database serta membebani kinerja server. Akan lebih baik mengupload sudah dalam format webp.

    Selama May 2021, WebP berkontribusi supported 94% pada web browsers secara global. Bisa Sampeyan baca disini: https://en.wikipedia.org/wiki/WebP and https://developers.google.com/speed/webp

    Free online image converter apps: JPG to WEBP (Online & Free) — Convertio or WebP Converter

  6. Content Delivery Network (CDN): ya saya menggunakan CDN untuk kebutuhan property konten seperti images, PDF dan sebagainya.

    Jika Sampeyan tidak memiliki resource budget besar untuk dialokasikan sebagai kebutuhan CDN, Sampeyan masih bisa menggunakan tehnik wildcard subdomain dari domain utama website Sampeyan untuk di pointing dan digunakan sebagai CDN bahkan pada disk server yang sama tanpa perlu keluar dari server/disk yang digunakan (cross server)

    Dengan begitu, Sampeyan hanya butuh mengkombinasikan langsung pada table SQL pada wp_options table upload_path dan upload_url_path. Selesai.

    Jadi, custom CDNmu akan terlihat seperti:
    https://cdn.domain.com/uploads/whatever.webp
    atau
    https://cdn.domain.com/whatever.webp

    Sampeyan bahkan masih bisa melakukan lebih lagi untuk kebutuhan CDN ini, bahkan hingga tak terbatas alias unlimited.

    Untuk kebutuhan ini, Sampeyan cukup membutuhkan pengetahuan routing domain, pengetahuan dan penguasaan WordPress CMS Structures dan WordPress Hierarchy.

    WordPress Template Hierarchy
    Pengguna server berbasis VPS/Dedicated Unmanaged akan cukup kerepotan dalam management domain routing <—> domain pointing guna kebutuhan CDN dalam single disk/single server, silahkan dipelajari kembali untuk mengatasi masalah ini. Tapi tidak masalah bagi Sampeyan yang menggunakan server manage atau pengguna Sharedhosting.

    Saya tidak pernah menggunakan Jetpack walaupun fitur CDNnya gratis official dari WordPress.org. Kenapa? Jetpack terlalu rentan pada dumping injection malware ketika kita tidak bisa mengamankan XMLRPC.php pada root yang kebanyakan defacer menyerang bagian ini.

    Padahal cukup mudah mengamankan XMLRPC.php menggunakan .htaccess atau NGINX.CONF tanpa perlu plugins-plugins security yang malah menambah query table database yang artinya akan menambah beban performa GPU dan memory (RAM) yang seharusnya tidak perlu.

    Sampeyan pengguna Sharedhosting malah udah kudu wajib mengetahui area ini. Sampai sejauh dan setangguh apa host server SharedHosting yang Sampeyan gunakan mampu mengatasi malware?

    Apakah host server SharedHost yang sampeyan gunakan cukup profesional dengan menggunakan WHMCS original atau hosting abal-abal yang menggunakan WHMCS crackingan yang artinya dengan menggunakan WHMCS crack akan cukup rentan dan mudah kena malware bahkan bisa menginfeksi dalam satu instance yang sama.

    Alasan lain, dengan menggunakan Jetpack maka kita juga sudah kudu siap terkena grabbing atas property website kita terutama images, jadi menggunakan anti-hotlinks pun akan sia-sia walaupun kita menggunakan fitur anti-hotlinks Cloudflare.

    Terkena hotlinks images property adalah neraka bagi pemilik web/blog, selain merusak dan menghancurkan SEO (Search Engine Optimization) websites/blogs juga sangat membebani kinerja server yang kita gunakan, bandwidth bakalan meleduk.

    Pengguna sharedhosting, hati-hati jika tiba-tiba load bandwidth meleduk dan terkena banned karena load server berlebihan dan mengganggu website/blog lain yang berada pada hosting yang sama.

    Saya tidak mengklaim hotlinks sebagai web property stealing (pencurian property), karena gimana pun, kita mencari konten images untuk kebutuhan konten web/blog kita masih mengandalkan Google, artinya kita pun masih menggunakan images web/blog lain yang bukan milik kita sendiri.

    Saya lebih menyebutnya sebagai bandwidth stealing (pencurian bandwidth), karena website kita bukan public CDN untuk men-supply images secara hotlinks bagi web/blog lain.
    isbanned

    *Cara paling kejam bikin kapok hotlinker hingga bikin akun Google AdSense mereka dibanned permanen tanpa membebani server kita dalam sekali klik.
  7. Domain Name System (DNS) Host: Saya tidak menggunakan open DNS host apapun (Cloudflare, CloudNS dll) tapi menggunakan Private Nameserver dari domain terkait.

    wah rentan DDoS tewas dong? Enggak, karena IP server utama tidak pernah muncul di public, Saya mengatasinya dengan menambahkan IP Private Network untuk melakukan covering IP induk dari server yang saya gunakan. Ketika terjadi serangan, tinggal saya replace saja menggunakan IP Private Network yang baru. Vultr, Digital Ocean, Google Cloud Compute sudah ada fitur ini.

  8. Lindungi situs Sampeyan dari berbagai malicious URI requests, bad bots, spam referrers, dan serangan lainnya. Memblokir bad traffic yang sangat buruk dalam performa keamanan website, mengurangi beban server, dan menghemat sumber daya yang berharga sangat penting agar kinerja server Sampeyan maksimal.

    Sampeyan tidak perlu install plugins-plugins security yang hanya membebani back-end untuk mengatasi masalah ini. XCODE Firewall for NGINX — The Blacklist ini saya pikir sudah sangat sempurna, heavily tested, dan lebih baik dari versi sebelumnya yang enggak pernah saya publish. Untuk versi webserver berbasis Apache, silahkan gunakan XCODE Firewall for Apache — The Blacklist.

  9. Jika ingin menggunakan server management yang tidak ribet terutama bagi Sampeyan yang masih tahap awal, bisa install VPS/Dedicated Control Panel tapi masih lebih ringan dalam kecepatan dan kinerja dibanding server manage yang lainnya. Saya menggunakan https://fastpanel.direct (free). Jika menggunakan FastPanel Control Panel atau apapun Control Panel, pastikan enable GZIP compression. Sites -> -> Settings -> Static Content, ubah Gzip compression level ke 9.
    FastPanel Control Panel

  10. Jika server support Virtual Private Clouds Network seperti di Vultr, maka create dan aktifkan. Virtual Private Clouds Network sesuaikan dengan geo location server yang kita pakai.

    Misal menggunakan server VPS/Dedicated Singapore, maka buatlah Virtual Private Clouds Network berbasis geo Singapore. Kemudian koneksikan VPS/Dedicated sampeyan dengan Virtual Private Clouds Network yang barusan di buat. Di Vultr, layanan Virtual Private Clouds Network gratis.
30-day server stats:

Meningkatkan Website WordPress Pada Server Berbasis VPS/Dedicated







Saya harap tehnik ini membantu siapa pun yang ingin menyempurnakan atau meningkatkan kinerja VPS mereka, bahkan jika itu hanya satu item.

Google memberikan peringkat sebuah website lebih cepat dan lebih tinggi pada SERP (Search Engine Rank Positions). Google gak mau user menunggu halaman lambat dan lemot Sampeyan di loading.

Kinerja yang baik dapat dicapai, Sampeyan hanya perlu melakukan penelitian dan membuat tweak yang diperlukan dan memverifikasi mereka bekerja, jika tidak, mengubahnya kembali dan menemukan jalan lain untuk membuatnya bekerja lebih cepat, dan hal ini yang tahu cuman Sampeyan sebagai pemilik website-nya.