Memangkas Origin Transfer Situs Next.js hingga 90%
Bagaimana portfolio ini berubah dari jebol kuota bandwidth Vercel menjadi 495 halaman statis penuh yang dilayani langsung dari CDN.
Masalah
Portfolio ini jebol kuota Fast Origin Transfer Vercel — 15,13 GB terpakai dari limit 10 GB. Semua halaman di-SSR secara dinamis karena getMessages() dari next-intl tanpa setRequestLocale memaksa dynamic rendering, dan tiap response membawa payload i18n sebesar 1,6 MB: teks lengkap 218 blog post dikirim ke client provider di setiap halaman.
Pendekatan
- 01
Profiling penggunaan origin transfer per path untuk menemukan route mana yang benar-benar menghabiskan kuota.
- 02
Menambahkan setRequestLocale supaya next-intl tidak lagi memaksa dynamic rendering, sehingga static rendering aktif di seluruh situs.
- 03
Membuang konten blog dari client messages (1.589 KB → 76 KB, −95%), lalu meng-inject ulang hanya konten post yang sedang dibuka di tiap halaman blog.
- 04
Menambahkan generateStaticParams untuk 436 blog path agar setiap post di-prerender saat build.
- 05
Mengompres ulang 67 gambar (54,7 MB → 14,8 MB), menambahkan immutable cache header, dan mengaktifkan kembali ETag.
Hasil
495 halaman kini di-prerender dan dilayani dari CDN, origin transfer terpangkas lebih dari 90%, dan LCP tidak lagi tertahan oleh satu megabyte JSON.

