Ingin Percepat Loading WordPress? Kurangi Server Load admin-ajax.php!

Apa Itu File admin-ajax.php?
admin-ajax.php adalah salah satu file inti WordPress yang mulai digunakan sejak WordPress versi 3.6.

Salah satu fitur yang dikembangkan pada WordPress 3.6 adalah Heartbeat API. Nah, Heartbeat API menggunakan file admin-ajax.php untuk menjalankan fungsinya, yaitu menghubungkan koneksi antara browser dan server melalui AJAX.

Jadi, AJAX adalah teknologi berbasis JavaScript yang memungkinkan halaman website untuk menampilkan informasi baru tanpa harus refresh halaman. Familiar dengan fitur ini?

Ya, Anda mungkin pernah menikmati fitur ini ketika sedang mengisi form di suatu website, lalu formnya langsung memberitahu jika data yang Anda masukkan tidak tepat.

Atau, ketika Anda sedang menulis postingan di WordPress, lalu tulisan Anda akan tersimpan secara otomatis dengan fitur autosave.

Apakah Anda melihat kesamaannya? Ya, keduanya sama-sama tidak membutuhkan load halaman website untuk menampilkan informasi atau menjalankan suatu fungsi.

Apa Penyebab Tingginya Server Load admin-ajax.php?
Biasanya, ada dua hal yang bisa menyebabkan tingginya server load admin-ajax.php, yang pertama adalah penggunaan plugin, dan yang kedua adalah pengaruh Heartbeat API.

Penggunaan Plugin
Ada banyak pengembang plugin yang memanfaatkan AJAX untuk menambah fungsionalitas. Tapi, terkadang plugin-plugin tertentu membuat terlalu banyak request yang menyebabkan penumpukan file admin-ajax.php.

Nah, penumpukan file ini dapat menambah durasi loading website.

Pengaruh Heartbeat API
Heartbeat API bekerja pada backend, alias di balik layar. Jadi, Heartbeat API masih bisa melakukan request ke server walaupun Anda hanya membuka tab, tanpa mengklik apapun.

Hal ini dapat menyebabkan tingginya penggunaan CPU server.

Tingginya penggunaan CPU dapat berpengaruh terhadap performa website. Khususnya website-website yang sumber daya servernya terbatas, seperti website yang menggunakan shared hosting.

Bagaimana Cara Mengurangi Server Load admin-ajax.php?
Sekarang Anda sudah mengetahui beberapa hal yang berpotensi meningkatkan server load admin-ajax.php. Lalu bagaimana cara mengatasinya? Nah, Anda bisa mengikuti dua cara di bawah:

1. Mengeliminasi Plugin
Metode ini adalah solusi untuk masalah yang berakar dari penggunaan plugin.

Seperti yang sudah kami jelaskan di intro. Anda dapat mengecek performa website Anda melalui alat tes kecepatan website seperti GTMetrix.

Setelah hasil tes website Anda sudah keluar, masuk ke tab Waterfall, lalu ketikkan ajax di kolom filternya. Jadi Anda bisa tahu apakah loading website Anda dipengaruhi oleh file admin-ajax.php.

Jika iya, klik filenya, lalu pilih tab Post. Di sana Anda akan menemukan akar masalahnya. Berikut adalah contohnya:

contoh problem ajax php di gtmetrix

Seperti yang Anda lihat, baris pertama di tab Post menunjukkan “action=ta_link_fixer”. Jika Anda coba search di Google dengan keyword tersebut, Anda akan menemukan beberapa website yang menunjukkan bahwa “ta_link_fixer” berhubungan dengan plugin Link Fixer.

link fixer problem di admin ajax php

Karena sekarang Anda sudah tahu plugin yang bermasalah, Anda tinggal uninstall plugin tersebut. Lalu, cek kembali menggunakan GTMetrix untuk melihat perubahan loading timenya.

2. Mengurangi Batas Request Heartbeat API
Seperti yang sudah dijelaskan di atas, banyaknya jumlah request yang dibuat oleh Heartbeat API dapat mengurangi performa website. Jadi, yang mesti dikontrol adalah batas requestnya.

Untuk itu, Anda bisa menginstall plugin Heartbeat Control. Plugin ini akan membantu Anda mengatur berbagai konfigurasi Heartbeat API.

banner heartbeat plugin

Apabila Anda sudah install dan aktivasi pluginnya, ikuti langkah-langkah berikut:

  1. Di menu sebelah kiri admin dashboard, klik Settings > Heartbeat Control.
  2. Pilih Disable untuk WordPress Dashboard dan Frontend.
  3. Pilih Modify untuk Post Editor. Lalu, buat frekuensinya menjadi 60 detik, agar Heartbeat tidak terlalu sering melakukan request ke server.

pengaturan plugin heartbeat control

4.  Klik Save Changes.
5.  Selesai! Sekarang Heartbeat API tidak akan membuat request secara berlebihan.