Optimasi Gambar

Cara mengoptimalkan gambar untuk SEO dan performa dengan format modern seperti WebP dan AVIF, kompresi, dimensi yang tepat, dan lazy loading guna memperbaiki Core Web Vitals dan LCP.

Pertama kali diterbitkan: 2 Jul 2026 · Terakhir diperbarui: 11 Agu 2026 · Advanced
Bahasa

Optimasi gambar adalah disiplin kecepatan, bukan pengungkit peringkat. Format WebP dan AVIF, kompresi, serta ukuran yang tepat digunakan untuk mengurangi byte dan memperbaiki LCP—format itu sendiri tidak memberi kenaikan peringkat langsung, sebagaimana dikonfirmasi Mueller dalam tiga kesempatan berbeda. Aturan paling bernilai: jangan pernah menerapkan lazy loading pada gambar LCP, yang biasanya berupa hero, karena tindakan itu menunda metrik yang ingin diperbaiki. Gunakan loading="eager" plus fetchpriority="high" untuk gambar tersebut. loading="lazy" native ditujukan bagi gambar di luar viewport awal, bukan garis “di bawah fold” yang tetap. Tidak ada kualitas kompresi universal; uji setiap gambar. Ukuran yang benar adalah ukuran kontainer hasil render × device pixel ratio, dan ukuran kontainer berubah mengikuti tata letak responsif sehingga Anda perlu menyediakan rentang srcset. Semua ini tidak menjamin skor Core Web Vitals yang lulus, perubahan peringkat, atau tambahan traffic—ukur LCP dan CLS sebelum dan sesudah. Artikel ini adalah panduan penerapan yang melengkapi hub Image SEO, yang membahas apa dan mengapa.

TL;DR — Optimasi gambar adalah disiplin kecepatan halaman/Core Web Vitals, bukan pengungkit peringkat langsung. Pemilihan format (WebP, AVIF) mengurangi byte, tetapi tidak memberi dorongan SEO—Mueller telah menyatakannya dalam tiga kesempatan berbeda. Pertimbangkan pula transparansi, animasi, dan dukungan browser saat ini, bukan hanya rasio kompresi. Aturan paling bernilai: jangan pernah menerapkan lazy loading pada gambar LCP (biasanya gambar hero), karena tindakan itu menunda metrik yang sedang Anda optimalkan. Gunakan loading="eager" + fetchpriority="high", tetapi petunjuk prioritas hanya membantu hambatan penemuan atau waktu pengambilan sumber daya, bukan setiap masalah LCP. loading="lazy" native ditujukan untuk gambar di luar viewport awal, bukan garis piksel “di bawah fold” yang tetap. Tidak ada kualitas kompresi yang berlaku universal—uji setiap jenis gambar. Dimensi yang benar = ukuran kontainer hasil render × device pixel ratio. Karena ukuran kontainer ikut berubah dalam tata letak responsif, sediakan rentang srcset/sizes (nilai sizes yang salah diam-diam mengunduh gambar terlalu besar) beserta fallback <picture>. Gambar merupakan elemen LCP yang paling umum di web; itulah sebabnya artikel ini juga masuk ke Web Performance. Namun, semua ini tidak menjamin skor Core Web Vitals yang lulus, perubahan peringkat, atau tambahan traffic; ukur sebelum dan sesudah.

Sasaran optimasi gambar (luruskan mitos sejak awal)

Mari singkirkan mitos terbesar lebih dahulu: format gambar adalah pengungkit kecepatan, bukan pengungkit peringkat. Mengonversi gambar ke WebP atau AVIF tidak memberi kenaikan peringkat. Hasilnya adalah file yang lebih kecil, yang menghasilkan halaman lebih cepat, lalu membantu Core Web Vitals—dan bagian itulah yang digunakan sistem penelusuran. Rantai sebab-akibatnya nyata tetapi tidak langsung; banyak panduan pesaing keliru ketika meringkasnya menjadi “format generasi baru mendapat peringkat lebih baik”.

Dokumentasi Google sangat lugas tentang mengapa gambar penting bagi kecepatan: gambar “often the largest contributor to overall page size, which can make pages slow and expensive to load,” (terjemahan) “sering kali menjadi penyumbang terbesar terhadap ukuran halaman secara keseluruhan, sehingga halaman bisa lambat dan mahal untuk dimuat,” dan sarannya adalah “apply the latest image optimization and responsive image techniques to provide a high quality and fast user experience” (terjemahan) “terapkan teknik optimasi gambar dan gambar responsif terbaru untuk memberikan pengalaman pengguna yang cepat dan berkualitas tinggi” (Google Search Central — Gambar). Perhatikan bingkainya: pengalaman pengguna yang cepat, bukan hadiah peringkat untuk format file.

Evidence for this claim Images are often a major contributor to page weight, and Google recommends responsive image and optimization techniques for a fast user experience. Scope: Google Search image guidance about performance; no claim that a particular format directly improves rankings. Confidence: high · Verified: Google Search Central: Google Images SEO

Untuk pembahasan apa dan mengapa Image SEO secara menyeluruh—teks alt, nama file, sitemap gambar, data terstruktur, dan peringkat penelusuran gambar—lihat hub utama Image SEO. Artikel ini adalah rujukan cara menerapkannya: format, kompresi, ukuran, dan strategi pemuatan.

Mulai dari aturan yang paling sering dilanggar: jangan pernah lazy-load gambar LCP

Jika Anda hanya mengingat satu hal dari halaman ini, ingatlah ini. Elemen Largest Contentful Paint (LCP)—elemen terbesar yang digambar di viewport saat pemuatan—adalah “either an image or a web font,” (terjemahan) “gambar atau font web,” menurut web.dev (Optimalkan LCP). Di sebagian besar halaman, elemen itu berupa gambar: hero, gambar unggulan, atau foto produk. web.dev menyampaikan aturannya dengan sangat tegas:

“Never lazy-load your LCP image, as that will always lead to unnecessary resource load delay, and will have a negative impact on LCP.” (terjemahan) “Jangan pernah menerapkan lazy loading pada gambar LCP, karena hal itu akan selalu menimbulkan penundaan pemuatan sumber daya yang tidak perlu dan berdampak buruk pada LCP.”

Evidence for this claim Lazy-loading an LCP image adds resource load delay; web.dev recommends loading it eagerly and considering high fetch priority. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

Inilah nuansa yang hilang dari kebanyakan saran “cukup gunakan lazy loading”. Lazy loading memang sangat berguna—untuk gambar yang berada di bawah area layar awal. Jika diterapkan pada gambar LCP, Anda justru menunda metrik yang ingin diperbaiki. Panduan lazy loading web.dev menyampaikan hal yang sama dari arah sebaliknya: “Don’t lazy-load images that are likely to be in-viewport when the page loads, especially LCP images” (terjemahan) “Jangan menerapkan lazy loading pada gambar yang kemungkinan berada di dalam viewport saat halaman dimuat, terutama gambar LCP” (Lazy loading tingkat browser).

Saya mengemukakan argumen yang sama dalam artikel LCP saya di Ahrefs: elemen terbesar “is usually going to be a featured image or maybe the <h1> tag,” (terjemahan) “biasanya berupa gambar unggulan atau mungkin tag <h1>,” dan perbaikannya mengikuti fakta tersebut. “If you don’t need the image, the most impactful solution is to simply get rid of it. If you must have the image, I suggest optimizing the size and quality to keep it as small as possible.” (terjemahan) “Jika Anda tidak memerlukan gambar itu, solusi yang paling berdampak adalah menghapusnya. Jika gambar tersebut harus ada, saya menyarankan agar ukuran dan kualitasnya dioptimalkan supaya sekecil mungkin.” Anda sebaiknya “lazy load any images that you don’t need immediately” (terjemahan) “menerapkan lazy loading pada gambar yang tidak segera diperlukan”—tetapi sisi sebaliknya adalah aturan tegas yang sengaja saya tulis dengan huruf kapital: “Do not lazy load images above the fold!” (terjemahan) “Jangan menerapkan lazy loading pada gambar di atas fold!”

fetchpriority="high" pada gambar LCP

Tidak menerapkan lazy loading pada hero memang perlu, tetapi belum cukup. Agar gambar LCP dimuat sedini mungkin, beri browser petunjuk tentang prioritasnya. Menurut web.dev:

“You can hint to the browser as to which resources are most important using the fetchpriority attribute… It’s a good idea to set fetchpriority=\"high\" on an <img> element if you think it’s likely to be your page’s LCP element.” (terjemahan) “Anda dapat memberi petunjuk kepada browser tentang sumber daya yang paling penting dengan atribut fetchpriority… Sebaiknya tetapkan fetchpriority="high" pada elemen <img> jika menurut Anda elemen itu kemungkinan menjadi elemen LCP halaman.”

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

Dalam tulisan saya tentang LCP, fetchpriority="high" dijelaskan dengan cara yang sama—atribut ini “can be used on <img> or <link> tags and tells browsers to get the image early” (terjemahan) “dapat digunakan pada tag <img> atau <link> dan meminta browser mengambil gambar lebih awal”—dan saya memasangkannya dengan Early Hints (respons 103) sebagai cara pelengkap untuk memulai pengambilan sebelum HTML utama tiba. Jadi, resep LCP adalah: eager loading + fetchpriority="high" (+ Early Hints jika stack Anda mendukungnya). Semua gambar lain di halaman dapat menggunakan lazy loading.

Perlakukan fetchpriority dan preload sebagai alat untuk hambatan tertentu, bukan perbaikan yang terjamin. Keduanya membantu ketika gambar LCP terlambat ditemukan atau diambil; keduanya tidak mengatasi respons server yang lambat, sumber daya pemblokir render yang berada sebelum gambar, atau file yang benar-benar terlalu besar. Pastikan hambatan yang sebenarnya Anda hadapi (PageSpeed Insights atau Lighthouse memecah LCP menjadi beberapa subbagian) sebelum menganggap petunjuk prioritas saja akan mengubah angkanya.

loading="lazy" native—gratis, sederhana, dan tepat untuk gambar di bawah area awal

Untuk setiap gambar yang tidak berada di viewport awal, lazy loading native adalah peningkatan performa yang paling mudah. web.dev menyatakan: “You can use the loading attribute to lazy-load images without the need to write custom lazy-loading code or use a separate JavaScript library.” (terjemahan) “Anda dapat menggunakan atribut loading untuk menerapkan lazy loading pada gambar tanpa perlu menulis kode lazy loading khusus atau memakai pustaka JavaScript terpisah.”

<img src="/below-the-fold.webp" alt="…" loading="lazy" width="800" height="600">

Dua hal menjaga penerapan ini tetap aman:

  • Dasarkan keputusan pada viewport awal, bukan garis “di bawah fold” yang tetap. “Fold” bukan jumlah piksel yang tetap; posisinya berubah mengikuti ukuran viewport dan tata letak. Uji yang sebenarnya adalah apakah gambar kemungkinan terlihat saat halaman pertama kali digambar. Semua gambar yang terlihat—terutama gambar LCP—menggunakan loading="eager" (nilai baku), bukan lazy.
  • Utamakan atribut native daripada trik JavaScript. Lazy loader JavaScript yang menyembunyikan URL sebenarnya di data-src dan tidak pernah mengekspos src berisiko membuat gambar sama sekali tidak diindeks. loading="lazy" native (atau IntersectionObserver yang bersih) menjaga src tetap terlihat oleh crawler. Hub utama Image SEO membahas peringatan pengindeksan ini secara lengkap.

Format modern: WebP vs. AVIF vs. JPEG/PNG

Mitos paling perlu diluruskan ketika membahas format. Karena itu, mari kita nyatakan dengan tepat apa manfaat setiap format: byte yang lebih sedikit, bukan peringkat yang lebih tinggi.

  • WebP“often has better compression than JPEG, PNG, or GIF, offering both lossy and lossless compression” (terjemahan) “sering memiliki kompresi yang lebih baik daripada JPEG, PNG, atau GIF, serta menawarkan kompresi lossy dan lossless” (web.dev—Performa gambar). Ukurannya kira-kira 25–35% lebih kecil daripada JPEG dengan dukungan browser yang hampir universal. Ini adalah pilihan baku yang aman untuk foto saat ini.
  • AVIF“supports both lossy and lossless compression, and tests have shown greater than 50% savings when compared to JPEG in some cases.” (terjemahan) “mendukung kompresi lossy dan lossless, dan pengujian menunjukkan penghematan lebih dari 50% dibandingkan JPEG dalam beberapa kasus.” Kompresinya termasuk yang terbaik, tetapi dukungannya sedikit kurang universal; pasangkan dengan fallback WebP atau JPEG.
  • JPEG — fallback universal untuk foto.
  • PNG — gunakan saat Anda memerlukan transparansi atau grafis dengan tepi yang tajam.
  • SVG — untuk logo dan ikon: berbasis vektor, dapat diskalakan tanpa batas, dan berukuran kecil.

Format yang dipilih juga bergantung pada kebutuhan gambar, bukan sekadar format mana yang paling kuat mengompresi. Transparansi, animasi, serta konsistensi dukungan browser atau alat terhadap kombinasi fitur tertentu ikut menentukan pilihan di samping penghematan ukuran mentah di atas. Periksa dukungan terkini untuk fitur yang benar-benar Anda perlukan—terutama animasi—sebelum menetapkan satu format sebagai pilihan baku.

Google Penelusuran mendukung “BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF” (terjemahan) “BMP, GIF, JPEG, PNG, WebP, SVG, dan AVIF” yang dirujuk melalui src pada <img>. Sajikan format modern dengan fallback yang anggun menggunakan <picture>:

<picture>
  <source srcset="/photo.avif" type="image/avif">
  <source srcset="/photo.webp" type="image/webp">
  <img src="/photo.jpg" alt="…" width="1200" height="800" loading="lazy">
</picture>

<img src> di bagian paling bawah adalah jaring pengaman Anda—browser lama dan crawler akan menggunakan fallback tersebut, dan URL itulah yang sebenarnya diindeks Google.

Apakah format memengaruhi peringkat? (Tidak—Mueller telah menyatakannya dalam tiga cara)

Inilah satu benang pelurusan mitos yang perlu dibawa sepanjang topik ini. Tiga pernyataan John Mueller pada waktu yang berbeda menghasilkan kesimpulan yang sama: format memengaruhi mekanisme crawling/pengindeksan dan bobot halaman, tetapi tidak pernah memengaruhi peringkat secara langsung:

  1. AVIF tidak memberi dorongan SEO. Setelah Google menambahkan dukungan AVIF native, Mueller mengonfirmasi bahwa penggunaan AVIF dibandingkan format lain yang didukung tidak memberi “SEO boost” (terjemahan) “dorongan SEO” (liputan SE Roundtable).
  2. WebP “baik-baik saja”. “WebP images are fine for Image Search” (terjemahan) “Gambar WebP baik-baik saja untuk Penelusuran Gambar”—perhatikan bahwa ia mengatakan “baik-baik saja”, bukan “lebih baik” (liputan SE Roundtable).
  3. Keanehan pengindeksan WebP tidak khusus untuk format itu. Ketika file WebP muncul sebagai “Crawled – currently not indexed” (terjemahan) “Di-crawl—saat ini tidak diindeks” di GSC, poin Mueller adalah file gambar tidak diindeks sebagai halaman HTML, dan menurutnya fenomena tersebut sama sekali tidak terbatas pada WebP (liputan SEJ).
Pernyataan perwakilan Google ini dikutip secara verbatim melalui liputan sekunder (SE Roundtable, Search Engine Journal) atas office hours dan posting media sosial, bukan halaman primer yang dapat ditautkan secara mendalam. Kutipan yang sama dipakai di hub utama Image SEO dan dipertahankan konsisten di sini. Artikel SEJ memparafrasekan/merangkum Mueller, bukan mengutipnya sebagai kutipan blok.

Kompresi dan kualitas: tidak ada pengaturan “tepat” yang universal

Saran buruk yang paling umum dalam panduan gambar adalah satu butir “kompres hingga 80%”. web.dev menegaskan bahwa angka ajaib semacam itu tidak ada:

“When compressing, there isn’t a universal setting suitable for all cases. The recommended approach would be to experiment with different compression levels until you find a good compromise between image quality and file size.” (terjemahan) “Saat mengompresi, tidak ada satu pengaturan universal yang cocok untuk semua kasus. Pendekatan yang disarankan adalah bereksperimen dengan berbagai tingkat kompresi hingga Anda menemukan kompromi yang baik antara kualitas gambar dan ukuran file.”

Secara praktis: uji setiap jenis gambar. Foto dapat menerima kompresi lossy agresif dengan baik; grafis, logo, dan tangkapan layar berisi teks cepat memperlihatkan artefak dan sering memerlukan kompresi lossless atau pengaturan kualitas lebih tinggi. Alih-alih memercayai satu slider, ekspor gambar yang sama pada dua atau tiga tingkat kualitas lalu bandingkan pada ukuran tampilannya. Pilih file terkecil yang secara visual tidak dapat Anda bedakan dari gambar asli. Itu adalah alur kerja nyata, bukan sekadar “masukkan ke TinyPNG lalu berharap”.

Dimensi yang benar: ukuran kontainer × device pixel ratio

Aturannya bukan “buat saja lebih kecil”, melainkan cocokkan ukuran hasil render × device pixel ratio (DPR). Menurut web.dev:

“An image displayed in a 500 pixel by 500 pixel container would be optimally sized at 500 pixels by 500 pixels.” (terjemahan) “Gambar yang ditampilkan dalam kontainer 500 × 500 piksel akan memiliki ukuran optimal 500 × 500 piksel.”

“If the device has a DPR of 2 and the image is displayed in a 500 pixel by 500 pixel container, then a square 1000 pixel image… is now the optimal size.” (terjemahan) “Jika perangkat memiliki DPR 2 dan gambar ditampilkan dalam kontainer 500 × 500 piksel, gambar persegi 1 000 piksel… kini menjadi ukuran yang optimal.”

Jadi, kontainer 500×500 pada layar 2× (kelas Retina) membutuhkan sumber 1 000×1 000. Jika lebih besar, Anda membuang byte tanpa peningkatan yang terlihat; jika lebih kecil, gambar tampak kurang tajam pada layar ber-DPR tinggi. Karena itu, sajikan rentang ukuran dan biarkan browser memilih dengan srcset + sizes:

<img
  src="/photo-800.webp"
  srcset="/photo-400.webp 400w, /photo-800.webp 800w, /photo-1600.webp 1600w"
  sizes="(max-width: 600px) 100vw, 500px"
  alt="…" width="800" height="600" loading="lazy">

Browser membaca lebar kontainer (sizes) dan DPR perangkatnya, lalu memilih kandidat yang tepat dari srcset—versi pengiriman responsif dari perhitungan DPR di atas. Google menyarankan <picture> atau srcset untuk gambar responsif dan meminta Anda “always specify a fallback URL using the src attribute.” (terjemahan) “selalu tentukan URL fallback dengan atribut src.”

Jika sizes salah, tidak ada peringatan. Ketika nilai yang Anda deklarasikan tidak sesuai dengan lebar hasil render gambar—bug yang umum setelah perubahan tata letak atau CSS—browser tidak dapat mengetahuinya dan hanya memilih kandidat berdasarkan angka yang tidak akurat itu. Akibatnya, browser sering mengunduh file yang lebih besar daripada kebutuhan tata letak. Hal ini diam-diam membatalkan hasil optimasi format dan kompresi. Satu-satunya cara andal untuk menemukannya: buka panel Network di DevTools, cari permintaan gambar, lalu bandingkan dimensi file yang dikirim dengan lebar kontainer yang sebenarnya dirender.

Contoh 500×500 di atas hanya ilustrasi, bukan angka untuk di-hard-code di seluruh situs. Gambar hero yang sama dapat dirender dengan lebar berbeda di perangkat seluler dan desktop, sehingga “ukuran kontainer” berubah mengikuti tata letak responsif. Itulah alasan Anda menyediakan rentang srcset, bukan mengekspor satu ukuran “optimal” lalu menganggap pekerjaan selesai.

Mengapa semua ini kembali pada Core Web Vitals

Benang merah yang menghubungkan semua teknik di atas adalah LCP. Gambar merupakan elemen LCP yang paling umum di web, dan LCP adalah satu dari tiga Core Web Vitals. Target Google: “LCP should occur within 2.5 seconds” (terjemahan) “LCP harus terjadi dalam 2,5 detik” pada persentil ke-75 pemuatan halaman di perangkat seluler dan desktop (web.dev—Vitals). Core Web Vitals “apply to all web pages, should be measured by all site owners, and will be surfaced across all Google tools.” (terjemahan) “berlaku untuk semua halaman web, harus diukur oleh semua pemilik situs, dan akan ditampilkan di seluruh alat Google.”

Jadi, optimasi gambar bukan faktor peringkat tersendiri; optimasi ini adalah kontributor terhadap sinyal pengalaman halaman (Core Web Vitals) yang memang digunakan sistem peringkat. Pembingkaian inilah yang akurat dan menjadi alasan artikel ini berada di cluster Image SEO sekaligus Web Performance. Untuk pembahasan mendalam tentang metriknya, lihat Core Web Vitals dan LCP di Web Performance.

Satu peringatan lain perlu dinyatakan dengan jelas: tidak satu pun perbaikan di halaman ini menjamin hasil. Byte gambar hanyalah salah satu kemungkinan komponen LCP—uraian subbagian LCP dari web.dev juga mencakup waktu respons server dan sumber daya pemblokir render yang mendahului gambar, yang tidak disentuh oleh perubahan format atau kompresi. Dimensi gambar pun hanya satu dari beberapa masukan ke CLS, bukan jaminan skor tertentu. Memperkecil gambar hero dapat menghasilkan peningkatan terukur, tidak berpengaruh, atau nyaris tidak mengubah angka jika hambatan sebenarnya terletak di tempat lain. Optimasi gambar juga tidak menjamin penilaian Core Web Vitals yang lulus, perubahan peringkat, tambahan traffic, peningkatan konversi, atau kutipan dalam penelusuran AI—semuanya bergantung pada jauh lebih banyak hal daripada byte gambar. Perlakukan setiap perbaikan sebagai hipotesis, bukan hasil final: ukur LCP dan CLS sebelum dan sesudah, di lab dan di lapangan, lalu biarkan data tersebut—bukan asumsi bahwa optimasi “berhasil”—menunjukkan apakah ada perubahan.

Kesalahan penerapan yang umum

  • Gambar latar CSS tidak diindeks. Developer terkadang mengganti <img> dengan background-image demi kemudahan tata letak. Google “can find images in the src attribute of <img> element (even when it’s a child of other elements, such as the <picture> element)” (terjemahan) “dapat menemukan gambar dalam atribut src elemen <img> (bahkan ketika elemen itu merupakan turunan elemen lain, seperti elemen <picture>)”, tetapi “doesn’t index CSS images.” (terjemahan) “tidak mengindeks gambar CSS.” Jika ingin gambar muncul di penelusuran gambar, pertahankan dalam <img>. (Masalah ini berdekatan dengan performa, tetapi cukup umum untuk disorot.)
  • Jangan mengganti nama file lama secara massal demi “penyegaran” performa/SEO. Mueller mengatakan sistem Google memerlukan “a lot of time” (terjemahan) “banyak waktu” untuk memproses ulang gambar yang namanya diubah, dan pengaruhnya kecil jika konteks Anda sudah baik—hub utama Image SEO membahasnya secara lengkap.
  • width/height tidak ada. Selalu tetapkan width dan height intrinsik (atau aspect-ratio CSS) agar browser dapat memesan ruang sebelum gambar dimuat. Tindakan ini mengurangi pergeseran tata letak akibat gambar, tetapi hanya satu dari beberapa masukan ke CLS dan bukan jaminan skor tertentu.

Resep singkat

  • Gambar hero/LCP: format modern, ukuran tepat, loading="eager", fetchpriority="high".
  • Semua gambar di bawah area layar awal: loading="lazy".
  • Sajikan WebP/AVIF dengan fallback src pada <picture>.
  • Sesuaikan ukuran dengan kontainer × DPR; kirim rentang srcset beserta sizes.
  • Kompres sesuai jenis gambar—uji 2–3 tingkat kualitas, jangan memercayai satu slider.
  • Selalu tetapkan width/height.

Untuk aspek Image SEO lainnya—teks alt, nama file, sitemap gambar, data terstruktur, dan peringkat penelusuran gambar—kembali ke hub Image SEO.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.