Obrazy odpowiadają zwykle za większość wagi strony. Dobra „polityka obrazów” to zestaw prostych zasad i automatyzacji, które sprawiają, że grafiki są lekkie, ostre na różnych urządzeniach i nie psują wskaźników Core Web Vitals. Ten przewodnik pokazuje, jak w 2025 roku poukładać formaty (AVIF/WEBP/JPEG/PNG/SVG), responsywne źródła (srcset, sizes, picture), priorytety ładowania (fetchpriority) oraz jak unikać „skakania” układu dzięki atrybutom width/height.
Bez zasad w CMS pojawiają się „losowe” pliki: zbyt duże fotki z telefonu, zrzuty ekranu po 3 MB i grafiki wklejane bez rozmiarów. Efekt to wolne ładowanie i gorsze konwersje. Spisana polityka: a) upraszcza pracę redakcji, b) obniża transfer i koszty CDN, c) stabilizuje LCP i CLS, d) ułatwia dostępność (ALT, kontekst, zamienniki).
AVIF daje najlepszą kompresję dla zdjęć i ilustracji z gradientami. Wiele przypadków „dużych zdjęć” warto domyślnie serwować właśnie jako AVIF. WEBP jest „bezpieczną przystanią” — świetny kompromis jakości i wsparcia przeglądarek. JPEG zostaje jako „fallback” dla starszych środowisk lub gdy AVIF/WEBP powodują artefakty w delikatnych przejściach. PNG trzymaj dla grafiki wymagającej przeźroczystości bez strat, ikon pikselowych lub schematów o ostrych krawędziach. SVG wybieraj dla ikon i prostych ilustracji wektorowych — skaluje się bez utraty jakości i jest lekki, o ile nie osadzono w nim bitmap.
Najpraktyczniejszy wzorzec na 2025 rok to: picture z source type="image/avif", potem source type="image/webp", a jako img fallback JPEG/PNG. CMS powinien generować te warianty automatycznie przy wgrywaniu pliku.
Ten sam kadr powinien mieć kilka szerokości (np. 400/800/1200/1600 px). Przeglądarka wybierze właściwą wersję na podstawie rozdzielczości i układu. Dwie najważniejsze zasady: 1) generuj stały zestaw szerokości (np. co 400 px), 2) zawsze podawaj atrybut sizes, który opisuje, jak duży obraz faktycznie będzie w danym układzie. Dzięki temu telefon nie pobierze wersji 1600 px dla małego kafelka.
Jeśli na mobilu obraz powinien być inny (np. ciaśniej wykadrowany portret), użyj picture z mediami (np. source media="(max-width: 640px)"). To nie to samo co srcset — tu możesz zmieniać także kadr lub format, a nie tylko rozdzielczość.
Główną przyczyną „skaczącej” strony (CLS) są obrazy bez rozmiarów. Zawsze dodawaj width i height; przeglądarka policzy proporcje i zarezerwuje miejsce jeszcze przed pobraniem pliku. Jeśli obraz ładuje się później (lazy), układ pozostanie stabilny. W CMS warto automatycznie zapisywać te atrybuty na podstawie metadanych pliku.
Obrazy poniżej pierwszego ekranu ładuj „leniwe” (loading="lazy") i nie zapominaj o decoding="async". Wyjątek: element hero i kluczowe grafiki nad wodą powinny wczytywać się natychmiast. Zbyt agresywny lazy nad wodą psuje LCP. Dodatkowo rozważ lekkie „placeholdery” (np. rozmyty podgląd), ale unikaj ciężkich skryptów do efektów.
Dla najważniejszego obrazu nad wodą ustaw fetchpriority="high". Daje to przeglądarce sygnał, że ma pobrać go wcześniej niż inne zasoby. W praktyce często poprawia LCP bez żadnych „magicznych” optymalizacji. Pamiętaj, by nie nadużywać tej opcji — „high” powinien być jeden, czasem dwa elementy.
Dobry CMS powinien automatycznie tworzyć wersje obrazów: AVIF/WEBP/JPEG w kilku szerokościach oraz profil jakości. Praktyczny punkt startowy: AVIF q≈45–60, WEBP q≈70–80, JPEG q≈70–80. Zasada: priorytet ma perceived quality, a nie „ślepa” liczba. Dla miniaturek obniż bardziej jakość (mniejsze wymiary maskują straty), dla headerów podnieś o 5–10 punktów.
Ustal maksymalny rozmiar uploadu (np. 10 MB) i wymuś automatyczne skalowanie do sensownego maksimum (np. 2560 px szerokości). Nie ma sensu trzymać w CMS zdjęć 6000 px, jeśli żaden layout nie wyświetla ich powyżej 1600 px. Dodaj ostrzeżenia dla obrazów osadzanych jako tło w CSS — tam też obowiązują wersje wielkości i kompresja.
Jeśli grafika niesie treść (zdjęcie produktu, infografika), powinna być img/picture z ALT-em, a nie tłem w CSS. Tła zostaw dla ozdób. Obrazy treściowe zyskują dzięki srcset, opisom i rezerwacji miejsca; tła trudniej kontrolować pod kątem wydajności i dostępności.
SVG jest zwykle lżejszy i ostrzejszy na wszystkich gęstościach ekranów niż PNG. Pilnuj jednak „czystości” plików (usuń metadane i nie osadzaj bitmap). Dla zestawów ikon rozważ sprite SVG lub font-ikon — mniej żądań sieciowych i prostsze wersjonowanie.
Obrazy powinny być serwowane z CDN z kompresją i HTTP/2/3. Ustal długie cache-control dla nazw wersjonowanych (np. z hashami). Zadbaj, by CMS przepakowywał pliki na „immutable” URL-e — wtedy możesz wydłużyć cache do miesięcy, a przy zmianie treści od razu wymusić nowy odczyt.
ALT opisuje funkcję obrazu w danym miejscu (np. „Zestaw narzędzi stolarskich – klucze i wiertarka”). Unikaj upychania słów kluczowych. Jeśli obraz jest dekoracyjny, ALT może być pusty. Podpis pod zdjęciem (jeśli sensowny) pomaga kontekstowi. Pamiętaj, że obrazy w karuzelach bez kontekstu często obniżają czytelność — mniej efektów, więcej sensu.
Ustal i wyświetlaj edytorom czytelne progi: miniatury do 100 KB, zdjęcia w treści do 250–350 KB, hero do 400–600 KB (zależnie od layoutu i formatu). To nie są „prawa fizyki”, ale dobre kotwice, które trzymają projekt w ryzach.
Jeśli musisz osadzić wideo z platformy zewnętrznej, stosuj lekki komponent, który ładuje player dopiero po kliknięciu. Zawsze dodawaj obraz „plakat” (poster) w AVIF/WEBP i rezerwuj miejsce, by uniknąć CLS. Autoodtwarzanie z dźwiękiem – tylko po świadomej akcji użytkownika.
1) Spisz zasady formatów i fallbacków. 2) Włącz w CMS automatyczne generowanie wariantów (szerokości/formaty). 3) Dodaj twarde limity szerokości i wagi. 4) Wymuś atrybuty width/height. 5) Włącz loading/decoding i konfiguruj lazy poniżej pierwszego ekranu. 6) Oznacz hero fetchpriority="high". 7) Uporządkuj obrazy tła vs. treść. 8) Przejdź na SVG dla ikon. 9) Skonfiguruj CDN i długie cache z wersjonowaniem. 10) Przeszkol redakcję i dodaj checklistę w edytorze.
Dobra polityka obrazów nie wymaga rewolucji technologicznej. Wystarczy kilka rozsądnych decyzji (formaty, responsywne źródła, rezerwacja miejsca, priorytety ładowania) i automatyzacja w CMS. Efekt to lżejsze strony, stabilny układ i lepsze doświadczenie użytkowników na każdym urządzeniu. To jedna z najszybszych i najtańszych dróg do poprawy wydajności i konwersji.
https://web.dev/learn/images/ — web.dev: kompleksowy kurs optymalizacji obrazów i responsywnych źródeł
https://developer.mozilla.org/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images — MDN: responsywne obrazy, srcset, sizes, picture
https://developer.mozilla.org/docs/Web/HTML/Element/img — MDN: atrybuty img (width, height, decoding, loading, fetchpriority)
https://www.w3.org/TR/html-images/ — W3C: obrazy w HTML, najlepsze praktyki i specyfikacja
https://web.dev/articles/optimize-lcp — web.dev: jak poprawić LCP (priorytety, obrazy, fonty, CSS)
Sprawdź naszych specjalistów w praktycznym działaniu. Zobacz co możemy zrobić dla Twojej firmy - przejrzyj ofertę lub skorzystaj z bezpłatnej konsultacji.