STATUS IS UPWIKI OPTIMASI SITUS WEB
24Percepat
Kinerja dan pengiriman / Percepat

Critical CSS: Kapan Berguna dan Cara Menghindari Regresi

Gunakan satu set kecil gaya tampilan-pertama yang telah diuji hanya ketika itu meningkatkan kunjungan yang terukur, sambil mempertahankan jalur bergaya penuh yang mudah dipelihara untuk setiap layar dan keadaan.

Critical CSS: Kapan Berguna dan Cara Menghindari Regresi — PANDUAN VISUAL
BACA
8 menit
SUMBER
6
VALIDASI ULANG
2027-03-27
ditinjau
Web performance and release engineering reviewer
JAWABAN SINGKAT

Mulai dengan keputusan.

Critical CSS adalah himpunan kecil gaya yang dibutuhkan sebelum pengunjung menggulir. Stylesheet yang dibuat parser dapat menunda paint pertama sementara browser mengunduh dan membangun CSS Object Model-nya. Menyematkan (inline) set yang diekstrak di head dokumen dapat menghilangkan waktu tunggu stylesheet itu sementara sisa stylesheet dimuat kemudian. Gunakan ini ketika kunjungan cold-cache yang terukur terhambat oleh CSS yang memblokir rendering.

Jangan menjadikannya default. CSS inline menambah ukuran HTML dan menghilangkan penggunaan ulang dari stylesheet yang di-cache pada halaman berikutnya. Ini bisa menyebabkan restyle yang terlihat atau melewatkan keadaan responsif, autentikasi, lokalisasi, persetujuan (consent), atau kondisi error. Pertama kurangi dan pecah CSS, lalu uji set kecil tersebut di viewport dan keadaan representatif. SIU menganggap ini sebagai perubahan rilis yang dapat dibalik dengan pemeriksaan pra-rilis sebelum perjalanan kunci menjadi rusak.

PANDUAN VISUAL

Lihat pekerjaan sebagai sebuah sistem.

Gunakan peta ini untuk menghubungkan keputusan dalam artikel sebelum menerapkan taktik individual.

SIUPercepat
01Tentukan apakah critical CSS adalah masalah yang tepat untuk diselesaikan
02Tentukan viewport awal sebagai matriks pengujian
03Ekstrak set kecil dari satu sumber kebenaran
04Muat sisa CSS dengan aman dan hormati batasan kebijakan
01

Tentukan apakah critical CSS adalah masalah yang tepat untuk diselesaikan

Mulailah dari bukti, bukan label audit. Rekam pemuatan cache-dingin untuk halaman prioritas pada profil mobile dan desktop representatif. Periksa waterfall dan trace: apakah sebuah stylesheet menunda konten pertama, dan apakah ukurannya cukup signifikan untuk berdampak? DevTools Coverage menunjukkan CSS yang digunakan dalam satu sesi, bukan di setiap rute atau keadaan.

Coba pekerjaan dengan perawatan lebih rendah terlebih dahulu: hapus aturan yang tidak terpakai, minify dan kompres output, muat CSS per-rute hanya saat diperlukan, dan hindari rantai @import CSS biasa. web.dev menyebut ekstraksi dan penundaan sebagai teknik lanjutan.

Kandidat baik

Tunda render pertama yang terukur terkait CSS, kunjungan cache-dingin penting, dan layout awal dapat dipertahankan.

Kandidat buruk

Jika keterlambatan disebabkan server, gambar, font, JavaScript, atau stylesheet yang sudah kecil, inline CSS kecil kemungkinan membantu.

02

Tentukan viewport awal sebagai matriks pengujian

Viewport awal, kadang disebut above the fold, adalah yang dilihat pengunjung sebelum menggulir. Tidak ada tinggi universal: perangkat, zoom, bahasa, cookie, dan varian konten mengubahnya. Satu tangkapan layar desktop bisa melewatkan ponsel atau headline yang diterjemahkan.

Gunakan profil bernama. Sertakan layout sempit dan lebar, breakpoint kunci, struktur login berbeda, serta banner persetujuan, promosi, pesan pemeliharaan, atau pesan validasi yang dapat muncul di bagian atas halaman.

Inventaris keadaan

Catat template, viewport, locale, autentikasi, persetujuan, dan varian top-of-page yang digunakan untuk menghasilkan dan menguji set.

Batas interaksi

Uji pengguliran cepat, menu, dan fokus form; sebuah aturan yang ditunda tidak aman jika kontrolnya bisa muncul sebelum seluruh CSS diterapkan.

03

Ekstrak set kecil dari satu sumber kebenaran

Hasilkan critical CSS dari build produksi. Ekstraksi dapat mengidentifikasi aturan yang digunakan dalam sebuah viewport, tetapi tinjau aturan kondisional, dinamis, dan transisi. Jangan menyalin sistem desain kedua ke template secara manual; itu akan menyimpang saat komponen dan markup berkembang.

Jaga agar output tetap digenerasi dan versioned bersama rilis, sementara source CSS tetap menjadi otoritas. Sematkan hanya aturan yang diperlukan untuk keadaan pertama yang dapat digunakan. Blok inline besar menambah HTML dan tidak dapat digunakan ulang dari cache external stylesheet di halaman lain. Bandingkan navigasi cold dan warm sebelum menyatakan perubahan sebagai perbaikan.

Anggaran duplikasi

Lacak byte terkompresi yang disematkan, byte stylesheet yang tersisa, dan aturan yang diduplikasi. Satu permintaan blok yang berkurang belum tentu merupakan keuntungan bersih.

Pengaman build

Beri flag pada build ketika ekstraksi kosong, melebihi batas ukuran inline, atau berubah tak terduga dari baseline yang ditinjau.

04

Muat sisa CSS dengan aman dan hormati batasan kebijakan

Stylesheet sisa harus tiba sebelum konten bawah dan keadaan selanjutnya terlihat lengkap. Pola yang terdokumentasi biasanya mem-preload CSS sebagai style lalu mengubahnya menjadi stylesheet setelah dimuat, dengan fallback tanpa JavaScript. Preload meminta sumber daya lebih awal; preload tidak menerapkan CSS. Set yang tidak lengkap dapat menyebabkan restyle yang terlihat.

Periksa Kebijakan Keamanan Konten (Content Security Policy) sebelum menggunakan penangan pemuatan inline. web.dev mencatat bahwa kebijakan dapat melarang JavaScript inline onload, jadi gunakan loader yang kompatibel atau desain lain. Uji juga dengan JavaScript dinonaktifkan. Berkas yang dikualifikasi media berguna untuk gaya kondisional nyata seperti print; kueri media yang tidak cocok tidak memblokir render, meski mungkin masih mengunduh.

Jalur tanpa-JavaScript

Verifikasi bahwa pengunjung tanpa JavaScript menerima CSS penuh dan dapat menyelesaikan perjalanan prioritas.

Pisahkan prioritas

Selidiki font atau gambar first-viewport yang tiba lambat secara terpisah; critical CSS tidak mengubah perilaku pengambilan sumber daya tersebut.

05

Uji regresi visual, fungsional, dan cache

Gunakan perbandingan visual pada setiap viewport bernama dan keadaan top-of-page. Periksa teks tanpa gaya, tumpang tindih, navigasi tersembunyi, indikator fokus hilang, pergeseran layout, dan 'snap' saat CSS yang ditunda diterapkan. Latih navigasi keyboard, jalur sentuh, error, dan pengguliran cepat. Jika aturan yang ditunda membuat kontrol tidak dapat digunakan, aturan itu harus berada di jalur kritis atau desain harus diubah.

Uji kunjungan cold dan warm. Pengujian cold menunjukkan apakah penghilangan tunggu CSS memperbaiki rendering; pengujian warm menunjukkan biaya byte HTML yang disematkan berulang. Uji HTML yang sudah ter-cache sebelumnya dan kembalinya setelah deployment. Pertahankan aset yang kompatibel sementara HTML yang di-cache mungkin masih memintanya, dan jangan menimpa URL stylesheet yang ber-fingerprint.

Ukur hasilnya

Bandingkan first content dan main visible content, lalu gunakan trace untuk menjelaskan keuntungan atau regresi.

Tinjauan aksesibilitas

Sertakan fokus, kontras, preferensi motion, zoom, dan urutan baca yang dapat dibaca. Rendering lebih cepat bukan berarti lolos jika antarmuka tidak dapat diakses.

06

Operasikan sebagai fitur pengiriman yang dapat dibalik

Berikan pipeline seorang pemilik dan dokumentasikan input, artefak, template, profil pengujian, dan batas ukuran inline. Jalankan pengujian setiap kali CSS, markup, pustaka komponen, feature flag, atau pihak ketiga di atas lipatan berubah. Coverage membantu panduan tinjauan, tetapi satu rekaman tidak bisa membuktikan sebuah aturan aman untuk semua tempat.

Rilis di balik konfigurasi yang dapat dibalik jika memungkinkan. Catat jalur stylesheet yang diketahui-baik, versi artefak, identifier build, dan metode recovery. Jika muncul regresi, kembalikan pengiriman yang kompatibel terlebih dahulu, lalu diagnosis keadaan yang terlewat. SIU menggunakan alur kerja ini untuk menstabilkan jalur kritis sebelum dampak ke pelanggan meluas.

Pemicu perubahan

Banner baru, alur persetujuan, locale, breakpoint, atau layout akun mengharuskan regenerasi dan pengujian.

Disiplin rollback

Kembalikan template dan konfigurasi pengiriman ke generasi yang kompatibel; jangan edit URL aset immutable yang mungkin dirujuk dokumen lama.

TINDAKAN / VERIFIKASI

Panduan tugas praktis Anda.

  1. 01

    Baselinenya rute prioritas

    Rekam pemuatan cold dan warm pada profil mobile dan desktop yang relevan.

    VERIFIKASI: Rekaman mencakup URL atau template, profil browser, status cache, dan bukti bottleneck CSS.
  2. 02

    Kurangi CSS biasa terlebih dahulu

    Hapus aturan mati yang terverifikasi, minify dan kompres output, pecah CSS per-rute, dan ganti rantai @import yang bisa dihindari.

    VERIFIKASI: Pengukuran ulang menunjukkan hasil setelah perubahan yang berisiko lebih rendah.
  3. 03

    Tentukan matriks ekstraksi

    Daftar viewport relevan dan top-of-page untuk locale, autentikasi, persetujuan, banner, dan keadaan validasi.

    VERIFIKASI: Setiap artefak memiliki profil dan keadaan yang terdokumentasi.
  4. 04

    Hasilkan dari CSS produksi

    Jalankan ekstraksi dari stylesheet rilis dan versioning dengan outputnya.

    VERIFIKASI: Build bersih mereproduksi artefak inline tanpa edit template manual.
  5. 05

    Anggarkan duplikasi

    Tetapkan ambang tinjau untuk CSS inline terkompresi dan periksa duplikasi di file eksternal.

    VERIFIKASI: Laporan rilis membandingkan HTML, sisa CSS, dan hasil cold serta warm terhadap baseline.
  6. 06

    Buktikan pemuatan tunda dan fallback

    Verifikasi bahwa CSS penuh diterapkan, lalu uji fallback tanpa-JavaScript dan perilaku Kebijakan Keamanan Konten.

    VERIFIKASI: Setiap jalur yang diuji memiliki styling yang dapat digunakan tanpa kesalahan kebijakan.
  7. 07

    Jalankan pengujian regresi visual dan interaksi

    Bandingkan rendering awal dan setelah stabil; latih fokus, zoom, pengguliran, menu, form, dan error.

    VERIFIKASI: Tidak ada keadaan top-of-page yang tidak bergaya, tidak dapat diakses, tumpang tindih, atau tidak dapat digunakan sebelum seluruh CSS tersedia.
  8. 08

    Periksa kompatibilitas cache dan deployment

    Uji HTML yang sudah ter-cache terhadap rilis dan pertahankan aset yang direferensikan.

    VERIFIKASI: Dokumen saat ini dan sebelumnya memuat gaya tanpa 404 atau keadaan visual rusak.
  9. 09

    Dokumentasikan kepemilikan dan rollback

    Catat pemilik, versi artefak, bukti pengujian, prosedur recovery, dan pemicu peninjauan.

    VERIFIKASI: Drill non-produksi mengembalikan pengiriman CSS yang diketahui-baik tanpa mengubah URL immutable yang dipublikasikan.
TOPIK DISKUSI

Bandingkan kompromi, bukan data pribadi.

Gunakan prompt ini dengan tim Anda atau komunitas pemilik situs. Bagikan metode dan pelajaran, tetapi jangan pernah menempelkan kredensial, data pelanggan, atau detail infrastruktur yang tidak bersifat publik.

  1. 01

    Keadaan top-of-page mana di situs Anda yang paling mungkin terlewatkan dalam satu pengujian desktop, dan bagaimana Anda akan menambahkannya ke matriks ekstraksi?

  2. 02

    Bagaimana Anda membandingkan perbaikan kunjungan pertama (cold) dengan biaya HTML berulang yang mungkin dibayar pengunjung kembali?

  3. 03

    Pemeriksaan pra-terbang ringan apa yang paling mungkin menangkap perubahan rilis yang mengubah viewport pertama Anda secara tak terduga?

SUMBER POPULER / TERPERCAYA

Buka materi sumber.

web.devExtract critical CSS ↗

Mendefinisikan critical CSS, menjelaskan mengapa CSS memblokir rendering, dan merinci trade-off ukuran inline, caching, viewport, dan ekstraksi.

Ditinjau 2026-09-27
web.devDefer non-critical CSS ↗

Menunjukkan pola penundaan yang terdokumentasi, alur kerja Coverage, fallback tanpa-script, dan batasan Content Security Policy.

Ditinjau 2026-09-27
web.devOptimize resource loading ↗

Menjelaskan render blocking, pemecahan CSS, CSS tidak terpakai, rantai permintaan @import, trade-off caching inline, dan pertanyaan pemeliharaan.

Ditinjau 2026-09-27
MDN Web DocsCSS performance optimization ↗

Panduan browser terkait CSS pada stylesheet yang dikualifikasi media, minifikasi, kompresi, dan preloading responsif.

Ditinjau 2026-09-27
Chrome for DevelopersCoverage: Find unused JavaScript and CSS ↗

Cara merekam sesi, memeriksa byte CSS yang digunakan dan tidak digunakan, serta menginterpretasikan panel Coverage.

Ditinjau 2026-09-27
WHATWG HTML StandardLink type stylesheet ↗

Menetapkan bahwa link stylesheet yang dibuat parser secara implisit berpotensi memblokir render.

Ditinjau 2026-09-27

Kebijakan sumber. Artikel ini menggunakan standar baca dan dokumentasi browser serta web-platform pihak pertama. Ia menyajikan critical CSS sebagai teknik pengiriman yang bergantung pada pengukuran dan konteks, dan menghindari klaim performa universal yang tidak didukung. Sumber daya adalah referensi bagi pembaca; tautan internal dan SID adalah navigasi, bukan bukti.

PENJELASAN SINGKAT

Pertanyaan umum.

Haruskah setiap situs menyematkan critical CSS?

Tidak. Ini adalah teknik lanjutan dengan biaya pemeliharaan dan caching. Pertimbangkan hanya setelah mengukur bottleneck render pertama yang disebabkan CSS dan setelah mengurangi CSS biasa. Sebagian besar situs sebaiknya lebih dulu membuat stylesheet utama lebih kecil, spesifik rute, dan mudah di-cache.

Berapa banyak CSS yang harus dikategorikan kritis?

Hanya aturan yang diperlukan untuk keadaan awal yang dapat digunakan di seluruh matriks viewport dan keadaan yang terdokumentasi. Tidak ada hitungan byte atau tinggi fold universal. Tetapkan anggaran ukuran inline spesifik proyek, bandingkan hasil cold dan warm, dan hapus aturan yang tidak diperlukan sebelum CSS yang ditunda tiba.

Apakah preload saja dapat membuat stylesheet tidak memblokir render?

Tidak. Preload menjadwalkan pengambilan lebih awal dan dapat membuat sumber daya tersedia lebih cepat, tetapi tidak menerapkan CSS. Stylesheet konvensional tetap berpotensi memblokir render. Desain preload-ke-stylesheet membutuhkan fallback, kepatuhan kebijakan, dan pengujian restyle visual.

Status Is UP Editorial Team · Uptime Enablement Editors

Ditinjau oleh Web performance and release engineering reviewer. Diterbitkan 2026-09-27; diperbarui 2026-09-30.