Cara Mengurangi Render Blocking Resources di Website

Mengurangi render-blocking resources adalah langkah teknis untuk menyingkirkan skrip JavaScript dan berkas CSS yang menghambat browser merender halaman web secara cepat. Ketika browser memuat halaman, ia harus mengunduh dan memproses file-file kritis ini sebelum menampilkan piksel pertama ke layar, yang sering diukur sebagai metrik First Contentful Paint (FCP) dan Largest Contentful Paint (LCP).

Cara paling efektif untuk mengatasi masalah ini meliputi penundaan eksekusi skrip non-kritis menggunakan atribut async atau defer, melakukan inline critical CSS, serta memuat file CSS eksternal secara asinkron. Pendekatan ini memastikan konten utama dapat dilihat oleh pengguna tanpa harus menunggu seluruh sumber daya eksternal selesai diunduh.

Metode Utama Mengatasi Render-Blocking Resources

Terdapat tiga pilar utama dalam menangani aset yang memblokir rendering halaman, yaitu penanganan JavaScript, optimasi CSS, dan manajemen web font.

1. Optimasi Berkas JavaScript

Secara default, tag <script> di dalam dokumen HTML bersifat parser-blocking. Browser akan menghentikan pembacaan HTML untuk mengunduh dan mengeksekusi skrip tersebut. Solusinya adalah menambahkan atribut async atau defer.

<!-- Atribut async: Unduh asinkron, langsung eksekusi begitu selesai -->
<script async src="analytics.js"></script>

<!-- Atribut defer: Unduh asinkron, eksekusi setelah HTML selesai diurai -->
<script defer src="app.js"></script>

2. Optimasi Berkas CSS

CSS selalu bersifat render-blocking karena browser tidak ingin menampilkan halaman tanpa gaya (unstyled content). Untuk mengatasinya, pisahkan CSS yang krusial untuk tampilan awal (Above-the-Fold) dan letakkan langsung di dalam tag <style> di dalam dokumen HTML (Critical CSS), sementara CSS sisanya dimuat belakangan.

<link rel="preload" href="style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="style.css"></noscript>

Tabel Matriks Solusi Render-Blocking

Tipe Sumber DayaMasalah UtamaSolusi TeknisDampak Performa
JavaScript (Eksternal)Menghentikan parsing HTML saat diunduh & dieksekusiGunakan atribut async atau deferSangat Tinggi
CSS (Eksternal)Memblokir rendering awal halaman sepenuhnyaInline Critical CSS & load sisa CSS asynchronousSangat Tinggi
Web FontsMenyebabkan teks tak terlihat (FOIT) saat memuat fontGunakan font-display: swap pada CSSSedang

Langkah-Langkah Implementasi Teknis

Lakukan audit performa situs menggunakan alat ukur seperti Google PageSpeed Insights atau Lighthouse untuk mengidentifikasi skrip atau gaya apa saja yang menjadi penyebab utama pemblokiran.

  1. Buka laporan PageSpeed Insights pada bagian "Eliminate render-blocking resources".
  2. Identifikasi URL file CSS atau JavaScript yang tercantum dalam daftar.
  3. Terapkan atribut defer pada file JS yang tidak memerlukan eksekusi instan.
  4. Pindahkan kode CSS kritis langsung ke bagian <head> dokumen, lalu muat file CSS utama menggunakan teknik rel preload.
  5. Uji kembali kecepatan halaman untuk memastikan skor FCP dan LCP mengalami peningkatan.

Troubleshooting Lapangan

Penerapan atribut defer atau async terkadang dapat menyebabkan galat (error) jika skrip memiliki ketergantungan urutan (dependency). Pastikan skrip yang bergantung pada pustaka lain (seperti jQuery) ditempatkan setelah pustaka tersebut dimuat, atau tetap gunakan eksekusi standar jika skrip tersebut mutlak diperlukan pada awal dokumen.