Episode ini membahas optimasi performa situs Astro: profiling dengan browser tools dan Lighthouse, mengurangi payload JavaScript dan meminimalkan hydration, preloading aset kritis, serta build-time optimization dan incremental builds.

Kita sudah membangun, mengamankan, dan mempercepat konten dengan cache. Episode 15 ini menuntaskan sisi performa dengan pendekatan yang lebih terukur: profiling dan optimasi berbasis data. Kalian tidak lagi menebak-nebak mana yang lambat — kalian mengukur, menemukan, dan memperbaiki.
Kali ini kita fokus pada empat area: profiling dengan browser tools dan Lighthouse, mengurangi payload JavaScript dan meminimalkan hydration, preloading aset kritis, serta optimasi di sisi build.
Filosofi episode ini sederhana: ukur dulu, optimasi setelahnya. Optimasi tanpa pengukuran sering kali hanya membuang waktu.
Lighthouse adalah alat audit performa bawaan di Chrome DevTools. Buka tab Lighthouse, pilih mode Navigation, dan jalankan audit pada halaman yang sudah di-build:
npx lighthouse https://situs-kalian.dev --only-categories=performancePerintah npx lighthouse https://situs-kalian.dev menghasilkan skor performa lengkap dengan rekomendasi perbaikan yang sudah diurutkan berdasarkan dampak.
Perhatikan tiga metrik inti:
Jika LCP tinggi, periksa gambar dan aset kritis. Jika CLS tinggi, periksa elemen tanpa dimensi. Jika INP tinggi, periksa hydration JavaScript.
DevTools punya panel Coverage yang menunjukkan berapa banyak kode JavaScript yang benar-benar terpakai. Jalankan halaman, buka tab Coverage, lalu muat ulang. Bar merah menunjukkan kode yang diunduh tapi tidak dieksekusi — target utama optimasi.
Gunakan audit ini untuk menemukan komponen yang ternyata tidak butuh hydration. Beberapa langkah praktis:
client:load dengan client:visible untuk elemen di bawah layar.client:idle agar hydration tidak mengganggu proses load utama.---
import Statistik from "../components/Statistik.tsx";
---
<Statistik client:visible />Perubahan satu atribut dari client:load menjadi client:visible bisa memangkas payload secara signifikan untuk elemen yang jarang dilihat.
Gunakan panel Performance dengan CPU throttling untuk melihat aset mana yang menahan render. Aset kritis biasanya: CSS awal, font, dan gambar hero. Prioritaskan lewat resource hints:
<link rel="preload" href="/hero.avif" as="image" />
<link rel="preload" href="/fonts/inter.woff2" as="font" crossorigin /><link rel="preload" as="image"> mengambil hero lebih awal, dan preload font menghindari FOUT (flash of unstyled text). Preload hanya untuk aset di atas fold — terlalu banyak preload justru menyumbat.
Astro menangani banyak hal ini secara otomatis: CSS di-inline bila kecil, gambar dari astro:assets diberi dimensi dan lazy loading, dan @astrojs/prefetch menangani navigasi. Tugas kalian adalah memastikan audit menunjukkan tidak ada bottleneck yang tersisa.
Beberapa pekerjaan berat bisa dipindahkan ke build time:
getStaticPaths.Semakin banyak yang diselesaikan saat build, semakin ringan runtime.
Platform seperti Vercel mendukung incremental builds — hanya halaman yang berubah yang di-build ulang. Untuk proyek besar dengan ribuan halaman, ini mempercepat deployment dari menit menjadi detik. Kombinasikan dengan cache dari episode 14 agar pengguna tidak melihat perubahan apapun selama proses.
Simpan skor Lighthouse sebelum optimasi, lalu bandingkan setelahnya. Perubahan nyata baru berarti jika terukur: LCP turun, payload berkurang, dan skor naik. Kebiasaan mengukur ini yang membedakan optimasi yang serius dari sekadar feeling.
Info
Jalankan Lighthouse pada versi build (npm run preview), bukan pada dev server. Dev server belum menerapkan minifikasi dan optimasi produksi, sehingga hasil auditnya menyesatkan.
Episode 15 mengajarkan optimasi performa berbasis data: profiling dengan Lighthouse dan DevTools, mengurangi payload JavaScript dan meminimalkan hydration, preloading aset kritis, serta optimasi build dengan incremental builds.
Inti yang harus dibawa pulang:
client:visible dan client:idle mengurangi payload hydration.Di episode 16 selanjutnya kita akan membahas testing dan quality: unit testing komponen dan halaman konten, integration testing dengan Playwright atau Cypress, static analysis dan linting, serta accessibility testing dan SEO audits. Kualitas situs kalian akan terbukti, bukan sekadar dijanjikan.