Aplikasi Laravel yang terasa lambat biasanya bukan salah framework, melainkan konfigurasi dan kode yang belum dioptimasi. Berikut 8 langkah praktis mempercepat Laravel di production, dari yang paling mudah.
1. Cache Config, Route, dan View
Di production, cache konfigurasi agar Laravel tidak membaca banyak file tiap request:
php artisan config:cache
php artisan route:cache
php artisan view:cache
Ini salah satu peningkatan tercepat. Catatan: jalankan ulang setiap kali Anda mengubah config atau route.
2. Optimasi Autoloader Composer
composer install --optimize-autoloader --no-dev
3. Hindari N+1 Query dengan Eager Loading
Masalah performa paling umum: memuat relasi di dalam loop. Gunakan with() untuk eager loading:
// LAMBAT (N+1 query)
$posts = Post::all();
foreach ($posts as $post) { echo $post->user->name; }
// CEPAT (eager loading)
$posts = Post::with('user')->get();
4. Ambil Kolom Seperlunya
Jangan selalu SELECT *. Ambil hanya kolom yang dibutuhkan:
$users = User::select('id', 'name', 'email')->get();
5. Gunakan Pagination untuk Data Banyak
Menampilkan ribuan baris sekaligus membebani memori. Pakai pagination:
$posts = Post::paginate(20);
6. Manfaatkan Cache untuk Query Berat
Simpan hasil query yang jarang berubah ke cache:
use Illuminate\Support\Facades\Cache;
$categories = Cache::remember('categories', 3600, function () {
return Category::all();
});
7. Pindahkan Tugas Berat ke Queue
Proses seperti kirim email atau olah gambar sebaiknya tidak menahan response. Jalankan lewat queue agar halaman terasa instan bagi pengguna:
ProcessPodcast::dispatch($podcast);
8. Aktifkan Gzip & Caching Aset
Di sisi server (Nginx/Apache), aktifkan kompresi Gzip dan cache untuk file statis (CSS/JS/gambar) agar browser tidak mengunduh ulang tiap kunjungan. Kombinasikan dengan build aset produksi (npm run build).
Bonus: Ukur Dulu, Baru Optimasi
Gunakan tool seperti Laravel Debugbar atau Telescope untuk melihat query mana yang lambat. Optimasi yang tepat sasaran jauh lebih efektif daripada menebak.
Kesimpulan
Mempercepat Laravel dimulai dari hal sederhana: cache config/route/view dan optimasi autoloader, lalu berlanjut ke perbaikan query (eager loading, select kolom, pagination), caching, dan queue. Terapkan bertahap sambil mengukur, dan aplikasi Anda akan terasa jauh lebih ringan. Untuk setup server yang optimal, lihat panduan deploy Laravel ke VPS Ubuntu dengan Nginx.