Przejdź do treści
Wydajność

Optymalizacja zdjęć na stronie - jak to zrobić dobrze?

Zdjęcia to zwykle największa część wagi strony i jednocześnie najłatwiejszy zysk. W typowej witrynie firmowej odpowiadają za więcej kilobajtów niż cały kod, style i skrypty razem wzięte. Optymalizacja ma dwie warstwy, które łatwo pomylić. Pierwsza dotyczy wagi i wpływa na czas ładowania. Druga dotyczy opisu i decyduje, czy Twoje zdjęcia w ogóle pojawią się w wyszukiwarce grafiki. Poniżej obie, po kolei.

Na czym polega optymalizacja zdjęć?

Na doprowadzeniu obrazu do stanu, w którym wygląda tak samo, a waży wielokrotnie mniej i jest opisany tak, żeby wyszukiwarka wiedziała, co przedstawia.

Składa się na to pięć rzeczy: właściwy format pliku, kompresja, rozmiar dopasowany do miejsca wyświetlania, opóźnione ładowanie tego, czego nie widać, oraz opis w atrybucie alt i nazwie pliku.

Dane z naszych wdrożeń pokazują, że sama konwersja formatu i kompresja zdejmuje typowo 50-80% wagi obrazów. Witryna z pięcioma megabajtami zdjęć schodzi do jednego, co na połączeniu komórkowym oznacza kilkukrotnie szybsze wczytanie pierwszego ekranu.

Który format wybrać w 2026 roku?

FormatKiedy używaćUwagi
WebPdomyślny wybór dla zdjęć i grafikobsługiwany przez wszystkie aktualne przeglądarki, mniejszy od JPEG przy tej samej jakości
AVIFduże zdjęcia, gdzie liczy się każdy kilobajtjeszcze mniejszy od WebP, wolniejsze kodowanie
JPEGwersja zapasowa dla starszych klientówuniwersalny, ale najcięższy
PNGlogo, ikony, grafiki z przezroczystościądo zdjęć się nie nadaje, waży krotnie więcej
SVGlogo, ikony, proste ilustracjeskaluje się bez utraty jakości, waży kilobajty

W praktyce: zdjęcia do WebP, logo i ikony do SVG, przezroczystość do PNG tylko wtedy, gdy SVG nie wchodzi w grę. AVIF ma sens przy dużych fotografiach na stronie głównej, gdzie różnica kilkuset kilobajtów jest widoczna.

Nie trzeba wybierać jednego. Znacznik `` pozwala podać kilka wersji, a przeglądarka pobierze tę, którą obsługuje.

Rozmiar: najczęstszy i najdroższy błąd

Zdjęcie o szerokości 4000 pikseli wyświetlane w kolumnie o szerokości 400 pikseli waży dziesięć razy więcej, niż powinno. Przeglądarka i tak je przeskaluje, ale najpierw pobierze w całości.

Zasada jest prosta: przed wgraniem przeskaluj obraz do maksymalnej szerokości, w jakiej będzie wyświetlany, powiększonej dwukrotnie na potrzeby ekranów o wysokiej rozdzielczości. Dla kolumny 400 pikseli wystarczy plik 800 pikseli.

WordPress generuje kilka wersji każdego wgranego pliku i podaje je przez atrybut `srcset`, więc telefon pobiera mniejszą wersję niż komputer. To działa tylko wtedy, gdy oryginał ma sensowny rozmiar. Wgranie zdjęcia prosto z aparatu oznacza, że wszystkie wygenerowane wersje są zrobione z pliku o wadze kilku megabajtów.

Najczęstsza przyczyna wolnej strony firmowej to zdjęcia wgrane bezpośrednio z telefonu przez osobę, która aktualizuje treści. To nie jest błąd wykonawcy, tylko brak jednego zdania w instrukcji.
Krzysztof Czapnik, KC Mobile

Kompresja: ile można ścisnąć bez straty jakości?

Kompresja stratna usuwa informacje, których oko nie zauważa. Przy zdjęciach próg widoczności leży zwykle w okolicach 80% jakości i to jest sensowne ustawienie domyślne.

Kompresja bezstratna zmniejsza plik bez żadnej zmiany obrazu, ale zysk jest mniejszy. Ma sens przy grafikach z ostrymi krawędziami, logo i zrzutach ekranu, gdzie kompresja stratna zostawia widoczne artefakty wokół liter.

Praktyczna kolejność: najpierw przeskaluj, potem konwertuj format, na końcu kompresuj. Kompresowanie zdjęcia o szerokości 4000 pikseli, które i tak zostanie przeskalowane, to praca wykonana dwa razy.

Sprawdź efekt na najbardziej wymagającym materiale: zdjęciach produktowych z gradientem i zrzutach ekranu z tekstem. Jeśli tam wygląda dobrze, reszta też będzie.

Opóźnione ładowanie obrazów

Nie ma powodu pobierać zdjęć ze stopki, zanim ktokolwiek do niej dotrze. Atrybut `loading="lazy"` odkłada pobranie do momentu, gdy obraz zbliża się do widocznego obszaru.

Jest jeden wyjątek, o którym łatwo zapomnieć: obrazy widoczne na pierwszym ekranie muszą ładować się od razu. Opóźnienie głównego zdjęcia nagłówkowego pogarsza wskaźnik LCP, czyli dokładnie tę metrykę, którą próbujesz poprawić.

WordPress dodaje ten atrybut automatycznie od wersji 5.5 i sam pomija pierwsze obrazy na stronie. Problemy zaczynają się przy kreatorach stron i suwakach, które wstawiają obrazy własnym kodem. Szczegóły i konfigurację opisujemy w poradniku lazy loading.

Wymiary w kodzie, czyli jak nie rozjechać układu

Obraz bez podanej szerokości i wysokości nie rezerwuje miejsca. Przeglądarka rysuje tekst, a gdy zdjęcie się pobierze, wpycha je w układ i cała treść przeskakuje w dół.

To jest bezpośrednia przyczyna złego wyniku CLS, jednego z trzech wskaźników Core Web Vitals. Dla użytkownika oznacza to sytuację, w której klika przycisk, a pod palcem pojawia się coś innego.

Naprawa polega na podaniu atrybutów `width` i `height` przy każdym obrazie. Przeglądarka wylicza z nich proporcje i rezerwuje miejsce, zanim plik dotrze. To kosztuje zero kilobajtów i naprawia wskaźnik, którego nie da się poprawić kompresją.

Atrybut alt: dostępność i wyszukiwarka grafiki

Atrybut alt opisuje, co przedstawia obraz. Czyta go czytnik ekranu osoby niewidomej i czyta go wyszukiwarka, bo sama fotografia nie mówi jej nic.

Dobry opis mówi, co jest na zdjęciu, w kontekście strony. Zły opis to lista fraz kluczowych albo nazwa pliku. Przy zdjęciu produktu wystarczy nazwa produktu i wariant, przy zdjęciu realizacji krótkie zdanie o tym, co widać.

SytuacjaCo wpisać w alt
Zdjęcie produktunazwa i wariant, na przykład fotel biurowy Kompas, tapicerka szara
Zdjęcie realizacjico przedstawia i dla kogo, bez fraz na siłę
Wykres lub infografikawniosek, który z niej płynie, nie sam tytuł
Element czysto dekoracyjnypusty atrybut alt, żeby czytnik go pominął
Logonazwa firmy

Pusty atrybut przy dekoracji to nie zaniedbanie, tylko świadoma decyzja. Czytnik ekranu przeczyta wtedy treść, a nie opis tła.

Nazwy plików i pozycjonowanie grafiki

Nazwa pliku jest jedną z niewielu wskazówek, jakie wyszukiwarka ma o zawartości obrazu. Plik `IMG_20260412_113355.jpg` nie mówi nic, `fotel-biurowy-kompas-szary.webp` mówi wszystko.

Zasady są proste: małe litery, myślniki zamiast spacji, bez polskich znaków diakrytycznych, nazwa opisująca zawartość, nie kampanię czy datę sesji.

Poza nazwą liczy się kontekst: tekst w pobliżu obrazu, podpis i nagłówek sekcji. Wyszukiwarka grafiki wiąże zdjęcie z treścią strony, więc zdjęcie produktu na stronie opisującej ten produkt ma większe szanse niż to samo zdjęcie w galerii bez opisów.

Przy sklepie warto dodać dane strukturalne produktu z odwołaniem do obrazu. To pozwala wyświetlić zdjęcie przy wyniku wyszukiwania, co bezpośrednio przekłada się na liczbę wejść.

Jak zoptymalizować zdjęcia już wgrane do WordPressa?

Nie trzeba wgrywać wszystkiego od nowa. Wtyczki optymalizujące przetwarzają istniejącą bibliotekę wsadowo: konwertują do WebP, kompresują i regenerują miniatury.

Kolejność, która nie kończy się awarią:

1. Zrób kopię katalogu `wp-content/uploads` przed pierwszym uruchomieniem
2. Przetwórz najpierw kilkanaście plików i obejrzyj efekt na stronie
3. Puść przetwarzanie wsadowe poza godzinami największego ruchu
4. Sprawdź, czy zachowane zostały oryginały, gdybyś chciał się wycofać
5. Zregeneruj miniatury, jeśli zmieniałeś rozmiary w ustawieniach

Przetwarzanie kilku tysięcy plików obciąża serwer i na współdzielonym hostingu potrafi wywołać przekroczenie limitów. Dlatego robi się to partiami, a nie jednym kliknięciem w środku dnia.

Zdjęcia w sklepie internetowym

Sklep ma trudniejszy przypadek niż witryna firmowa, bo obrazów jest kilkadziesiąt razy więcej i każdy występuje w kilku wariantach: miniatura na liście, zdjęcie na karcie produktu, powiększenie do podglądu.

Największy błąd to używanie tego samego pliku we wszystkich trzech miejscach. Lista produktów pobiera wtedy dwadzieścia pełnowymiarowych zdjęć, choć wyświetla je jako kwadraty o boku 200 pikseli.

Drugi typowy problem to funkcja powiększenia, która ładuje wersję o wysokiej rozdzielczości od razu przy wejściu na kartę produktu, zamiast dopiero po najechaniu kursorem. Przy karcie z ośmioma zdjęciami to kilka megabajtów pobranych na zapas.

Przy dużych katalogach warto rozważyć automatyczne przetwarzanie obrazów po stronie serwera albo usługę, która generuje warianty w locie. Ręczne pilnowanie rozmiarów przy kilku tysiącach produktów przestaje być realne. Szerszy kontekst wydajności sklepu opisujemy w poradniku wolny WooCommerce.

Czy warto podawać obrazy z CDN?

Sieć dostarczania treści trzyma kopie plików na serwerach rozsianych geograficznie i podaje je z najbliższego. Przy obrazach zysk jest podwójny: krótszy dystans i odciążenie własnego serwera, który przestaje wysyłać setki megabajtów dziennie.

Dla witryny obsługującej wyłącznie polskich klientów różnica w odległości jest niewielka, bo serwer i tak stoi w Europie. Zysk bierze się wtedy głównie z odciążenia i z tego, że CDN podaje pliki z własną, agresywną pamięcią podręczną.

Część usług potrafi też konwertować i skalować obrazy w locie: pobierasz oryginał, a CDN wydaje wersję WebP w rozmiarze dopasowanym do urządzenia. To rozwiązuje problem biblioteki, której nikt nie posprząta ręcznie.

Kiedy CDN ma sens, a kiedy jest zbędnym kosztem, rozkładamy w poradniku CDN - co to jest.

Ile to kosztuje i co realnie daje?

Optymalizacja obrazów jest częścią szerszej pracy nad wydajnością. Według naszego cennika podstawowa optymalizacja, obejmująca obrazy, cache i minifikację, to 500-1500 zł.

Zysk zależy od punktu wyjścia i jest największy tam, gdzie nikt się dotąd obrazami nie zajmował. Witryna ze zdjęciami prosto z aparatu przyspiesza kilkukrotnie, a strona już zoptymalizowana zyskuje dziesiąte części sekundy.

Warto policzyć to od strony ruchu: przy witrynie mobilnej każda sekunda dłuższego ładowania to mierzalny wzrost odsetka osób, które wychodzą przed obejrzeniem oferty. Obrazy są najtańszą sekundą do odzyskania.

Dane strukturalne i podpisy pod zdjęciami

Wyszukiwarka grafiki pokazuje przy wyniku nie tylko zdjęcie, ale też informacje pobrane ze strony: nazwę produktu, cenę, dostępność. Bierze je z danych strukturalnych, a nie z samego obrazu.

Przy sklepie warto zadbać, żeby schemat produktu zawierał odwołanie do zdjęcia w pełnym rozmiarze. Przy artykułach analogicznie działa schemat artykułu z obrazem wyróżniającym. Jedno i drugie zwykle dodaje wtyczka SEO, ale rzadko ktoś to sprawdza po wdrożeniu.

Podpis pod zdjęciem to osobna sprawa i często niedoceniana. Czytają go użytkownicy, bo wzrok zatrzymuje się na obrazie, a podpis jest pierwszym tekstem obok. W przeciwieństwie do atrybutu alt jest widoczny, więc pełni inną funkcję: nie opisuje, co widać, tylko dopowiada kontekst, którego na zdjęciu nie ma.

Lista kontrolna przed publikacją zdjęcia

  • Przeskalowane do maksymalnej szerokości wyświetlania razy dwa
  • Zapisane jako WebP, z wersją zapasową jeśli obsługujesz stare przeglądarki
  • Skompresowane w okolicach 80% jakości i obejrzane po kompresji
  • Nazwa pliku opisowa, małymi literami, bez polskich znaków
  • Atrybut alt opisujący zawartość, pusty przy dekoracji
  • Podane `width` i `height`, żeby układ nie skakał
  • `loading="lazy"` wszędzie poza pierwszym ekranem

Tę listę warto przekazać osobie, która dodaje treści na stronie. Większość problemów z wagą zdjęć powstaje nie na etapie budowy witryny, tylko rok albo dwa lata później, przy dodawaniu kolejnych realizacji i aktualności.

Robimy to jednorazowo albo w ramach stałej opieki nad stroną WordPress. Bezpłatną analizę obrazów na Twojej stronie zrobimy po zgłoszeniu przez formularz na stronie kontakt.

Korzyści

  • Zdejmujemy typowo 50-80% wagi obrazów bez widocznej zmiany jakości
  • Ustawiamy wymiary w kodzie, żeby układ nie skakał i nie psuł wskaźnika CLS
  • Porządkujemy nazwy plików i atrybuty alt, czyli warstwę widoczną w wyszukiwarce grafiki
  • Przetwarzamy istniejącą bibliotekę partiami, z kopią przed startem

Najczęściej zadawane pytania

Ile można zaoszczędzić na optymalizacji obrazów?
Typowo 50-80% wagi plików. Strona z pięcioma megabajtami zdjęć po optymalizacji ma około megabajta, co na wolnym połączeniu oznacza kilkukrotnie szybsze wczytanie.
Czy WebP jest bezpieczny? Czy wszystkie przeglądarki go obsługują?
Tak, obsługują go wszystkie aktualne przeglądarki. Dla starszych wersji można podać plik zapasowy przez znacznik `<picture>`, ale w praktyce dotyczy to dziś marginalnego odsetka użytkowników.
Czy atrybut alt wpływa na pozycje w Google?
Bezpośrednio na pozycję strony w niewielkim stopniu, ale decyduje o widoczności zdjęcia w wyszukiwarce grafiki i o dostępności dla osób korzystających z czytników ekranu. Upychanie tam fraz kluczowych szkodzi obu tym celom.
Czy kompresja pogorszy jakość zdjęć produktowych?
Przy ustawieniu w okolicach 80% jakości różnica jest niewidoczna dla oka. Sprawdź to na najtrudniejszym materiale, czyli na gradientach i zrzutach ekranu z tekstem. Jeśli tam wygląda dobrze, reszta biblioteki też będzie.
Mam kilka tysięcy zdjęć. Da się je zoptymalizować bez wgrywania od nowa?
Tak, wtyczki optymalizujące przetwarzają istniejącą bibliotekę wsadowo. Zrób wcześniej kopię katalogu `uploads`, przetwarzaj partiami i poza godzinami szczytu, bo obciążenie potrafi przekroczyć limity współdzielonego hostingu.
Czy lazy loading trzeba włączać ręcznie?
WordPress dodaje go automatycznie i pomija pierwsze obrazy na stronie. Ręcznej uwagi wymagają obrazy wstawiane przez kreatory stron i suwaki, które robią to własnym kodem, poza standardowym mechanizmem.
Czy warto wgrywać zdjęcia w formacie AVIF zamiast WebP?
Przy dużych fotografiach na stronie głównej różnica bywa zauważalna, bo AVIF daje mniejsze pliki przy podobnej jakości. Kodowanie trwa jednak dłużej, a przy setkach zdjęć produktowych zysk rzadko rekompensuje dodatkową złożoność. WebP zostaje rozsądnym domyślnym wyborem.
Dlaczego PageSpeed nadal narzeka na obrazy po optymalizacji?
Zwykle chodzi o rozmiar, a nie o kompresję: plik jest lekki, ale nadal większy niż miejsce, w którym się wyświetla. Sprawdź, czy szablon nie podaje jednej wersji obrazu dla wszystkich ekranów zamiast korzystać z atrybutu `srcset`.
Bezpłatna wycena