Mengoptimalkan Gambar Website: WebP, AVIF, Ukuran, dan Lazy Load

Diperbarui 16 Oktober 2026 · ±6 menit baca

Pada sebagian besar website, gambar adalah komponen terbesar dari total ukuran halaman. Kabar baiknya, gambar juga termasuk yang paling mudah dioptimalkan. Dengan beberapa langkah sederhana, ukuran halaman bisa turun drastis dan LCP membaik tanpa mengubah tampilan.

1. Gunakan ukuran yang sesuai

Kesalahan paling umum adalah mengunggah gambar jauh lebih besar dari ukuran tampilnya. Foto 4000×3000 piksel yang ditampilkan di kolom 800 piksel memaksa pengunjung mengunduh data berkali-kali lipat lebih banyak dari yang diperlukan.

Aturan praktis:

Lighthouse akan menandai gambar yang terlalu besar dengan saran "Ubah ukuran gambar dengan benar" (properly size images).

2. Sediakan beberapa ukuran dengan srcset

Layar ponsel tidak butuh gambar selebar layar desktop. Atribut srcset dan sizes memungkinkan browser memilih file yang paling sesuai:

<img src="/img/sepatu-800.webp"
     srcset="/img/sepatu-400.webp 400w, /img/sepatu-800.webp 800w, /img/sepatu-1600.webp 1600w"
     sizes="(max-width: 600px) 100vw, 800px"
     width="800" height="600" alt="Sepatu lari hitam">

WordPress membuat beberapa ukuran gambar dan menambahkan srcset secara otomatis.

3. Pilih format modern: WebP dan AVIF

Anda bisa menyajikan AVIF dengan cadangan WebP atau JPEG menggunakan elemen <picture>:

<picture>
  <source srcset="/img/hero.avif" type="image/avif">
  <source srcset="/img/hero.webp" type="image/webp">
  <img src="/img/hero.jpg" width="1200" height="630" alt="Tim kami di kantor">
</picture>

Browser akan memakai format pertama yang didukungnya.

4. Kompres dengan kualitas yang wajar

Kompresi lossy membuang detail yang hampir tidak terlihat mata. Untuk JPEG dan WebP, kualitas sekitar 70–85 biasanya sudah tampak bagus. Selalu periksa hasilnya secara visual, terutama pada gambar dengan teks atau gradasi halus.

Alat yang bisa dipakai:

Contoh konversi dengan baris perintah:

cwebp -q 80 foto.jpg -o foto.webp

5. Lazy load untuk gambar di bawah layar

Lazy loading menunda pemuatan gambar sampai pengunjung menggulir mendekatinya. Browser modern mendukungnya secara bawaan:

<img src="/img/galeri-5.webp" loading="lazy" width="600" height="400" alt="...">

Namun ada satu aturan penting: jangan lazy load gambar yang terlihat di layar pertama, terutama gambar terbesar yang menjadi elemen LCP. Lazy load membuat browser menunda gambar itu, sehingga LCP justru melambat. Sebaliknya, beri gambar utama prioritas tinggi:

<img src="/img/hero.webp" fetchpriority="high" width="1200" height="630" alt="...">

Jika gambar utama dipasang sebagai background CSS, browser baru menemukannya setelah CSS diunduh. Lebih baik gunakan elemen <img>, atau tambahkan <link rel="preload" as="image" href="..."> di <head>.

6. Selalu tulis width dan height

Tanpa ukuran, browser tidak tahu berapa ruang yang dibutuhkan gambar sebelum gambar diunduh. Akibatnya, teks di bawahnya bergeser saat gambar muncul, dan nilai CLS naik. Tuliskan width dan height sesuai rasio asli gambar. Dengan CSS max-width:100%; height:auto; gambar tetap responsif dan rasio tetap terjaga.

7. Hati-hati dengan slider dan galeri

Slider di bagian atas halaman sering memuat banyak gambar besar sekaligus dan menunggu JavaScript sebelum menampilkan gambar pertama. Jika memungkinkan, ganti slider dengan satu gambar statis yang kuat. Jika tetap memakai slider, pastikan hanya gambar pertama yang dimuat segera, sedangkan sisanya ditunda.

8. Gunakan CDN dan cache browser

Gambar jarang berubah, sehingga cocok disimpan lama di cache browser dan CDN. Atur header Cache-Control dengan masa simpan panjang, misalnya satu tahun untuk file yang namanya berubah setiap kali isinya diganti. Lihat Caching & CDN.

9. Video dan GIF animasi

GIF animasi sangat besar. Untuk animasi pendek, gunakan video MP4 atau WebM dengan atribut autoplay muted loop playsinline, yang biasanya jauh lebih kecil. Untuk embed YouTube, gunakan gambar thumbnail yang baru diganti dengan pemutar saat diklik.

Daftar periksa singkat

  1. Ukuran gambar tidak lebih besar dari ukuran tampil.
  2. Format WebP atau AVIF dengan kualitas wajar.
  3. srcset untuk berbagai ukuran layar.
  4. loading="lazy" hanya untuk gambar di bawah layar pertama.
  5. fetchpriority="high" untuk gambar LCP.
  6. width dan height pada semua gambar.
  7. Cache browser jangka panjang.
  8. Teks alternatif (alt) yang deskriptif untuk aksesibilitas dan SEO.

Setelah menerapkannya, uji ulang halaman Anda di webmaster.my.id dan perhatikan perubahan LCP, Speed Index, serta total ukuran halaman.

Contoh perhitungan sederhana

Sebuah halaman menampilkan foto banner berukuran 4.000 × 2.250 piksel langsung dari kamera, dengan ukuran file beberapa megabita. Di layar ponsel, banner itu hanya tampil selebar sekitar 400 piksel CSS, atau sekitar 1.000–1.200 piksel fisik pada layar berkerapatan tinggi. Artinya sebagian besar piksel yang diunduh tidak pernah terlihat. Dengan memperkecil gambar ke 1.200 piksel, mengubahnya ke WebP dengan kualitas sekitar 80, dan menyediakan versi 600 piksel lewat srcset, ukuran file biasanya turun menjadi puluhan hingga ratusan kilobita tanpa perbedaan kualitas yang terlihat.

Contoh kode gambar utama yang baik:

<img src="/img/banner-1200.webp"
     srcset="/img/banner-600.webp 600w, /img/banner-1200.webp 1200w"
     sizes="(max-width: 800px) 100vw, 800px"
     width="1200" height="675" fetchpriority="high"
     alt="Deskripsi singkat isi gambar">

Checklist lengkap sebelum publikasi

Kesalahan umum

Pertanyaan yang sering diajukan

Lebih baik WebP atau AVIF?

AVIF umumnya menghasilkan file lebih kecil pada kualitas yang mirip, tetapi proses encoding-nya lebih lambat. WebP didukung luas dan lebih mudah diterapkan. Banyak situs memakai keduanya dengan elemen picture, atau cukup WebP saja.

Apakah lazy load buruk untuk SEO?

Tidak, selama memakai atribut bawaan loading="lazy" atau cara yang tetap menampilkan gambar di HTML. Googlebot bisa memuat gambar lazy load bawaan browser.

Berapa ukuran file gambar yang ideal?

Tidak ada angka baku. Patokan praktisnya, gambar utama sebaiknya sekecil mungkin tanpa penurunan kualitas yang terlihat. Untuk thumbnail, puluhan kilobita biasanya sudah cukup.

Apakah perlu plugin untuk mengonversi ke WebP?

Di WordPress, plugin atau fitur hosting memudahkan konversi otomatis. Untuk situs statis, Anda bisa memakai alat seperti Squoosh atau perintah cwebp sebelum mengunggah.

Apakah gambar latar dari CSS juga perlu dioptimalkan?

Ya. Gambar latar yang dipasang lewat CSS tetap diunduh browser dan bisa menjadi elemen LCP. Kecilkan ukurannya, gunakan format modern, dan pertimbangkan memakai elemen img biasa untuk gambar paling atas agar browser menemukannya lebih cepat. Lazy load bawaan juga tidak berlaku untuk gambar latar CSS.

Bagaimana memilih teks alt yang baik?

Jelaskan isi gambar secara singkat seperti Anda menceritakannya kepada orang yang tidak bisa melihatnya. Untuk gambar dekoratif, gunakan alt kosong agar pembaca layar melewatinya.

Uji website Anda sekarang

Cek performa, Core Web Vitals, SEO, dan header keamanan website Anda secara gratis dalam sekitar satu menit.

Uji website Anda sekarang

Panduan terkait

Lihat semua panduan →