Error 504 Gateway Timeout dan Memory Exhausted Limit sering membuat situs WordPress tidak dapat diakses, mengganggu pengalaman pengguna dan menurunkan peringkat SEO. Artikel ini memberikan langkah teknis terperinci agar Anda dapat mengidentifikasi akar penyebab dan memperbaikinya secara permanen.
Penyebab Umum
- Server backend (PHP-FPM, Apache) tidak merespon dalam waktu yang ditentukan.
- Memory limit PHP terlalu rendah sehingga skrip berhenti di tengah proses.
- Plugin atau tema yang melakukan query berat atau loop tak berujung.
- Konfigurasi timeout pada Nginx/Apache yang terlalu singkat.
- Database MySQL yang overload atau deadlock.
Solusi Langkah demi Langkah
- Langkah 1: Identifikasi sumber error melalui log server
Buka log error Apache atau Nginx serta log PHP untuk menemukan baris yang menunjukkan timeout atau memory exhausted.
# Apache sudo tail -f /var/log/apache2/error.log # Nginx sudo tail -f /var/log/nginx/error.log # PHP-FPM sudo tail -f /var/log/php7.4-fpm.logCatat timestamp dan file yang disebutkan, biasanya
wp-adminatauwp-cron.php. - Langkah 2: Tingkatkan batas memori PHP di
wp-config.phpTambahkan atau ubah baris berikut tepat sebelum
/* That's all, stop editing! */:define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '512M');Jika server masih menolak, ubah nilai
memory_limitpadaphp.inidan restart PHP-FPM.sudo nano /etc/php/7.4/fpm/php.ini # Cari baris memory_limit dan ubah menjadi memory_limit = 512M sudo systemctl restart php7.4-fpm - Langkah 3: Perpanjang timeout pada web server
Untuk Nginx, edit blok server situs WordPress:
server { listen 80; server_name contoh.com www.contoh.com; root /var/www/html; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_read_timeout 300s; # <--- tambah atau ubah nilai ini fastcgi_send_timeout 300s; } }Setelah selesai, reload Nginx:
sudo nginx -t && sudo systemctl reload nginxUntuk Apache, tambahkan atau ubah directive berikut di
.htaccessatauapache2.conf:Timeout 300 ProxyTimeout 300Lalu restart Apache:
sudo systemctl restart apache2 - Langkah 4: Nonaktifkan sementara plugin/theme berat
Gunakan WP‑CLI untuk menonaktifkan semua plugin, lalu aktifkan satu per satu untuk menemukan penyebab.
# Nonaktifkan semua plugin wp plugin deactivate --all # Aktifkan kembali satu per satu wp plugin activate plugin-andaJika tema menyebabkan beban, beralihlah ke tema default:
wp theme activate twentytwentyone - Langkah 5: Optimalkan database
Jalankan perintah berikut untuk memperbaiki tabel dan menghapus transien yang kadaluarsa.
wp db repair wp transient delete --all wp db optimizeJika MySQL masih overload, pertimbangkan menambah
innodb_buffer_pool_sizepadamy.cnfdan restart MySQL.sudo nano /etc/mysql/my.cnf # Tambahkan atau ubah baris berikut innodb_buffer_pool_size = 1G sudo systemctl restart mysql - Langkah 6: Verifikasi dan testing akhir
Clear cache (plugin cache, Cloudflare, atau CDN) lalu akses kembali halaman yang sebelumnya error.
wp cache flush # Jika memakai Cloudflare CLI cloudflare-cli purge allGunakan alat online seperti KeyCDN HTTP/2 Test untuk memastikan tidak ada lagi timeout.
"Setelah menerapkan keenam langkah di atas, situs WordPress klien kami di Jember kembali stabil dengan waktu respon di bawah 200 ms, tanpa lagi muncul error 504 atau memory exhausted. Kunci utama adalah menyesuaikan batas memori PHP dan timeout server secara bersamaan," – Tim AN Media, Jember.
Dengan mengikuti urutan langkah di atas, Anda dapat menetralkan kedua error secara permanen, meningkatkan kecepatan situs, dan menjaga peringkat SEO tetap optimal. Jika masih mengalami kendala, tim AN Media siap membantu melakukan audit server menyeluruh.
Hubungi AN Media sekarang untuk layanan optimasi WordPress, migrasi ke server yang lebih cepat, atau konsultasi keamanan situs. Klik di sini untuk mengisi formulir kontak.