STATUS IS UPWIKI OPTIMASI SITUS WEB
23Perkuat
Kinerja dan pengiriman / Perkuat

Kendalikan Skrip Pihak Ketiga Sebelum Mereka Mengendalikan Halaman Anda

Sistem praktis untuk menemukan skrip luar, membuktikan manfaat, memuat dengan aman, menghormati persetujuan, menguji kegagalan, dan menghapus vendor yang tidak terpakai.

Kendalikan Skrip Pihak Ketiga Sebelum Mereka Mengendalikan Halaman Anda — PANDUAN VISUAL
BACA
8 menit
SUMBER
7
VALIDASI ULANG
2027-03-27
ditinjau
Pemimpin engineering performa dengan tinjauan privasi dan keamanan aplikasi untuk integrasi yang dibatasi persetujuan atau sensitif keamanan
JAWABAN SINGKAT

Mulai dengan keputusan.

Perlakukan setiap skrip pihak ketiga sebagai dependensi dengan pemilik, manfaat, anggaran, kategori persetujuan, dan tanggal peninjauan. Bangun satu inventaris dari jejak browser, tag manager, plug-in CMS, dan kode. Catat domain vendor, pemicu, data yang terekspos, dan apa yang rusak jika vendor lambat atau tidak ada. Hapus tag duplikat dan tag tanpa pemilik terlebih dahulu.

Jaga kode nonesensial keluar dari jalur perenderan kritis (critical rendering path) — pekerjaan browser yang diperlukan untuk menampilkan layar pertama. Muat hanya kode yang diperlukan untuk tugas pertama; tunda widget independen sampai interaksi sambil mempertahankan urutan ketergantungan. Uji perjalanan prioritas dengan persetujuan diterima dan ditolak serta dengan domain vendor diblokir. Kode yang tidak bisa gagal secara aman memerlukan fallback, isolasi, atau implementasi yang berbeda.

PANDUAN VISUAL

Lihat pekerjaan sebagai sebuah sistem.

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

SIUPerkuat
01Bangun satu inventaris dari apa yang dimuat browser
02Buat keputusan simpan, hapus, dan anggaran menjadi transparan
03Muat terlambat hanya jika terlambat aman
04Jadikan persetujuan sebagai gerbang, bukan pemikiran kemudian
01

Bangun satu inventaris dari apa yang dimuat browser

Mulailah dengan halaman representatif: beranda, landing, detail produk, pencarian, keranjang, checkout, akun, dan kampanye. Catat kunjungan baru dan kunjungan kembali di Chrome DevTools. Bandingkan bukti dari browser dengan tag manager, plug-in CMS, dan dependensi kode; satu tampilan dapat melewatkan skrip yang disuntikkan.

Gunakan satu baris per vendor atau integrasi, bukan hanya per URL. Tangkap domain yang dikontaknya dan apakah ia dapat menambahkan tag. Beri pemilik bisnis yang dapat mempertahankan tujuan dan menyetujui penghapusan. Periksa ulang setelah kampanye, perubahan vendor, rilis template, dan redesain.

Bukti minimum

Simpan halaman, perjalanan, vendor domain, permintaan, ukuran transfer, pekerjaan main-thread, dan kondisi pengujian. Jejak laboratorium (lab trace) adalah bukti diagnostik, bukan janji untuk setiap pengunjung.

Catat keputusan

Cantumkan tujuan, pemilik, kategori persetujuan, pemicu, data yang terekspos, urutan ketergantungan, fallback, dan tanggal peninjauan.

02

Buat keputusan simpan, hapus, dan anggaran menjadi transparan

Tanyakan kepada setiap pemilik apa yang paling buruk jika integrasi itu menghilang. Jika jawaban kabur, nonaktifkan atau hapus. web.dev merekomendasikan anggaran, menghindari fungsi duplikat, dan membersihkan skrip redundan.

Anggaran adalah penjaga tim, bukan ambang universal. Tetapkan batas per-vendor dan per-halaman untuk byte, permintaan, waktu main-thread, dan waktu muat. Bandingkan baseline dengan perubahan. Minta pemilik untuk tetap dalam batasan, menghapus biaya lain, atau mendapatkan pengecualian yang kedaluwarsa. Gunakan perjalanan yang sebanding dan metrik berfokus pengguna.

Simpan

Simpan hanya dependensi yang memiliki tujuan saat ini, biaya dan penggunaan data yang disetujui pemilik, serta jalur kegagalan yang dapat diterima.

Hapus

Pensiunkan pixel kedaluwarsa, analitik duplikat, chat yang tidak aktif, eksperimen yang tidak digunakan, dan plug-in yang ditinggalkan melalui rilis bertahap.

Pengecualian

Catat alasan, biaya, pemberi persetujuan, tindakan kompensasi, dan tanggal peninjauan.

03

Muat terlambat hanya jika terlambat aman

Pilih perilaku pemuatan secara sengaja. Skrip eksternal klasik tanpa atribut async, defer, atau module akan diambil dan dieksekusi sebelum parsing HTML berlanjut. Dengan async, pengunduhan berjalan paralel tetapi eksekusi dimulai saat siap, sehingga urutan tidak terjamin. Dengan defer, skrip klasik eksternal dijalankan setelah parsing dan dalam urutan dokumen, sebelum DOMContentLoaded. Defer cocok untuk skrip berurutan; ia bukan solusi universal.

Untuk antarmuka opsional seperti chat, sosial, peta, video, atau rekomendasi, tampilkan placeholder ringan dan muat vendor setelah klik atau ketika relevan. Pola facade ini memulai dari kontrol Anda sendiri daripada embed penuh. Pertahankan interaksi keyboard dan sediakan ruang tampilan. Jangan tunda kode yang diperlukan untuk menghitung harga, masuk, memproses pembayaran, menyediakan aksesibilitas esensial, atau memenuhi kewajiban yang telah dikonfirmasi tanpa alternatif yang telah ditinjau.

Pilih pemicu

Muat segera hanya untuk dependensi tugas pertama; gunakan muat pasca-parse untuk kode yang berurutan dan muat berdasarkan interaksi atau visibilitas untuk embed opsional.

Hormati urutan

Jangan tandai skrip yang saling bergantung sebagai async dan mengharapkan urutan tetap; dokumentasikan dan uji rantai publikasinya.

Hindari window load

Jangan mengikat UI kritis ke event window load; embed pihak ketiga dapat menundanya bahkan saat async atau defer digunakan.

04

Jadikan persetujuan sebagai gerbang, bukan pemikiran kemudian

Klasifikasikan setiap vendor dengan pemangku kepentingan privasi dan hukum yang memahami yurisdiksi dan aliran data. Untuk integrasi yang dibatasi persetujuan, pastikan status persetujuan tersedia sebelum tag mengirim data terkait. Google mengatakan perintah default consent-nya harus dijalankan sebelum perintah pengukuran, dan pembaruan harus mengikuti perubahan pilihan. Panduan produk ini bukan nasihat hukum.

Uji kunjungan pertama tanpa pilihan, dengan penerimaan, penolakan, dan penarikan. Periksa antarmuka dan jaringan: widget tersembunyi tidak membuktikan tidak ada permintaan atau pengenal yang dikirim. Jika platform persetujuan dimuat secara asinkron, uji waktu muatnya. Pertahankan pilihan secara tepat dan terapkan perubahan pada halaman saat ini serta kunjungan berikutnya.

Dokumentasikan klasifikasi

Jangan mengandalkan label vendor. Catat mengapa tag itu esensial, opsional, atau dilarang untuk wilayah atau perjalanan tertentu dan peroleh persetujuan.

Verifikasi penarikan

Setelah penarikan persetujuan, pastikan tag nonesensial yang dikonfigurasi tidak dimuat atau mengirim data dan simpan bukti pengujian.

05

Kurangi jangkauan dampak dari kode yang tidak Anda kendalikan

OWASP mengidentifikasi hilangnya kontrol atas perubahan klien, eksekusi kode sewenang-wenang di browser, dan pengungkapan data sensitif sebagai risiko sentral. Batasi akses penerbitan tag, tinjau HTML kustom atau fitur kode sewenang-wenang, dan dokumentasikan field data-layer yang diperbolehkan. Perjanjian vendor dan tinjauan keamanan yang memenuhi syarat dapat membantu untuk integrasi berisiko tinggi; keduanya bukan pengganti pengujian.

Subresource Integrity, atau SRI, memungkinkan browser memverifikasi skrip terhadap hash kriptografi. Ini berguna hanya ketika sumber dapat dipin dan pengiriman lintas-origin mendukung CORS; W3C mengatakan menggunakan SRI tanpa CORS adalah kesalahan logis. Ini kurang cocok untuk banyak URL vendor yang berubah-ubah. Iframe dengan sandbox dapat mengurangi akses langsung ke DOM host dan cookie, tetapi memerlukan tinjauan spesialis. Alur pembayaran dan alur yang sensitif terhadap keamanan memerlukan tinjauan yang memenuhi syarat.

Minimalisir data

Kirim hanya field yang didokumentasikan dan diperlukan untuk tujuan. Jangan mengekspos rahasia, data pembayaran, atau atribut pelanggan yang tidak perlu.

Ketahui batasnya

SRI memverifikasi byte, bukan apakah penggunaan data atau permintaan selanjutnya sesuai; isolasi bukan solusi satu-klik.

06

Latih kegagalan vendor sebelum pelanggan mengalaminya

Untuk setiap vendor yang dipertahankan, blokir domainnya di lingkungan pengujian atau pemblokir permintaan browser, lalu jalankan perjalanan. Uji juga respons yang lambat dan konfigurasi tag-manager tanpa integrasi tersebut. Konfirmasi konten utama, navigasi, formulir, checkout, dan akses akun berfungsi seperti yang diharapkan. Ini menyingkap asumsi sebelum rilis.

Tentukan remediasi sebelum insiden: siapa yang bisa menonaktifkan tag, apakah diperlukan flag atau publish di tag-manager, bagaimana melakukan rollback, dan bagaimana memverifikasi. SIU adalah optimasi ketersediaan proaktif dan remediasi: gunakan inventaris, anggaran, pra-penerbangan, dan latihan rollback untuk mengurangi risiko dependensi. SIU tidak dapat mengendalikan infrastruktur vendor, menjamin ketersediaan, atau menggantikan tinjauan.

Tetapkan kriteria keberhasilan

Nyatakan apa yang tetap dapat digunakan tanpa vendor, apa yang mungkin menurun, fallback-nya, dan batas maksimum keterlambatan sebelum penonaktifan.

Simpan bukti rilis

Lampirkan jejak sebelum-dan-sesudah, hasil persetujuan, hasil vendor diblokir, dan pemilik rollback pada catatan perubahan.

TINDAKAN / VERIFIKASI

Panduan tugas praktis Anda.

  1. 01

    Tangkap set dependensi

    Jejak template prioritas, lalu bandingkan bukti browser dengan inventaris tag-manager, CMS, dan kode.

    VERIFIKASI: Setiap domain pihak ketiga terhubung ke baris inventaris atau diselidiki sebelum rilis.
  2. 02

    Tunjuk pemilik

    Nama orang yang bertanggung jawab atas tujuan, biaya, penggunaan data, dan pembaruan.

    VERIFIKASI: Tidak ada integrasi yang dipertahankan tanpa pemilik, tujuan, atau tanggal peninjauan.
  3. 03

    Hapus kode redundan

    Lakukan penghapusan bertahap untuk analitik duplikat, pixel kedaluwarsa, eksperimen yang dorman, dan plug-in yang tidak digunakan.

    VERIFIKASI: Perjalanan yang diperlukan dan pelaporan diperiksa setelah penghapusan.
  4. 04

    Tetapkan anggaran

    Tetapkan batas halaman dan vendor untuk permintaan, byte, pekerjaan main-thread, dan waktu.

    VERIFIKASI: Catatan rilis membandingkan perubahan dengan batas dan mencatat pengecualian yang kedaluwarsa.
  5. 05

    Validasi pemuatan dan persetujuan

    Uji urutan dependensi, fallback, penggunaan keyboard, dan pilihan persetujuan.

    VERIFIKASI: Inspeksi jaringan sesuai dengan perilaku pemuatan dan persetujuan yang disetujui.
  6. 06

    Tinjau batasan

    Batasi akses penerbitan, dokumentasikan field data, dan nilai SRI atau isolasi hanya jika batasannya cocok.

    VERIFIKASI: Integrasi memiliki tinjauan keamanan atau privasi yang sesuai untuk risikonya.
  7. 07

    Blokir vendor

    Simulasikan vendor yang tidak tersedia atau lambat dan jalankan perjalanan esensial ujung-ke-ujung.

    VERIFIKASI: Tugas kritis memenuhi kriteria fallback, atau risikonya didesain ulang atau diterima secara eksplisit.
  8. 08

    Latih penonaktifan dan rollback

    Dokumentasikan rute penonaktifan yang berwenang dan kembali ke konfigurasi yang diketahui baik.

    VERIFIKASI: Seseorang yang bernama telah menguji langkah-langkah tersebut di nonproduksi dan merekam hasilnya.
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

    Integrasi pihak ketiga mana di situs Anda yang memiliki manfaat terukur paling jelas, dan bukti apa yang membuat keputusan itu mudah?

  2. 02

    Fallback apa yang menjaga perjalanan pelanggan tetap berguna ketika widget, embed, atau vendor pengukuran opsional tidak tersedia?

  3. 03

    Bagaimana tim produk, pemasaran, privasi, dan engineering Anda memutuskan kapan pengecualian tag sementara harus kedaluwarsa?

SUMBER POPULER / TERPERCAYA

Buka materi sumber.

web.devLoad Third-Party JavaScript ↗

Panduan Google untuk menemukan sumber berbiaya tinggi, mengukur dampak, menunda pemuatan, dan self-hosting.

Ditinjau 2026-09-27
web.devThird-party JavaScript performance ↗

Tinjauan biaya jaringan dan perenderan pihak ketiga, anggaran, dan pembersihan.

Ditinjau 2026-09-27
MDN Web Docsscript: The Script element ↗

Referensi untuk skrip klasik, async, defer, module, integrity, dan kesalahan.

Ditinjau 2026-09-27
OWASPThird Party JavaScript Management Cheat Sheet ↗

Panduan keamanan tentang risiko pihak ketiga, kontrol tag, sandboxing, integrity, dan eksposur data.

Ditinjau 2026-09-27
Google for DevelopersSet up consent mode on websites ↗

Panduan resmi Google-tag untuk default persetujuan, pembaruan, waktu, dan persistensi.

Ditinjau 2026-09-27
W3CSubresource Integrity ↗

Spesifikasi untuk metadata integritas skrip dan batasan lintas-origin.

Ditinjau 2026-09-27
Chrome for DevelopersPerformance features reference ↗

Cara merekam jejak dan membedakan event pihak pertama dan pihak ketiga.

Ditinjau 2026-09-27

Kebijakan sumber. Artikel ini menggunakan dokumentasi publik primer atau otoritatif yang dibaca langsung. Sumber dipilih untuk detail implementasi, bukan potongan kutipan. Dokumentasi produk tidak menentukan kewajiban hukum. Tautan internal dan SID adalah navigasi, bukan bukti.

PENJELASAN SINGKAT

Pertanyaan umum.

Haruskah setiap skrip pihak ketiga menggunakan async?

Tidak. Async menghilangkan pemblokiran parser selama pengunduhan tetapi tidak menjamin urutan dan dapat menginterupsi perenderan. Gunakan untuk skrip independen; gunakan defer untuk skrip klasik yang berurutan, dan pemicu interaksi untuk embed opsional.

Bisakah kami self-host JavaScript vendor untuk membuatnya lebih andal?

Tidak otomatis. Self-host dapat meningkatkan kontrol atas caching dan pengiriman, tetapi membuat Anda bertanggung jawab atas kompatibilitas dan pembaruan keamanan. Konfirmasi ketentuan vendor, kepemilikan patch, dan pengujian regresi terlebih dahulu.

Apakah SRI membuat skrip vendor menjadi aman?

Tidak. SRI dapat memverifikasi byte yang diharapkan ketika pengiriman mendukungnya. Ia tidak menilai perilaku yang dimaksudkan, pengumpulan data, atau aktivitas jaringan selanjutnya, dan tidak praktis untuk banyak skrip yang sering berubah.

Status Is UP Editorial Team · Editor Uptime Enablement

Ditinjau oleh Pemimpin engineering performa dengan tinjauan privasi dan keamanan aplikasi untuk integrasi yang dibatasi persetujuan atau sensitif keamanan. Diterbitkan 2026-09-27; diperbarui 2026-09-30.