Cara meningkatkan skor Google Lighthouse pada website membutuhkan pemisahan masalah server dan kode frontend. Riset untuk artikel ini menemukan 7 kasus yang cukup kuat untuk dimasukkan sebagai kasus utama: empat implementasi/publikasi independen dan tiga eksperimen terkontrol dari satu paper Indonesia. Jumlah ini lebih rendah dari target 8–12 karena beberapa kandidat 2025–2026 tidak memiliki tanggal, identitas proyek, metode pengujian, atau langkah teknis yang cukup untuk memenuhi standar validasi.
Definisi Lighthouse
Google Lighthouse adalah alat audit otomatis dan open-source untuk mengevaluasi kualitas sebuah halaman web. Lighthouse dapat dijalankan melalui Chrome DevTools, PageSpeed Insights, command line, atau modul Node.js; hasil audit berfungsi sebagai indikator masalah dan peluang perbaikan, bukan bukti final mengenai akar penyebabnya. developer.chrome Kategori utama yang dinilai dalam laporan Lighthouse modern adalah:
- Performance: Kecepatan tampilan, kesiapan interaksi, dan stabilitas visual.
- Accessibility: Masalah aksesibilitas yang dapat dideteksi secara otomatis.
- Best Practices: Kesehatan dan keamanan implementasi web.
- SEO: Persyaratan teknis dasar agar halaman dapat ditemukan dan dipahami mesin pencari. developer.chrome
Skor Performance
Skor Performance 0–100 merupakan rata-rata berbobot dari skor metrik individual. Nilai mentah setiap metrik dikonversi ke skor 0–100 menggunakan distribusi log-normal berdasarkan data situs nyata di HTTP Archive. developer.chrome
| Rentang | Klasifikasi |
|---|---|
| 90–100 | Good |
| 50–89 | Needs Improvement |
| 0–49 | Poor |
Pada model skor Lighthouse yang didokumentasikan Chrome, bobotnya adalah FCP 10%, Speed Index 10%, LCP 25%, TBT 30%, dan CLS 25%. Karena transformasinya tidak linear, kenaikan dari 40 ke 60 tidak boleh diperlakukan sebagai peningkatan pengalaman pengguna yang identik dengan kenaikan dari 70 ke 90. developer.chrome
Metrik utama
| Metrik | Definisi dan peran | Ambang acuan |
|---|---|---|
| FCP | Waktu sampai teks, gambar, SVG, atau elemen canvas pertama dirender. Menjawab: “Kapan halaman berhenti terlihat kosong?” github | Good ≤1,8 detik; Poor >3 detik. patrickstox |
| LCP | Waktu sampai elemen konten terbesar yang terlihat selesai dirender. Mewakili kecepatan tampilnya konten utama. web | Good ≤2,5 detik; Poor >4 detik pada persentil ke-75. web |
| TBT | Total bagian waktu di atas 50 ms dari setiap long task antara FCP dan Time to Interactive. Mengindikasikan seberapa lama main thread tidak mampu merespons input. github | Good <200 ms; Poor >600 ms. coralogix |
| CLS | Besarnya pergeseran layout tidak terduga selama halaman digunakan. Mewakili stabilitas visual. web | Good ≤0,1; Poor >0,25. unlighthouse |
| Speed Index | Seberapa cepat konten halaman secara visual terisi selama proses loading. developer.chrome | Nilai lebih rendah lebih baik; interpretasi dipengaruhi profil mobile/desktop. |
| TTFB | Waktu dari dimulainya navigasi sampai byte pertama respons diterima, termasuk redirect, service-worker startup, DNS, koneksi, TLS, network round trip, dan waktu server menyiapkan respons. patrickstox | Acuan umum Good ≤0,8 detik; Poor ≥1,8 detik. web.developers.google |
TTFB tidak ikut langsung dalam bobot skor Performance, tetapi menjadi fondasi FCP dan LCP: konten tidak dapat dirender sebelum dokumen mulai diterima. Lighthouse juga membedakan server response time dari TTFB penuh; audit “Reduce server response times” gagal ketika respons dokumen utama melewati 600 ms, sementara DNS dan redirect dapat berada di luar nilai server-response yang dilaporkan audit tersebut. developer.chrome
Lighthouse, PSI, dan CWV
| Istilah | Sifat | Data yang diberikan | Penggunaan tepat |
|---|---|---|---|
| Lighthouse | Mesin audit sintetis/laboratorium | Skor Performance dan metrik satu kali pemuatan, berikut diagnostics dan opportunities | Debugging perubahan kode dan reproduksi masalah loading |
| PageSpeed Insights | Layanan pengujian halaman | Lighthouse lab data serta CrUX field data jika trafik mencukupi | Menggabungkan diagnosis lab dengan pengalaman pengguna nyata |
| Core Web Vitals | Standar metrik pengalaman pengguna, bukan alat | LCP, INP, dan CLS | Menilai loading, responsivitas interaksi, dan stabilitas visual pengguna nyata |
Lighthouse berfokus pada initial page load dalam lingkungan simulasi. Masalah yang baru terjadi setelah pengguna men-scroll, membuka menu, atau melakukan interaksi lain bisa tidak tertangkap. web Core Web Vitals saat ini terdiri dari LCP, INP, dan CLS; keberhasilan CWV ditentukan pada persentil ke-75 dari pengalaman pengguna. TBT digunakan Lighthouse sebagai indikator laboratorium terhadap blocking main thread, tetapi bukan pengganti identik untuk INP karena INP membutuhkan interaksi pengguna nyata. web
Lab dan field data
Lab data diperoleh dalam kondisi perangkat dan jaringan yang dikontrol atau disimulasikan. Keuntungannya adalah relatif mudah direproduksi, dapat menghasilkan trace, dan bisa diuji segera setelah perubahan kode. web Field data berasal dari pengalaman pengguna nyata dengan variasi perangkat, browser, jaringan, lokasi, status cache, dan pola interaksi. PageSpeed Insights dan Search Console menggunakan data lapangan CrUX, sedangkan RUM dapat mengumpulkan data yang lebih spesifik untuk pengguna situs sendiri. web Akibatnya:
- Skor Lighthouse yang baik tidak membuktikan seluruh pengguna memperoleh CWV yang baik.
- Skor Lighthouse buruk tidak selalu berarti semua pengguna mengalami halaman buruk.
- Perubahan lab dapat terlihat segera, sedangkan agregat field memerlukan trafik dan waktu observasi.
- CLS dan INP lapangan dapat menangkap kejadian setelah initial load yang tidak terlihat pada satu audit Lighthouse. web
Penyebab skor berubah
Skor dapat berbeda walaupun kode tidak berubah karena nondeterminisme halaman, variasi jaringan, respons server, hardware klien, perebutan CPU, proses browser, iklan, third-party script, dan perbedaan konfigurasi throttling. Dokumentasi Lighthouse secara eksplisit menyarankan pengujian berulang dan penggunaan median; median lima run disebut sekitar dua kali lebih stabil daripada satu run. github Perbedaan besar juga muncul ketika:
- Membandingkan mobile dengan desktop; baseline harus konsisten dengan prinsip mobile first bila situs diuji sebagai mobile.
- Menggunakan versi Lighthouse yang berbeda.
- Membandingkan PSI dengan DevTools lokal.
- Salah satu pengujian memperoleh CDN/page-cache hit dan yang lain cache miss.
- Konten, iklan, eksperimen A/B, atau consent banner berubah.
- Extension browser, antivirus, atau proses lain memakai CPU.
- Pengujian dijalankan bersamaan pada mesin yang sama. github
Server vs Code
Lighthouse menunjukkan apa yang lambat pada satu pemuatan, tetapi tidak selalu menjelaskan mengapa. Klasifikasi berikut membantu mencegah kesimpulan keliru bahwa semua TTFB tinggi disebabkan hosting.
Hosting dan infrastruktur
| Area | Gejala | Pemeriksaan | Dampak Lighthouse |
|---|---|---|---|
| CPU atau worker penuh | TTFB meningkat ketika concurrency naik; respons dinamis tidak konsisten | APM, CPU load, process queue, PHP-FPM status, load test | FCP dan LCP ikut tertunda |
| RAM atau swapping | Latensi sporadis, worker restart, database cache tidak efektif | Memory usage, swap, OOM log | Variasi TTFB dan skor antarrun |
| Disk I/O | Query atau file cache lambat meskipun CPU rendah | I/O wait, latency storage, slow-query log | Dokumen utama dan API terlambat |
| Database | Halaman dinamis lambat, tetapi file statis cepat | Query profiling, slow-query log, cache-hit ratio | TTFB tinggi untuk URL tertentu |
| DNS/TLS/jaringan | DNS Lookup atau Initial Connection dominan | DevTools Network → Timing | Menambah waktu sebelum respons dimulai |
| Page/object cache | Hit cepat, miss sangat lambat | Header cache, hit ratio, bypass-cache test | Skor berubah ekstrem antara warm dan cold |
| CDN | Lokasi dekat cepat tetapi wilayah jauh lambat | Bandingkan edge vs origin dan beberapa region | TTFB, gambar, CSS, dan JS terlambat |
| PHP-FPM/backend runtime | Waiting tinggi dengan query normal | APM transaction, worker saturation, profiling | FCP/LCP terlambat |
| Kompresi/protokol | Transfer CSS/JS besar, koneksi tidak efisien | Header content-encoding, HTTP version, waterfall |
FCP, LCP, Speed Index memburuk |
DevTools Network memisahkan DNS Lookup, Initial Connection, Waiting/TTFB, dan Content Download. Nilai Waiting mencakup satu network round trip dan waktu server menyiapkan respons; oleh karena itu, ia bukan pengukur murni kemampuan CPU hosting. developer.chrome
Website dan frontend
| Area | Gejala | Pemeriksaan | Dampak |
|---|---|---|---|
| JavaScript berlebihan | TBT tinggi, long task, interaksi tertunda | Performance panel, Bottom-Up, Call Tree, bundle analyzer | TBT dan skor Performance turun |
| Unused JavaScript/CSS | Transfer besar tetapi sebagian kecil dieksekusi | DevTools Coverage | FCP, LCP, TBT |
| Render-blocking CSS/JS | Blank screen panjang sebelum FCP | Waterfall dan audit render-blocking | FCP, Speed Index, LCP |
| Gambar terlalu besar | LCP berupa gambar dan transfer besar | LCP element, Network Img filter, dimensions | LCP dan Speed Index |
| Lazy loading keliru | Hero/LCP baru diminta terlambat | Initiator chain, priority, LCP request discovery | LCP |
| Font eksternal | Text terlambat atau berubah setelah font tiba | Network Font filter, Rendering, waterfall | FCP, LCP, CLS |
| Third-party scripts | Long task berasal dari analytics, ads, chat | Performance panel berdasarkan domain | TBT, CLS, LCP |
| Hydration berat | HTML terlihat tetapi main thread lama sibuk | React/Vue profiler, Performance panel | TBT dan INP lapangan |
| DOM berlebihan | Style recalculation dan layout mahal | Performance trace, DOM node count | TBT dan rendering |
| Layout shift | Gambar, iklan, font, atau embed menggeser konten | Experience track dan Layout Shift Culprits | CLS |
Lighthouse mendefinisikan script di tanpa async atau defer, serta stylesheet yang berlaku untuk perangkat saat ini, sebagai kandidat render-blocking. DevTools Coverage dapat membedakan kode yang dipakai dari CSS/JS yang dimuat tetapi tidak diperlukan. developer.chrome
Masalah gabungan
LCP dapat diuraikan secara konseptual menjadi empat komponen berikut.
- TTFB: Waktu sebelum HTML mulai diterima.
- Resource load delay: Waktu sampai browser menemukan dan mulai meminta resource LCP.
- Resource load duration: Waktu transfer resource.
- Element render delay: Waktu setelah resource tersedia sampai elemen benar-benar dirender.
Di stack WordPress, kombinasi TTFB, hero image, dan font sering muncul bersamaan; panduan terpisah membahas LCP WordPress lambat meskipun cache aktif. Karena itu, LCP 7 detik dapat merupakan kombinasi backend 1,5 detik, hero image yang baru ditemukan setelah JavaScript berjalan, file gambar besar, dan main thread yang masih sibuk. Memindahkan hosting hanya menangani bagian pertama; mengompresi gambar hanya menangani bagian ketiga. TTFB tinggi harus diklasifikasikan lebih lanjut:
- Backend: Waktu aplikasi, template rendering, API, atau database.
- Infrastructure: CPU, worker, disk, routing, load balancer.
- Cache: Miss, revalidation, atau key yang salah.
- CDN: Edge miss atau jalur edge-to-origin.
- Network: DNS, TCP/TLS, round trip, lokasi pengguna.
- Redirect: HTTP ke HTTPS, non-www ke www, atau rantai URL.
web.dev juga menyarankan membandingkan field TTFB dengan lab TTFB dan menguji URL yang jarang diakses atau parameter cache-bypass. Perbedaan besar dapat menunjukkan bahwa lab test memperoleh cache hit yang tidak mewakili pengguna nyata. web.developers.google
Diagnosis Praktis
| Diagnostic atau masalah | Kelas | Indikasi Lighthouse | Verifikasi akar penyebab | Solusi yang relevan |
|---|---|---|---|---|
| Reduce initial server response time | MIXED | Dokumen utama lambat | Network Timing, APM, origin-vs-CDN, cache hit/miss, DB trace | Page cache, query/backend optimization, worker tuning, CDN |
| Render-blocking requests | CODE | FCP/SI terlambat | Waterfall dan Coverage | Inline critical CSS; defer noncritical CSS/JS; hapus kode tidak terpakai |
| Reduce unused JavaScript | CODE | Bundle besar dan estimasi byte savings | Coverage dan bundle analyzer | Tree shaking, granular import, code splitting, dynamic import |
| Minimize main-thread work | CODE | TBT dan long task tinggi | Performance panel, Bottom-Up, flame chart | Pecah long task, kurangi hydration, pindahkan komputasi ke worker |
| Improve image delivery | CODE/MIXED | Gambar terlalu besar | Network size vs rendered size | Responsive image, WebP/AVIF (perbandingan format), compression, image CDN |
| LCP request discovery | CODE | LCP diminta terlambat | Initiator chain dan Priority | HTML-discoverable image, preload selektif, fetchpriority="high" |
| Defer offscreen images | CODE | Resource bawah halaman dimuat awal | Waterfall dan viewport check | loading="lazy" untuk gambar non-LCP |
| Font display/request chain | CODE/MIXED | Font menghambat text paint | Font waterfall dan Rendering | WOFF2, subset, preload kritis, font-display |
| Layout shift culprits | CODE | CLS tinggi | Performance → Experience track | Ukuran eksplisit, aspect ratio, ruang cadangan layout |
| Third-party script impact | MIXED | Domain eksternal mendominasi JS/long tasks | Block-request test dan trace per domain | Hapus, defer, facade, consent-based load, Web Worker |
| Excessive DOM/layout | CODE | Recalculate Style/Layout mahal | DOM count dan Performance trace | Sederhanakan komponen dan struktur DOM |
| Inefficient cache policy | MIXED | Repeat visit tetap mentransfer resource | Headers dan Disable cache comparison | Versioned asset, immutable caching, CDN policy |
Daftar Lighthouse bersifat indikatif. Contohnya, “Reduce unused JavaScript” membuktikan bahwa kode tidak digunakan dalam satu skenario audit, tetapi belum membuktikan kode tersebut aman dihapus dari semua route atau interaksi. Akar penyebab baru dapat disebut terverifikasi jika perubahan terisolasi menghasilkan perbaikan pada trace atau metrik terkait. Contohnya: bundle diperkecil, transfer JS turun, long task menghilang, kemudian TBT turun pada pengujian dengan kondisi yang sama.
Metodologi Before–After
Prosedur berikut disarankan saat melaporkan pengujian before-after pada artikel teknis CodeF.
- Bekukan baseline. Simpan URL, commit, waktu pengujian, lokasi, konfigurasi CDN, status login, dan konten.
- Catat versi. Rekam versi Lighthouse, Chrome, OS, serta metode DevTools, CLI, PSI, atau Lighthouse CI.
- Pisahkan mobile dan desktop. Jangan membandingkan baseline mobile dengan hasil desktop.
- Pertahankan throttling. Gunakan profil perangkat, CPU slowdown, dan jaringan yang sama.
- Kontrol cache. Pisahkan cold-cache dan warm-cache; jangan mencampur CDN hit dengan origin miss.
- Jalankan sekurangnya lima kali. Gunakan median, serta simpan minimum–maksimum untuk menunjukkan variasi.
- Jangan menjalankan audit paralel. Perebutan CPU dapat mengubah TBT dan skor. github
- Ubah satu kelompok penyebab. Jika migrasi penuh tidak memungkinkan isolasi, hindari mengatribusikan seluruh peningkatan kepada satu teknik.
- Simpan HTML/JSON report dan trace. Catat skor serta FCP, LCP, TBT, CLS, Speed Index, dan TTFB.
- Validasi lapangan. Periksa CrUX, Search Console, atau RUM setelah data pascadeployment tersedia.
Contoh Lighthouse CI untuk lima run: npx -p @lhci/cli lhci collect \ Dokumentasi Lighthouse merekomendasikan nilai agregat seperti median atau persentil, bukan satu hasil tunggal. Skor Performance harus dilaporkan bersama metrik individual karena optimasi yang nyata dapat tidak banyak mengubah skor jika metrik yang berubah memiliki bobot kecil atau sudah berada di bagian datar kurva skor. github
--url https://example.com \
-n 5
Format pelaporan
Untuk setiap URL dan perangkat, gunakan tabel pelaporan dengan kolom before dan after seperti contoh berikut.
| Informasi | Before | After |
|---|---|---|
| Lighthouse version | 13.x | 13.x |
| Mode | Mobile | Mobile |
| Jumlah run | 5 | 5 |
| Median Performance | , | , |
| FCP | , | , |
| LCP | , | , |
| TBT | , | , |
| CLS | , | , |
| Speed Index | , | , |
| TTFB | , | , |
| Cache/CDN state | Cold/Warm | Cold/Warm |
Perubahan skor sebaiknya dinyatakan dalam poin, misalnya 41 menjadi 84 adalah +43 poin. Persentase relatif seperti 104,9% secara aritmetis dapat dihitung, tetapi mudah disalahartikan karena skor Lighthouse bukan skala rasio linear.
Validasi Sumber
Dari penelusuran 2025–19 Oktober 2026, beberapa kandidat tidak dimasukkan ke daftar utama:
- Orchestra Media 74→96 dan iPixelP 42→96: angka dan stack tersedia, tetapi halaman kasus tidak mencantumkan tanggal pelaksanaan atau publikasi yang dapat diverifikasi; langkah optimasinya juga terlalu umum. webcraftdev
- MacRumors 42→96: sumber pelaksana menjelaskan penghapusan jQuery, CSS Modules, dan penundaan konten blocking, tetapi tidak menampilkan tanggal proyek/publikasi yang cukup untuk memastikan periode 2025–2026. audent
- Homeland Restorers 38→94: tanggal Juli 2025 dan skor mobile tersedia, tetapi uraian teknis before–after terlalu tipis untuk format how-to yang diminta. premiersol
- Kasus Toronto 52→97: tindakan seperti migrasi Kinsta, pengurangan plugin, WebP dan critical CSS disebutkan, tetapi proyek dianonimkan dan tidak dilengkapi laporan audit asli. belovdigital
- Meerako Shopify/Next.js 28→96: metrik dan tindakan cukup terperinci, tetapi klien hanya disebut “Dallas-based retailer” dan bukti audit atau URL proyek tidak diberikan. meerako
- Wipro AEM Edge Delivery Services: booklet 2025 menyebut 55/70 menjadi 97/100, tetapi konteks device, identitas storefront, dan pengujian tidak cukup jelas untuk direkonstruksi. wipro
- JABstract landscaping rebuild: pengujian 28 September 2026 menyebut desktop 88→99, mobile 70→72, dan LCP 2,3→0,9 detik, tetapi langkah implementasinya belum cukup rinci untuk studi utama. jabstract
Studi Kasus Keberhasilan
Studi Kasus 1: Portfolio Azfar Razzaq , Bundle JavaScript dan Font Blocking
Identitas
- Website/proyek: Portfolio pribadi Azfar Razzaq
- Platform/teknologi: Tidak dinyatakan secara eksplisit dalam sumber
- Pelaksana: Azfar Razzaq
- Negara: Tidak disebutkan
- Tanggal pelaksanaan: Sebelum publikasi; tanggal tepat tidak disebutkan
- Tanggal publikasi: 25 Maret 2026
- Sumber asli: DEV Community , Real Portfolio Optimization Case Study
A. Apa Masalahnya?
Baseline mobile memperoleh skor 55, sedangkan desktop 68. Kontribusi TBT dan CLS sudah maksimal, tetapi FCP, LCP, dan Speed Index memperoleh kontribusi nol sehingga masalah utamanya bukan layout shift atau blocking time, melainkan keterlambatan tampilnya konten. dev Lighthouse melaporkan potensi penghematan 2.445 KiB unused JavaScript. Total bundle sekitar 2.517 KB, dengan home.js sekitar 2.005 KB dan index.js sekitar 472 KB. dev Request Google Fonts menambah sekitar 1.020 ms pada render-blocking chain. Gambar situs secara keseluruhan juga berukuran sekitar 8.000 KB sebelum optimasi. dev
B. Sumber Masalah
Klasifikasi: CODE. Pelaksana memverifikasi bahwa sebuah library diimpor terlalu luas padahal halaman hanya menggunakan sebagian kecil fungsinya. Ia juga menemukan font dimuat melalui Google Fonts embed dan gambar masih berupa PNG/JPEG berukuran besar. dev Ini lebih kuat daripada sekadar mengikuti label Lighthouse karena pelaksana memeriksa output bundle, file dominan, pola import, request font, dan ukuran aset.
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance , Mobile | 55 | 96 |
| Lighthouse Performance , Desktop | 68 | 100 |
| JavaScript build size | 2.517 KB | Tidak dipublikasikan |
| Total ukuran gambar | Sekitar 8.000 KB | Sekitar 200 KB |
| FCP | Tidak dipublikasikan | Tidak dipublikasikan |
| LCP | Tidak dipublikasikan | Tidak dipublikasikan |
| TBT | Tidak dipublikasikan | Tidak dipublikasikan |
| CLS | Tidak dipublikasikan | Tidak dipublikasikan |
Sumber menyebut pengujian baseline dilakukan beberapa kali dan penilaian utama menggunakan mobile, tetapi tidak menyebut versi Lighthouse, profil perangkat, throttling, maupun median numeriknya. dev
D. How To
- Jalankan Lighthouse beberapa kali pada live domain dan gunakan incognito agar extension tidak ikut memengaruhi hasil.
- Periksa kontribusi setiap metrik, bukan hanya skor total.
- Buka diagnostics “Reduce unused JavaScript” dan periksa hasil build.
- Identifikasi library yang membuat
home.jsmembengkak. - Ganti import seluruh library dengan import subset yang benar-benar diperlukan.
- Setelah bundle dikurangi, skor mobile naik dari 55 menjadi 87.
- Unduh dan self-host font dalam format WOFF2 untuk menghilangkan request eksternal yang menghambat render.
- Setelah font dipindahkan, skor mencapai sekitar 95–96.
- Tambahkan
fetchPriority="high"pada gambar LCP. - Konversi gambar PNG/JPEG non-LCP menjadi WebP dan kompres pada kualitas sekitar 75–80%.
- Jalankan ulang Lighthouse dan periksa apakah insight, transfer size, serta delay benar-benar turun. dev
E. Hasil dan Bukti
Skor mobile naik 41 poin, dari 55 menjadi 96, sedangkan desktop naik 32 poin, dari 68 menjadi 100. Pengurangan bundle memberi lompatan paling jelas, 55→87, kemudian self-hosted font mendorong hasil ke sekitar 95–96. dev Keterbatasannya: laporan tidak mempublikasikan nilai mentah FCP, LCP, TBT, CLS, versi Lighthouse, median final, live URL, atau file JSON audit. Karena beberapa perubahan diterapkan bertahap, hanya perubahan 55→87 yang cukup kuat untuk dikaitkan langsung dengan pengurangan bundle.
F. Referensi
Studi Kasus 2: Kashif Aziz , Migrasi WordPress ke Astro
Identitas
- Website/proyek:
kashifaziz.me - Platform sebelum: WordPress
- Platform setelah: Astro 5, TypeScript, Tailwind CSS, MDX, Sharp, Cloudflare Pages
- Pelaksana: Kashif Aziz
- Negara: Tidak disebutkan
- Tanggal pelaksanaan: Sebelum 15 Desember 2025
- Tanggal publikasi: 15 Desember 2025
- Sumber asli: WordPress to Astro Migration Journey
A. Apa Masalahnya?
Situs WordPress telah menggunakan caching, CDN, image optimization, dan plugin performa, tetapi skor Performance tetap berada di kisaran 70–80. First visit membutuhkan sekitar 3,2 detik dan repeat load dengan cache sekitar 1,8 detik. kashifaziz Pelaksana mengidentifikasi sekitar 450 KB JavaScript dari theme dan plugin, termasuk jQuery, analytics, social sharing, comment system, dan script tema. Caching mengurangi PHP/database overhead, tetapi tidak menghilangkan frontend JavaScript yang tetap dikirim ke browser. kashifaziz
B. Sumber Masalah
Klasifikasi: MIXED. Masalah berasal dari kombinasi runtime WordPress/PHP/database, dependensi plugin, dan frontend JavaScript. Migrasi kemudian menghilangkan runtime dinamis untuk halaman konten, database query saat request, serta sebagian besar client-side JavaScript. kashifaziz Karena seluruh arsitektur diubah sekaligus, sumber tidak membuktikan berapa poin yang berasal dari Astro, Cloudflare, image optimization, atau penghapusan plugin secara individual.
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance | 72 | 100 |
| Initial page load | 3,2 detik | 0,18–0,29 detik |
| Time to Interactive | 4,1 detik | 0,9 detik |
| TBT | 450 ms | 0 ms |
| CLS | 0,15 | 0 |
| LCP | Tidak dipublikasikan | Sekitar 0,2 detik |
| JavaScript | Sekitar 450 KB | Sekitar 0 KB secara default |
Sumber tidak menyatakan apakah angka tersebut mobile atau desktop, versi Lighthouse, jumlah run, maupun throttling. kashifaziz
D. How To
- Inventarisasi posting, halaman, media, plugin, dan fitur WordPress.
- Petakan setiap URL agar struktur lama dapat dipertahankan.
- Export konten WordPress melalui XML.
- Konversi konten menjadi MDX dan validasi metadata menggunakan Astro Content Collections serta Zod.
- Pertahankan pola URL
/blog/post-slug/; gunakan file_redirectsuntuk URL yang tidak dapat dipertahankan. - Hasilkan semua halaman sebagai static HTML pada build time.
- Gunakan Astro Image/Sharp untuk membuat ukuran responsif dan format WebP.
- Terapkan dimensi gambar dan lazy loading untuk konten bawah fold.
- Hapus comments dan fitur dinamis yang tidak dianggap penting.
- Gunakan Web3Forms untuk form tanpa backend.
- Deploy output statis ke Cloudflare Pages.
- Manfaatkan edge cache, Brotli, HTTP/2, HTTP/3, dan distribusi global.
- Jalankan local production build, mobile test, cross-browser test, kemudian Lighthouse pada deployment produksi. kashifaziz
Contoh perintah deployment dari sumber: npm run build lalu npm run deploy.
E. Hasil dan Bukti
Migrasi ke Astro pada kasus ini menyerupai pola static site generation untuk halaman konten, walau stack dan trade-off fitur dinamis berbeda. Performance meningkat 28 poin, TBT turun 450 ms menjadi nol, dan CLS turun dari 0,15 menjadi nol. Hasil paling signifikan berasal dari penghilangan JavaScript frontend dan runtime server pada halaman konten. kashifaziz
Ada inkonsistensi internal: narasi menyebut skor terakhir WordPress 78, sedangkan tabel hasil mencantumkan baseline 72. Judul juga menyebut “migrated in 2026” walaupun halaman bertanggal 15 Desember 2025; karena itu, artikel valid dalam rentang riset tetapi kronologi judulnya perlu diberi catatan. kashifaziz
F. Referensi
- Studi kasus asli
- Live site: kashifaziz.me
Studi Kasus 3: Carda Health , Optimasi Webflow dan Hero LCP
Identitas
- Website/proyek: Carda Health
- Platform/teknologi: Webflow
- Pelaksana: Grégoire Geoffroy
- Negara: Tidak dicantumkan
- Tanggal pelaksanaan: Partnership berlangsung hingga Agustus 2026; audit dan perbaikan tertentu diverifikasi 30 Juli–27 Agustus 2026
- Tanggal publikasi: Tidak ditampilkan oleh halaman
- Sumber asli: Carda Health Case Study
A. Apa Masalahnya?
Homepage memperoleh Lighthouse Performance sekitar 55 pada mobile, LCP 8,6 detik, dan FCP 5 detik. Sumber menyebut “compounding problems” pada Webflow, khususnya CSS yang tidak diperlukan, discovery/prioritas hero image, gambar di luar viewport, dan format image delivery. gregoiregeoffroy
B. Sumber Masalah
Klasifikasi: CODE. Akar masalah yang didokumentasikan berada pada frontend Webflow: unused CSS lintas halaman, hero image art-directed yang tidak diprioritaskan, non-viewport imagery, dan format gambar. Tidak ada bukti bahwa hosting atau origin server menjadi penyebab dominan. gregoiregeoffroy
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance , Mobile | 55 | 96 |
| Lighthouse Performance , Desktop | 68 | 94 |
| LCP , Mobile | 8,6 detik | 1,3 detik |
| FCP , Mobile | 5,0 detik | 0,8 detik |
| TBT | Tidak dipublikasikan | Tidak dipublikasikan |
| CLS | Tidak dipublikasikan | Tidak dipublikasikan |
Angka disebut sebagai data dari engagement changelog. Pelaksana juga membuat Python batch runner berbasis PageSpeed Insights API untuk menguji sekumpulan URL. gregoiregeoffroy
D. How To
- Audit homepage dan identifikasi LCP hero serta payload CSS.
- Aktifkan fitur Per Page CSS pada Webflow agar halaman tidak mengunduh CSS global yang tidak diperlukan.
- Tambahkan preload untuk hero image.
- Sertakan atribut
mediadanimagesrcsetpada preload agar browser memilih art-directed source yang benar. - Terapkan lazy loading hanya pada gambar di luar viewport.
- Pindahkan image delivery ke format generasi baru pada bagian yang didukung Webflow.
- Buat batch runner menggunakan PageSpeed Insights API untuk menguji banyak URL secara lebih konsisten.
- Verifikasi hasil pada production, bukan hanya preview atau staging. gregoiregeoffroy
E. Hasil dan Bukti
Mobile Performance naik 41 poin, LCP turun 7,3 detik atau sekitar 85%, dan FCP turun 4,2 detik atau sekitar 84%. Desktop naik dari 68 menjadi 94. gregoiregeoffroy Keterbatasannya: tanggal publikasi halaman, versi Lighthouse, jumlah run, throttling, dan laporan JSON/screenshot tidak ditampilkan. Beberapa perubahan dilakukan bersama-sama sehingga kontribusi individual Per Page CSS, preload, lazy loading, dan format gambar tidak dapat dipisahkan.
F. Referensi
- Studi kasus asli
- Live site: cardahealth.com
Studi Kasus 4: Boonaboo , Redesign E-commerce Next.js
Identitas
- Website/proyek: Boonaboo, e-commerce produk ibu dan bayi
- Platform/teknologi setelah redesign: Next.js, HTML, Tailwind CSS
- Pelaksana: MY Aura Puti Agdira, Sari Setyaning Tyas, Yuyun Khairunnisa
- Institusi/negara: Politeknik Media Kreatif, Jakarta, Indonesia
- Tanggal pelaksanaan: Sebelum evaluasi dan publikasi 2026
- Tanggal publikasi: Online 1 September 2026
- Sumber asli: Paper Boonaboo
A. Apa Masalahnya?
Baseline mobile memperoleh Performance 41, FCP 3,4 detik, LCP 17,2 detik, TBT 1.030 ms, Speed Index 4,4 detik, dan CLS 0,11. Desktop memperoleh 76 dengan FCP 0,8 detik, LCP 2,5 detik, TBT 240 ms, Speed Index 1,4 detik, dan CLS 0,031. ojs.ninetyjournal Observasi menemukan homepage terlalu panjang, navigasi lemah, tidak ada product filtering, layout terlalu padat, dan beberapa image asset tidak teroptimasi. ojs.ninetyjournal
B. Sumber Masalah
Klasifikasi: CODE. Bukti penelitian menghubungkan masalah dengan struktur layout, navigation architecture, ukuran image asset, responsive implementation, dan efisiensi kode. Paper tidak menyajikan bukti masalah CPU, database, origin server, atau hosting. ojs.ninetyjournal
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Performance , Mobile | 41 | 84 |
| Performance , Desktop | 76 | 99 |
| FCP , Mobile | 3,4 detik | Tidak dipublikasikan |
| LCP , Mobile | 17,2 detik | Tidak dipublikasikan |
| TBT , Mobile | 1.030 ms | Tidak dipublikasikan |
| CLS , Mobile | 0,11 | Tidak dipublikasikan |
| Speed Index , Mobile | 4,4 detik | Tidak dipublikasikan |
| FCP , Desktop | 0,8 detik | Tidak dipublikasikan |
| LCP , Desktop | 2,5 detik | Tidak dipublikasikan |
| TBT , Desktop | 240 ms | Tidak dipublikasikan |
| CLS , Desktop | 0,031 | Tidak dipublikasikan |
| Speed Index , Desktop | 1,4 detik | Tidak dipublikasikan |
D. How To
- Lakukan pretest Lighthouse untuk mobile dan desktop.
- Gabungkan hasil teknis dengan observasi dan System Usability Scale dari 20 responden.
- Restrukturisasi homepage agar konten prioritas tampil lebih ringkas.
- Perbaiki information architecture dan navigation menu.
- Tambahkan product filtering.
- Kurangi visual density melalui spacing dan hierarchy yang lebih jelas.
- Kompres dan optimalkan image asset.
- Implementasikan responsive design.
- Bangun prototype fungsional menggunakan HTML, Tailwind CSS, dan Next.js.
- Jalankan posttest Lighthouse pada mobile dan desktop menggunakan instrumen yang sama. ojs.ninetyjournal
Paper hanya menyebut “code efficiency improvements” secara umum dan tidak memberikan repository, potongan konfigurasi Next.js, ukuran bundle, atau detail image pipeline.
E. Hasil dan Bukti
Mobile naik 43 poin, dari kategori Poor menjadi Needs Improvement; desktop naik 23 poin menjadi 99. Paper menyebut kenaikan mobile sebagai 104,88%, tetapi untuk komunikasi teknis lebih aman menyebut +43 poin karena skor Lighthouse bukan skala linear. ojs.ninetyjournal Keterbatasan penelitian adalah tidak adanya versi Lighthouse, run count, throttling, kondisi cache, nilai metrik individual setelah redesign, control group, maupun pemantauan pengguna nyata. Dengan banyak perubahan sekaligus, paper membuktikan keberhasilan redesign secara keseluruhan tetapi tidak membuktikan kontribusi kausal tiap perubahan.
F. Referensi
Studi Kasus 5: Prototype Blog UGM , Third-party Script ke Web Worker
Identitas
- Website/proyek: Prototype blog berbasis skenario nyata
- Platform/teknologi: HTML5, CSS, JavaScript, Web Worker, Service Worker
- Pelaksana: Muhammad Pazrin Andreanor dan Nur Rokhman
- Institusi/negara: Universitas Gadjah Mada, Indonesia
- Tanggal pelaksanaan: Sebelum Januari 2026
- Tanggal publikasi: IJCCS Vol. 20 No. 2, April 2026
- Sumber asli: Website Optimization by Relocating Third-Party Script Using Web Worker
A. Apa Masalahnya?
Third-party script dieksekusi pada main thread sehingga bersaing dengan rendering dan user interaction. Pada prototype blog, kondisi tanpa Web Worker menghasilkan TBT 367 ms dan Performance 82. journal.ugm.ac
B. Sumber Masalah
Klasifikasi: CODE. Akar masalah diverifikasi melalui perubahan lokasi eksekusi dan pemeriksaan call stack. Setelah offloading, aktivitas komputasi tetap ada tetapi berpindah ke background thread; ini lebih kuat daripada sekadar menyimpulkan dari audit “third-party code”. journal.ugm.ac
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance | 82 | 94 |
| LCP | 0,9 detik | 0,4 detik |
| FCP | 0,7 detik | 0,4 detik |
| TBT | 367 ms | 280 ms |
| CLS | 0,05 | 0 |
| Speed Index | 1,4 detik | 1,3 detik |
D. How To
- Bangun baseline dengan third-party script berjalan pada main thread.
- Instrumentasikan aplikasi untuk menangkap pemuatan script dari DOM.
- Tempatkan script dalam secure iframe sandbox.
- Jalankan pekerjaan script pada Web Worker.
- Gunakan Service Worker sebagai perantara komunikasi.
- Terapkan Proxy Pattern untuk operasi DOM/window yang tidak dapat dilakukan langsung dari worker.
- Ukur Lighthouse sebelum dan sesudah.
- Pantau memory melalui Chrome DevTools dan kedalaman call stack melalui Console.
- Uji kondisi cold load, warm load, dan new session untuk tinjauan resource. journal.ugm.ac
E. Hasil dan Bukti
Performance naik 12 poin, LCP turun 0,5 detik, FCP turun 0,3 detik, TBT turun 87 ms, dan CLS menjadi nol. journal.ugm.ac Kasus ini merupakan implementasi eksperimental yang sengaja dikembangkan untuk penelitian, bukan website produksi publik. Paper juga tidak menyebut Lighthouse version, device profile, jumlah run, atau konfigurasi network throttling.
F. Referensi
Studi Kasus 6: Prototype Company Profile UGM , Main-thread Offloading
Identitas
- Website/proyek: Prototype company profile berbasis skenario nyata
- Platform/teknologi: HTML5, CSS, JavaScript, Web Worker, Service Worker
- Pelaksana: Muhammad Pazrin Andreanor dan Nur Rokhman
- Institusi/negara: Universitas Gadjah Mada, Indonesia
- Tanggal publikasi: April 2026
- Sumber asli: Paper UGM
A. Apa Masalahnya?
Prototype memiliki navigation, slider, contact form, dan third-party script yang dieksekusi pada main thread. Baseline TBT mencapai 367 ms dan Performance 82. journal.ugm.ac
B. Sumber Masalah
Klasifikasi: CODE. Eksperimen mempertahankan website dan intervensi yang sama, kemudian memindahkan eksekusi third-party script ke background worker. Penurunan TBT dan call-stack depth pada main thread mendukung mekanisme yang diajukan. journal.ugm.ac
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance | 82 | 97 |
| LCP | 0,9 detik | 0,6 detik |
| FCP | 0,4 detik | 0,3 detik |
| TBT | 367 ms | 210 ms |
| CLS | 0,05 | 0 |
| Speed Index | 1,2 detik | 0,7 detik |
D. How To
Langkah implementasinya sama dengan prototype blog: isolate script dalam sandbox, offload ke Web Worker, gunakan Service Worker untuk komunikasi, dan gunakan Proxy Pattern untuk operasi DOM terbatas. Pengujian Lighthouse dilakukan kembali setelah mekanisme worker aktif. journal.ugm.ac Call stack main thread rata-rata dilaporkan turun dari sekitar 10 menjadi 4–6, sedangkan aktivitas background thread tetap tinggi. Artinya pekerjaan tidak dihapus, melainkan didistribusikan ulang. journal.ugm.ac
E. Hasil dan Bukti
Performance naik 15 poin, TBT turun 157 ms, LCP turun 0,3 detik, dan Speed Index turun 0,5 detik. journal.ugm.ac Keterbatasannya sama dengan prototype blog: bukan deployment produksi, tidak ada URL publik, tidak ada RUM, dan parameter Lighthouse tidak dipublikasikan. Klaim abstrak mengenai tambahan memory 5–10 MB juga tidak sepenuhnya selaras dengan tabel memory yang menunjukkan perubahan jauh lebih kecil, sehingga trade-off memory perlu diverifikasi ulang. journal.ugm.ac
F. Referensi
Studi Kasus 7: Prototype E-commerce UGM , TBT dan LCP
Identitas
- Website/proyek: Prototype e-commerce berbasis skenario nyata
- Platform/teknologi: HTML5, CSS, JavaScript, Web Worker, Service Worker
- Pelaksana: Muhammad Pazrin Andreanor dan Nur Rokhman
- Institusi/negara: Universitas Gadjah Mada, Indonesia
- Tanggal publikasi: April 2026
- Sumber asli: Paper UGM
A. Apa Masalahnya?
Prototype e-commerce merupakan objek paling kompleks, dengan product listing, cart, filtering, dan dynamic UI. Baseline LCP mencapai 2,7 detik, TBT 350 ms, dan Performance 75. journal.ugm.ac
B. Sumber Masalah
Klasifikasi: CODE. Third-party JavaScript membebani main thread yang juga menjalankan dynamic UI e-commerce. Eksperimen memverifikasi penyebab dengan membandingkan sistem identik tanpa dan dengan offloading. journal.ugm.ac
C. Before & After
| Metrik | Before | After |
|---|---|---|
| Lighthouse Performance | 75 | 94 |
| LCP | 2,7 detik | 1,7 detik |
| FCP | 0,7 detik | 0,3 detik |
| TBT | 350 ms | 240 ms |
| CLS | 0 | 0 |
| Speed Index | 1,3 detik | 1,1 detik |
D. How To
- Jalankan product listing, cart, filtering, dan third-party script pada main thread sebagai baseline.
- Tangkap third-party script melalui application-side logic.
- Isolasi script dalam iframe sandbox.
- Pindahkan pekerjaan nonkritis ke Web Worker.
- Gunakan Service Worker untuk pertukaran data.
- Proxy permintaan DOM/window yang memang diperlukan kembali ke main thread.
- Ukur LCP, FCP, TBT, CLS, Speed Index, Performance, memory, dan call-stack behavior.
- Bandingkan kondisi tanpa dan dengan worker. journal.ugm.ac
E. Hasil dan Bukti
Performance naik 19 poin, tertinggi di antara tiga prototype. LCP turun satu detik, FCP turun 0,4 detik, dan TBT turun 110 ms. journal.ugm.ac Hasil menunjukkan bahwa offloading dapat efektif ketika third-party execution benar-benar menjadi bottleneck. Namun, pendekatan ini bukan solusi universal: script yang sangat bergantung pada DOM, urutan sinkron, atau API browser tertentu memerlukan proxy dan komunikasi kompleks; paper juga meminta pengujian lanjutan pada lebih banyak perangkat, browser, dan kondisi jaringan. journal.ugm.ac