Optymalizacja obrazów na stronie – formaty WebP, AVIF i lazy loading w praktyce
Wróć do bloga
Strony Internetowe 11 kwietnia 2026 9 min

Optymalizacja obrazów na stronie – formaty WebP, AVIF i lazy loading w praktyce

Grzegorz Kalmus

Grzegorz Kalmus

Autor

Optymalizacja obrazów to jeden z najważniejszych kroków w poprawie wydajności strony internetowej. Według danych HTTP Archive, obrazy stanowią średnio ponad 50% wagi typowej strony WWW – w 2024 roku mediana wagi strony przekroczyła 2,3 MB, z czego obrazy odpowiadają za ok. 1,2 MB. Optymalizacja obrazów pozwala drastycznie skrócić czas ładowania, poprawić Core Web Vitals i lepiej pozycjonować się w Google. W tym artykule znajdziesz praktyczny przewodnik po nowoczesnych formatach, technikach responsywności i narzędziach, które warto wdrożyć na każdej stronie internetowej.

Dlaczego rozmiar obrazów ma tak duże znaczenie?

Każdy bajt przesyłany przez sieć kosztuje – czas użytkownika, jego pakiet danych i Twoją pozycję w Google. Wyszukiwarka uwzględnia szybkość ładowania strony jako czynnik rankingowy, a wskaźnik Largest Contentful Paint (LCP) – mierzący czas do wyświetlenia największego elementu na ekranie – jest zazwyczaj zdominowany właśnie przez obrazy.

Badania Google pokazują, że 53% użytkowników mobilnych opuszcza stronę, jeśli ładuje się dłużej niż 3 sekundy. Niezoptymalizowane obrazy są w większości przypadków głównym winowajcą powolnych stron. Dlatego optymalizacja obrazów powinna być priorytetem przy tworzeniu stron internetowych oraz podczas prac nad istniejącymi serwisami.

Formaty obrazów – JPEG, PNG, WebP i AVIF

Wybór właściwego formatu to fundament optymalizacji. Każdy format ma swoje zastosowania i kompromisy między jakością a rozmiarem pliku.

JPEG – stary, ale ciągle przydatny

Format JPEG (Joint Photographic Experts Group) dominował przez dekady i nadal jest szeroko obsługiwany. Świetnie sprawdza się do fotografii i obrazów z gradientami. Główna wada to kompresja stratna oraz brak wsparcia dla przezroczystości (kanał alfa). Przy jakości 80-85% JPEG oferuje dobry balans między rozmiarem a wizualną jakością.

PNG – przezroczystość i grafy

PNG (Portable Network Graphics) używa kompresji bezstratnej i obsługuje przezroczystość. Idealny do logotypów, ikon i grafik z ostrymi krawędziami. Dla fotografii pliki PNG są jednak znacznie większe niż JPEG – dlatego nie należy używać PNG tam, gdzie wystarczy JPEG lub WebP.

WebP – nowoczesny standard

Format WebP opracowany przez Google oferuje kompresję zarówno stratną, jak i bezstratną. Według dokumentacji Google web.dev, pliki WebP są średnio:

  • 25-35% mniejsze niż porównywalne pliki JPEG przy tej samej jakości wizualnej
  • 26% mniejsze niż pliki PNG (wersja bezstratna)
  • Obsługiwane przez wszystkie nowoczesne przeglądarki (Chrome, Firefox, Safari od wersji 14, Edge)

WebP to dziś de facto standard dla stron internetowych i powinien być preferowanym formatem przy tworzeniu nowych projektów.

AVIF – przyszłość optymalizacji obrazów

Format AVIF (AV1 Image File Format) to najnowszy standard kompresji obrazów, oparty na kodeку wideo AV1. Oferuje jeszcze lepszą kompresję niż WebP – pliki AVIF są zazwyczaj o 20-50% mniejsze niż WebP przy porównywalnej jakości. Obsługa AVIF w przeglądarkach dynamicznie rośnie – Chrome (od wersji 85), Firefox (od wersji 93) i Safari (od wersji 16.4) już go wspierają.

Jedyna istotna wada AVIF to dłuższy czas kodowania – generowanie obrazów AVIF jest wolniejsze niż WebP, co ma znaczenie przy dużej liczbie obrazów na serwerze.

FormatKompresjaPrzezroczystośćObsługa przeglądarekNajlepsze zastosowanie
JPEGStratnaNieWszystkieFotografie
PNGBezstratnaTakWszystkieLogotypy, ikony, grafy
WebPObieTak99%+Universalny zamiennik JPEG/PNG
AVIFObieTak~95%Maksymalna kompresja

Responsive images – srcset i sizes

Wyświetlanie tego samego obrazu w rozdzielczości 2000px na telefonie z ekranem 400px to marnotrawstwo danych użytkownika. Atrybut srcset pozwala przeglądarce wybrać odpowiedni rozmiar obrazu na podstawie rozmiaru ekranu i gęstości pikseli.

<img
  src="obraz-800.jpg"
  srcset="obraz-400.jpg 400w,
          obraz-800.jpg 800w,
          obraz-1200.jpg 1200w,
          obraz-2000.jpg 2000w"
  sizes="(max-width: 600px) 100vw,
         (max-width: 1200px) 50vw,
         33vw"
  alt="Opis obrazu"
  loading="lazy"
  width="800"
  height="600"
/>

Atrybut sizes informuje przeglądarkę, ile miejsca na ekranie zajmie obraz przy danym rozmiarze viewportu – dzięki temu może wybrać optymalną wersję zanim jeszcze pobierze CSS. Pełna dokumentacja atrybutów srcset i sizes dostępna jest na MDN Web Docs.

Lazy loading – ładuj tylko to, co widzi użytkownik

Lazy loading to technika polegająca na opóźnieniu ładowania obrazów do momentu, gdy użytkownik przewinie stronę do miejsca, w którym się znajdują. Dzięki temu przeglądarka skupia zasoby na zawartości widocznej „above the fold”, co bezpośrednio przekłada się na lepszy LCP i szybsze pierwsze wyświetlenie strony.

Natywny lazy loading

Nowoczesne przeglądarki obsługują natywny lazy loading za pomocą prostego atrybutu HTML:

<img src="obraz.jpg" loading="lazy" alt="Opis" width="800" height="600" />

Atrybut loading="lazy" jest obsługiwany przez Chrome, Firefox, Edge i Safari. Ważne: nie stosuj lazy loading do obrazów above the fold (widocznych bez przewijania) – to spowolni LCP. Dla głównego obrazu nagłówkowego użyj loading="eager" lub pomiń atrybut.

Intersection Observer API

Dla większej kontroli można użyć JavaScript API Intersection Observer, które pozwala wykryć moment, gdy element wchodzi w obszar widoczności:

const images = document.querySelectorAll('img[data-src]');

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      const img = entry.target;
      img.src = img.dataset.src;
      observer.unobserve(img);
    }
  });
}, { rootMargin: '200px' });

images.forEach(img => observer.observe(img));

Parametr rootMargin: '200px' powoduje, że obraz zaczyna się ładować 200px przed wejściem do viewportu – eliminuje to efekt „skakania” zawartości podczas przewijania.

Element picture i art direction

Element <picture> daje pełną kontrolę nad tym, który obraz zostanie załadowany przy danym rozmiarze ekranu lub obsługiwanym formacie. To idealne rozwiązanie do serwowania AVIF/WebP z fallbackiem do JPEG:

<picture>
  <source type="image/avif" srcset="obraz.avif" />
  <source type="image/webp" srcset="obraz.webp" />
  <img src="obraz.jpg" alt="Opis obrazu" width="800" height="600" loading="lazy" />
</picture>

Przeglądarka wybierze pierwszy obsługiwany format – jeśli obsługuje AVIF, użyje go; jeśli nie, spróbuje WebP; w ostateczności załaduje JPEG. To eleganckie podejście zapewniające maksymalną optymalizację przy pełnej kompatybilności wstecznej.

Image CDN – automatyczna optymalizacja w chmurze

Image CDN (Content Delivery Network) to usługi, które automatycznie optymalizują, skalują i serwują obrazy w optymalnym formacie dla danej przeglądarki. Popularne rozwiązania to:

  • Cloudinary – kompleksowa platforma z bogatym API do transformacji obrazów (kadrowanie, filtry, nakładanie tekstu). Bezpłatny plan do 25 GB/miesiąc.
  • Imgix – CDN z ponad 100 operacjami na obrazach przez URL. Popularne wśród dużych serwisów e-commerce.
  • Bunny.net Image Optimizer – przystępna cenowo opcja z automatyczną konwersją do WebP/AVIF.
  • Cloudflare Images – prosty i tani serwis CDN zintegrowany z ekosystemem Cloudflare.

Przykład URL Cloudinary automatycznie konwertujący do WebP i skalujący do 800px szerokości:

https://res.cloudinary.com/demo/image/upload/f_auto,q_auto,w_800/sample.jpg

Optymalizacja obrazów w Next.js

Framework Next.js ma wbudowany komponent Image, który automatycznie obsługuje wiele aspektów optymalizacji. Przy projektowaniu stron w Next.js warto zawsze korzystać z tego komponentu zamiast standardowego tagu HTML <img>.

import Image from 'next/image';

export default function HeroSection() {
  return (
    <Image
      src="/images/hero.jpg"
      alt="Strona główna Studio Kalmus"
      width={1200}
      height={600}
      priority // dla obrazów above the fold
      sizes="(max-width: 768px) 100vw, 50vw"
    />
  );
}

Komponent Next.js Image automatycznie:

  • Konwertuje obrazy do formatu WebP (lub AVIF przy odpowiedniej konfiguracji)
  • Generuje odpowiednie rozmiary dla różnych rozdzielczości ekranu
  • Dodaje lazy loading dla obrazów poza obszarem widoczności
  • Zapobiega Cumulative Layout Shift (CLS) przez rezerwację miejsca
  • Ładuje obrazy z wbudowanego CDN przy deploymencie na Vercel

Wtyczki WordPress do optymalizacji obrazów

Jeśli Twoja strona działa na WordPressie, masz do dyspozycji kilka sprawdzonych wtyczek do automatycznej optymalizacji obrazów:

  • ShortPixel – kompresja JPEG, PNG, WebP i AVIF. Bezpłatny plan 100 obrazów/miesiąc. Obsługuje bulk optimization całej biblioteki mediów.
  • Smush – popularna wtyczka od WPMU Dev. Bezpłatna wersja obsługuje kompresję bezstratną i lazy loading. Wersja Pro dodaje WebP i serwowanie przez CDN.
  • Imagify – wtyczka od twórców WP Rocket. Trzy poziomy kompresji: Normal, Aggressive, Ultra. Automatyczna konwersja do WebP.
  • EWWW Image Optimizer – open source, kompresja lokalna bez wysyłania obrazów na zewnętrzne serwery. Dobry wybór dla dbających o prywatność danych.

SEO obrazów – alt text, nazwy plików i image sitemap

Optymalizacja obrazów to nie tylko rozmiar pliku – ma też aspekt SEO. Oto kluczowe dobre praktyki:

Atrybut alt

Tekst alternatywny (alt) opisuje zawartość obrazu robotom Google i użytkownikom z czytnikami ekranowymi. Dobry alt text:

  • Opisuje konkretnie to, co widać na obrazie
  • Zawiera naturalnie słowo kluczowe, gdy jest to uzasadnione
  • Ma długość 5-15 słów – nie jest listą słów kluczowych
  • Dla ikon dekoracyjnych: alt="" (pusty, ale obecny)

Nazwy plików

Plik o nazwie DSC_0042.jpg nic Google nie mówi. Zamiast tego używaj opisowych nazw z myślnikami: optymalizacja-obrazow-strona-internetowa.jpg. To drobny sygnał SEO, który nic nie kosztuje.

Image sitemap

Image sitemap pomaga Google odkrywać i indeksować obrazy na Twojej stronie. W WordPressie Yoast SEO automatycznie generuje sitemap z obrazami. Warto sprawdzić w Google Search Console, czy obrazy są poprawnie indeksowane w raporcie „Obrazy” w sekcji Indeksowanie.

Narzędzia do optymalizacji obrazów

Niezależnie od CMS czy frameworka, te narzędzia ułatwią optymalizację:

  • Squoosh (squoosh.app) – darmowe narzędzie Google do kompresji i konwersji obrazów bezpośrednio w przeglądarce. Obsługuje WebP i AVIF.
  • TinyPNG / TinyJPG – popularne narzędzie online do kompresji stratnej PNG i JPEG. API dostępne za darmo do 500 obrazów/miesiąc.
  • ImageOptim (macOS) – bezpłatna aplikacja desktopowa do kompresji bezstratnej.
  • sharp – biblioteka Node.js do serverside processing obrazów. Używana wewnętrznie przez Next.js Image.
  • cwebp / avifenc – narzędzia CLI do konwersji w pipeline CI/CD.

Wymiary i aspect ratio – zapobieganie CLS

Jednym z częstych błędów jest pomijanie atrybutów width i height w tagu <img>. Bez nich przeglądarka nie zna wymiarów obrazu przed jego załadowaniem, co powoduje przesunięcie układu strony podczas ładowania – efekt zwany Cumulative Layout Shift (CLS).

Zawsze podawaj width i height – przeglądarka użyje tych wartości do rezerwacji odpowiedniej przestrzeni zanim obraz zostanie pobrany:

<img src="zdjecie.webp" alt="Opis" width="1200" height="800" loading="lazy" />

Praktyczna lista kontrolna optymalizacji obrazów

Podsumowując, oto kompletna lista rzeczy do sprawdzenia przy optymalizacji obrazów na stronie internetowej:

  1. Używaj WebP jako domyślnego formatu, AVIF jako opcji premium z fallbackiem
  2. Wdroz responsywne obrazy z srcset i sizes
  3. Dodaj loading="lazy" do wszystkich obrazów poza obszarem first screen
  4. Zawsze podawaj atrybuty width i height
  5. Każdy obraz ma unikalny, opisowy atrybut alt
  6. Nazwy plików są opisowe i zawierają myślniki zamiast spacji czy podkreślników
  7. Główny obraz (hero/LCP) ma loading="eager" lub fetchpriority="high"
  8. Sprawdz rozmiary obrazów w PageSpeed Insights lub Lighthouse
  9. Skonfiguruj wtyczkę lub CDN do automatycznej optymalizacji nowych obrazów
  10. Weryfikuj indeksowanie obrazów w Google Search Console

Podsumowanie

Optymalizacja obrazów to jedno z największych „quick wins” w poprawie wydajności strony. Przejście z JPEG na WebP, dodanie srcset i lazy loadingu może skrócić czas ładowania o 30-60% bez żadnych kompromisów w zakresie jakości wizualnej. Wdrożenie tych technik poprawia doświadczenie użytkownika, obniża współczynnik odrzuceń i bezpośrednio wpływa na pozycje w wynikach wyszukiwania.

Potrzebujesz pomocy przy wdrożeniu optymalizacji obrazów lub chcesz, żebyśmy zbudowali dla Ciebie szybką, zoptymalizowaną stronę? Skontaktuj się z nami – chętnie pomożemy.

Studio Kalmus

Potrzebujesz profesjonalnej strony?

Tworzymy nowoczesne strony internetowe dla firm. Bezpłatna wycena w 24h.

Szukasz hostingu? SeoHost z rabatem

Kod studiokalmus55 daje 40% rabatu na aktywację serwera. Szybkie NVMe, SSL i wsparcie 24/7.

Sprawdź Ofertę
Digital Workspace Background

[ 09 / Kontakt ]

Czekamyna
TwojąWiadomość

Teraz albo nigdy! Nie odkładaj tego na później. Działaj, zanim stracisz swoją przewagę!

W dni robocze odpisujemy w max 60 minut.

Optymalizacja obrazów na stronie - formaty WebP, AVIF i lazy loading w praktyce - Studio Kalmus | Studio Kalmus