Digital media to treści tworzone, przechowywane i dystrybuowane w formie cyfrowej: obraz, dźwięk, wideo, tekst, animacja i forma interaktywna. W sklepie internetowym to nie dodatek do marketingu, a infrastruktura — zdjęcia i wideo odpowiadają zwykle za 60–80% wagi transferu strony. Poniżej znajdziesz definicję, sześć typów mediów, które realnie spotkasz w e-commerce, konkretne formaty plików na 2025 rok, progi wagowe i to, co faktycznie sprawdza Google w Core Web Vitals. Wszystko po to, żeby karta produktu wczytywała się szybko na telefonie i sprzedawała.
Digital media to treści tworzone, przechowywane i dystrybuowane w formie cyfrowej: obraz, dźwięk, wideo, tekst, animacja i forma interaktywna. Tyle definicja. Reszta to praktyka sklepu.
Gdzie przebiega granica? Media tradycyjne — druk, radio analogowe, billboard — powstają i są przekazywane w świecie fizycznym. Jeden egzemplarz, jedna emisja, brak interakcji. Media cyfrowe to pliki, strumienie i kod: JPEG na serwerze, strumień HLS, komponent AR w przeglądarce. Kopiujesz je bez utraty jakości, wersjonujesz, kompresujesz i mierzysz co do kilobajta. To różnica techniczna, ale ma konsekwencje: plik można zoptymalizować albo zostawić i płacić czasem ładowania.
W e-commerce realnie spotkasz sześć typów:
| Typ | Co to jest | Przykład ze sklepu |
|---|---|---|
| Zdjęcia i grafika | pliki rastrowe (JPEG, WebP, AVIF) i wektorowe (SVG) | zdjęcie 2000×2000 px na karcie produktu, logo sklepu jako SVG |
| Wideo | materiał ruchomy, z dźwiękiem lub bez | 30-sekundowe wideo pokazujące produkt w użyciu |
| Audio i podcasty | dźwięk w pliku lub w strumieniu | lektorskie omówienie produktu, podcast firmowy |
| Animacje i treści interaktywne (3D/AR) | ruch generowany przez kod, modele 3D, rozszerzona rzeczywistość | pasek AR ustawiający mebel w pokoju, obrotowy model 3D buta |
| Dokumenty i PDF | sformatowane pliki do pobrania | karta katalogowa PDF, instrukcja montażu |
| UGC | treści tworzone przez użytkowników | opinia klienta ze zdjęciem, film z unboxingu |
Otwórz DevTools → zakładka Network na dowolnej karcie produktu i zobacz, jak rozkłada się waga. HTML, CSS i JavaScript to razem 20–40% transferu. Reszta — 60–80% — to digital media: zdjęcia, wideo, ikony, czasem czcionki. To nie ciekawostka, bo największy element graficzny widoczny przy pierwszym renderze jest zwykle też elementem LCP (Largest Contentful Paint). W sklepie to niemal zawsze główne zdjęcie produktu albo obraz hero na stronie głównej. Google uwzględnia LCP w Core Web Vitals — szczegóły opisuje dokumentacja web.dev — więc każdy kilobajt tego pliku pracuje albo przeciw Tobie, albo dla Ciebie.
Skala rośnie szybciej, niż się wydaje. Policz to dla własnego katalogu:
| Liczba SKU | Zdjęć na produkt | Plików źródłowych | Wariantów po miniaturach i rozmiarach |
|---|---|---|---|
| 500 | 4 | 2 000 | 6 000–10 000 |
| 5 000 | 4 | 20 000 | 60 000–100 000 |
Rekomendacja jest jednoznaczna i nie zmieniła się istotnie w 2025 roku.
Zdjęcia. Kolejność: AVIF → WebP → JPEG/PNG. AVIF daje najmniejszy plik przy tej samej jakości (często 40–50% mniej niż JPEG), ale wspiera go tylko część przeglądarek, więc zawsze zostawiasz fallback. WebP obsługują praktycznie wszystkie nowoczesne przeglądarki. JPEG zostaje jako bezpieczne dno dla starych klientów i części mailowych podglądów.
Wideo. MP4/H.264 dla maksymalnej zgodności — odtworzy go wszystko. WebM/VP9 i AV1 dają mniejszy transfer, ale kosztują czas kodowania i wsparcie serwera. Przy materiałach dłuższych niż minuta stosuj HLS (strumień podzielony na krótkie fragmenty), żeby klient nie czekał na cały plik.
Audio. AAC/MP3 dla uniwersalności, Opus gdy zależy na rozmiarze i jakości mowy — np. w lektorskim omówieniu produktu.
Progi wagowe, których warto się trzymać:
| Zastosowanie | Format główny | Fallback | Docelowa waga |
|---|---|---|---|
| Zdjęcie produktowe (karta) | AVIF | WebP → JPEG | 100–200 KB |
| Zdjęcie hero (strona główna) | AVIF | WebP → JPEG | do 300 KB |
| Miniatura (kafelek, koszyk) | WebP | JPEG | 20–40 KB |
| Wideo do 30 s | WebM/AV1 | MP4/H.264 | poniżej 10 MB |
| Wideo dłuższe (>1 min) | HLS (fragmenty) | MP4/H.264 | zależnie od długości |
| Audio (mowa, lektor) | Opus | AAC/MP3 | 64–96 kbps mono |
Core Web Vitals Google liczy z realnych sesji użytkowników, a nie z testu na Twoim laptopie. Ocena zapada na 75. percentylu wejść — jeśli choć jedna czwarta użytkowników wypada gorzej niż próg, strona nie przechodzi, nawet gdy w Lighthouse widzisz 95.
Z tych trzech metryk media psują dwie. LCP to zwykle zdjęcie hero albo główne zdjęcie produktu. CLS to obrazy bez zarezerwowanego miejsca. INP częściej obciążają skrypty zewnętrzne, ale ciężki slider wideo potrafi dołożyć swoje.
Podstawowa ochrona przed CLS: width i height na każdym <img> albo aspect-ratio w CSS. Przeglądarka rezerwuje miejsce, zanim pobierze plik. To jedna zmiana w szablonie karty produktu i większość problemów z CLS znika.
Obraz LCP traktuj osobno: fetchpriority="high", bez loading="lazy". Lazy na obrazie pierwszego ekranu to klasyczna pułapka — przeglądarka celowo opóźnia pobranie, a Google mierzy to jako wolne LCP. Zasada: pierwszy ekran ładuje się normalnie, wszystko poniżej — loading="lazy". Warto dołożyć <link rel="preload"> dla samego obrazu LCP.
Tekst alternatywny opisuje treść, nie frazę. Obraz informacyjny: co widać. Ikona, separator, tło dekoracyjne: alt="" — pusty, nie brakujący. Upychanie fraz w alt to nie SEO, a sygnał spamu. Aktualne progi sprawdzisz w dokumentacji Google Search Central o Core Web Vitals.
Nazwa pliku działa jak etykieta: buty-biegowe-damskie-rozmiar-38.webp mówi więcej niż IMG_4521.jpg, a kosztuje tyle samo pracy. Dla wideo dochodzi kontekst: dane strukturalne VideoObject, sitemap wideo, dostępny thumbnail i publikacja na stronie docelowej. Sam embed z zewnętrznego serwisu, bez treści wokół, nie wystarczy.
| Metryka | Próg (75. percentyl) | Co najczęściej psuje wynik |
|---|---|---|
| LCP | ≤ 2,5 s | Zdjęcie hero bez kompresji, lazy na obrazie pierwszego ekranu, brak preload |
| INP | ≤ 200 ms | Ciężkie skrypty third-party, slider wideo startujący automatycznie |
| CLS | ≤ 0,1 | Obrazy bez width/height lub aspect-ratio, elementy wstawiane dynamicznie |
Decyzję o infrastrukturze podejmuj na podstawie liczby plików i miesięcznego transferu, nie „na wyczucie”.
Osobny serwer plików statycznych albo object storage zgodny z S3 ma sens, gdy media zaczynają zjadać pasmo i CPU aplikacji. Ale offload to projekt, nie wtyczka „włącz i zapomnij”: trzeba przepisać URL-e, sprawdzić podgląd w bibliotece mediów i policzyć koszt wyjścia ruchu (egress), który przy rosnącym ruchu potrafi przebić koszt samego storage'u.
Konwersja formatów przy uploadzie (WebP/AVIF obok JPG) kosztuje CPU raz i jest prosta we wdrożeniu. Konwersja on-the-fly przenosi koszt na każdą odsłonę — opłaca się tylko z agresywnym cache i CDN przed serwerem.
PrestaShop: miniatury definiujesz w panelu (Projektowanie → Ustawienia obrazów), typy home_default, large_default, cart_default mają własne wymiary. Po zmianie ustawień uruchom regenerację miniatur — stare pliki nie znikają z /img/p/, a ten katalog potrafi urosnąć do kilkudziesięciu GB i zjada limity inode. WooCommerce: rozmiary ustawiasz w Ustawienia → Media plus własne rozmiary sklepu; sama zmiana suwaków nie przelicza istniejących plików, potrzebna regeneracja miniatur.
Nagłówki cache: dla plików z hashem w nazwie Cache-Control: public, max-age=31536000, immutable. Jeśli podmieniasz zdjęcie pod tą samą nazwą — a tak robi PrestaShop — klient i CDN nadal zobaczą starą wersję. Dodaj parametr wersji albo czyść cache; ETag pomaga tylko przy zapytaniach warunkowych.
Backup: /img/p/ i wp-content/uploads rosną szybciej niż baza danych. Kopia samej bazy po awarii odtworzy sklep bez zdjęć. Sprawdź, czy media są w harmonogramie i przetestuj odtworzenie na kopii. Szczegóły techniczne opisuje dokumentacja dla deweloperów PrestaShop.
| Skala | Rozwiązanie | Na co uważać |
|---|---|---|
| do ~1 000 zdjęć, do ~20 tys. odsłon/mies. | hosting współdzielony z NVMe + CDN | limity inode, backup /img/p/ |
| 5–20 tys. plików, regeneracja miniatur w tle | VPS 4–8 GB RAM | regenerację uruchamiaj poza godzinami szczytu |
| dziesiątki tysięcy plików, ruch z wielu krajów | object storage S3 + CDN | offload wymaga przepisania URL-i, licz koszt egress |
Trzy obszary, w których oszczędność kilkuset złotych na licencji kończy się roszczeniem: prawa do mediów, dane osobowe w plikach i dostępność.
Licencja stockowa ma zakres: nośnik (online, druk, outdoor), terytorium, czas i typ użycia. „Editorial use only” nie nadaje się na kartę produktu. Zdjęcie od fotografa wymaga umowy przenoszącej majątkowe prawa autorskie na wszystkich polach eksploatacji — plus osobnych zgód na wizerunek, jeśli osoby są rozpoznawalne.
Wizerunek: polskie prawo autorskie (art. 81 ustawy o prawie autorskim i prawach pokrewnych) wymaga zgody na rozpowszechnianie wizerunku. Dotyczy to pracowników, modelek i klientów — także zdjęć z eventu firmowego, jeśli ktoś jest rozpoznawalny i stanowi główny motyw kadru. UGC, czyli zdjęcia przysyłane przez klientów: samo wysłanie pracy na konkurs nie jest zgodą na publikację w sklepie. Potrzebny regulamin z klauzulą licencyjną albo wyraźna zgoda z datą i zakresem.
Media z AI: obraz w pełni wygenerowany, bez twórczego wkładu człowieka, może nie być w ogóle chroniony prawem autorskim — nie masz do niego wyłączności. Rozporządzenie o AI (2024/1689) wprowadza obowiązki przejrzystości, m.in. oznaczanie treści syntetycznych i deepfake'ów. Praktycznie: nie publikuj wygenerowanego zdjęcia jako zdjęcia realnego produktu i oznaczaj takie grafiki. Wątpliwości prawne konsultuj z prawnikiem, bo stanowiska bywają różne.
RODO: pliki zdjęciowe noszą metadane EXIF z geolokalizacją. Usuń je przed publikacją (exiftool, ImageOptim). Zdjęcia dokumentów i nagrania z klientami trzymaj poza katalogiem publicznym, z ograniczonym dostępem i terminem usunięcia.
Dostępność (WCAG 2.2): alt dla obrazów niosących treść, napisy i transkrypcje dla wideo, kontrast tekstu na grafikach promocyjnych minimum 4,5:1. Tekst wtopiony w obrazek to zły pomysł — czytnik ekranu go nie odczyta.
| Obszar | Minimalny wymóg | Dowód do zachowania |
|---|---|---|
| Licencja stockowa | zakres: nośnik, terytorium, czas, użycie komercyjne | PDF licencji + data zakupu |
| Zdjęcie od fotografa | umowa przenosząca prawa autorskie + zgody na wizerunek | umowa i zgody w PDF, poza serwerem produkcyjnym |
| UGC od klientów | regulamin z licencją albo wyraźna zgoda | zgoda z datą i wskazaniem zakresu |
| Materiały z AI | oznaczenie treści syntetycznej | zapis w opisie produktu lub regulaminie |
| RODO | usunięcie EXIF przed publikacją, ograniczony dostęp do plików | procedura retencji i rejestr czynności |
Wycena wdrożenia mediów nie wymaga czekania na ofertę. Wystarczy zakres prac w godzinach pomnożony przez stawkę. Poniższe widełki dotyczą sklepu do 500 SKU, w którym pliki już istnieją na serwerze – nie trzeba ich odzyskiwać z archiwum ani odtwarzać z backupu.
find ./img -type f | wc -l plus sortowanie po rozmiarze. Przy 300 SKU po 4 zdjęcia to ok. 1200 plików, więc robi to skrypt, nie człowiek klikający w FTP.Zasada wyceny jest jedna: stawka godzinowa × liczba godzin. Nie „pakiet od sklepu”, bo przy 60 SKU i przy 480 SKU robota jest inna. Każde przewidywane przekroczenie zakresu zgłaszamy przed wykonaniem, nie po fakturze. Pułapka w tanich ofertach: brakuje pozycji „migracja i przekierowania” oraz „fallback dla starszych przeglądarek” – a właśnie tam wracają koszty.
| Zakres prac | Godziny | Od czego zależy |
|---|---|---|
| Audyt i inwentaryzacja (do 500 SKU) | 6–12 h | liczba zdjęć na produkt, bałagan w nazwach i katalogach |
| AVIF/WebP + fallback + srcset | 8–20 h | natywne wsparcie platformy vs moduł zewnętrzny |
| CDN i object storage + migracja | 6–16 h | liczba starych adresów do przekierowania |
| Wideo na kartach produktu | 10–25 h | hosting, odtwarzacz, liczba miejsc na stronie |
| Licencje i zgody na wizerunek | 4–8 h | czy wzory już istnieją, czy trzeba je napisać |
| Łącznie pakiet startowy | 24–61 h | stawka × godziny, bez kosztów hostingu i storage |
Siedem błędów poniżej odpowiada za większość problemów z wydajnością i prawami do mediów w sklepach. Każdy da się wykryć podczas jednego przeglądu: telefon z kartą produktu, DevTools, PageSpeed Insights i kwadrans czasu.
Kolejność diagnostyki jest ważna – najpierw LCP i CLS, potem waga, na końcu podwójne serwowanie. I pamiętaj, co mierzy Google: Core Web Vitals w Google Search to LCP, INP i CLS – nie liczba kilobajtów jako taka.
| Błąd | Gdzie sprawdzisz | Typowa naprawa |
|---|---|---|
| Obraz LCP z lazy loading | PageSpeed Insights, zakładka Elements | usunięcie atrybutu z obrazu LCP |
| Brak width/height | raport Lighthouse (CLS) | atrybuty wymiarów lub proporcja kontenera |
| Zdjęcia 4000 px | DevTools → Network, sortowanie po Size | zmiana rozmiaru + kompresja |
| JPEG i WebP pobierane razem | Network – dwa żądania tej samej grafiki | poprawny fallback w picture/srcset |
| Braki alt | Screaming Frog, audyt masowy | uzupełnienie opisów produktowych |
| Miniatury na żądanie | logi serwera, monitoring CPU | generowanie z wyprzedzeniem, cache |
| Brak testu backupu | procedura wewnętrzna | odtworzenie na środowisku testowym |
Kolejność ma znaczenie: bez pomiaru nie wiesz, co naprawiać, a bez zmian systemowych wrócisz do tego samego problemu przy następnej kampanii.
Krok 1 – inwentarz i pomiar. Policz pliki i zważ stronę. Ile masz mediów (find na serwerze albo eksport z bazy), ile waży karta produktu na mobile, jakie są aktualne LCP, INP i CLS. Punkt wyjścia: PageSpeed Insights dla adresu produktu i raport Core Web Vitals w Search Console. To zadanie zrobisz sam w 2–3 godziny, nie wymaga dostępu do kodu.
Krok 2 – szybkie wygrane. Kompresja (JPEG jakość 75–82, PNG tylko tam, gdzie potrzebna przezroczystość), poprawne wymiary, uzupełnienie tekstów alt, zdjęcie loading="lazy" z obrazu LCP, usunięcie EXIF. Uwaga na pułapkę: razem z EXIF usuwany bywa znacznik orientacji, więc najpierw znormalizuj obrót zdjęcia, inaczej część kadrów wyląduje bokiem. Te prace też wykonasz samodzielnie.
Krok 3 – zmiany systemowe. Format AVIF/WebP z fallbackiem, srcset i sizes, CDN i object storage, procedury licencyjne i rejestr zgód, backup z testem odtworzenia. Tutaj wchodzi się już w motyw i konfigurację serwera.
Krok 4 – monitoring kwartalny. Przegląd Core Web Vitals w Search Console, kontrola mediów przy dodawaniu nowych SKU i przed kampaniami sezonowymi. Definicje i progi metryk znajdziesz w Web Vitals – to materiał, do którego warto wrócić przed każdym przeglądem.
Kryterium podziału prac: jeśli zadanie wymaga edycji motywu, konfiguracji serwera albo logiki modułu, taniej wychodzi zlecić je osobie, która robi to regularnie. Kompresję, alt i pomiary zostaw sobie. Godziny, które „oszczędzisz”, ucząc się nadpisywania szablonu produktu, są zwykle droższe niż stawka specjalisty.
Wrzucanie plików prosto z aparatu lub telefonu — zdjęcia 4000 px i po 3–5 MB na kartę produktu.
Jak wykryć: W DevTools otwórz zakładkę Network, filtruj po Img i posortuj po Size. Zobacz, ile waży największy plik na karcie produktu.
Jak naprawić: Eksportuj zdjęcia do 2000×2000 px i konwertuj do AVIF lub WebP. Cel dla zdjęcia produktowego to 100–200 KB, dla miniatur 20–40 KB.
Atrybut loading="lazy" na obrazie, który jest elementem LCP, czyli na zdjęciu głównym produktu lub obrazie hero.
Jak wykryć: PageSpeed Insights wskazuje, który element jest LCP. Sprawdź w kodzie, czy ten konkretny nie ma przypadkiem loading="lazy".
Jak naprawić: Usuń lazy z obrazu pierwszego ekranu i dodaj fetchpriority="high". Lazy zostaw tylko dla obrazów poniżej pierwszego ekranu.
Brak atrybutów width i height (lub aspect-ratio) na obrazach — układ strony skacze podczas wczytywania.
Jak wykryć: Audyt stabilności układu w Lighthouse oraz wskaźnik CLS w Search Console. Wartość powyżej 0,1 oznacza, że jest problem.
Jak naprawić: Dodaj width i height do każdego albo zdefiniuj aspect-ratio w CSS. Przeglądarka zarezerwuje miejsce, zanim plik się pobierze.
Upychanie słów kluczowych w tekstach alternatywnych, np. "buty damskie buty damskie tanio".
Jak wykryć: Przejrzyj alt wszystkich zdjęć w kategorii. Jeśli są do siebie podobne i pełne fraz, a nie opisują obrazu, to znak, że zostały wygenerowane masowo.
Jak naprawić: Alt opisuje to, co widać na zdjęciu. Dla obrazów dekoracyjnych zostaw pusty alt (alt=""), żeby czytniki ekranu je pominęły.
Jeden format dla wszystkich — tylko JPEG, bez nowszych formatów i bez mechanizmu fallbacku.
Jak wykryć: Sprawdź nagłówek Content-Type dla zdjęcia produktowego w nowoczesnej przeglądarce i porównaj z tym, co dostaje starsza przeglądarka.
Jak naprawić: Wdróż
Wideo 60 s i 80 MB ładowane automatycznie na stronie głównej lub karcie produktu.
Jak wykryć: Network → filtr Media. Sprawdź, czy plik zaczyna się pobierać zaraz po wejściu na stronę i ile waży.
Jak naprawić: Skróć materiał do 30 s, skompresuj poniżej 10 MB, dodaj plakat (poster) i ustaw preload="none" lub preload="metadata".
Digital media w sklepie to warstwa, która decyduje jednocześnie o tym, ile strona waży i jak szybko się ładuje na telefonie. Przy 5000 SKU i czterech zdjęciach na produkt mówimy o dziesiątkach tysięcy plików i wariantów, więc temat trzeba rozwiązać systemowo, a nie ręcznie. Największy zwrot daje uporządkowanie formatów, wag plików, atrybutów width/height oraz priorytetu dla obrazu LCP. Zacznij od jednej kategorii i sprawdź efekt w PageSpeed Insights, zanim rozszerzysz zmiany na cały katalog.
To wszystkie treści w formie cyfrowej, które sklep tworzy, przechowuje i wysyła do klienta: zdjęcia produktów, wideo, podcasty, animacje, pliki PDF oraz treści tworzone przez użytkowników, np. opinie ze zdjęciami. Granica wobec mediów tradycyjnych jest prosta: tutaj mamy plik lub strumień i możliwość interakcji, a nie druk, radio analogowe czy billboard. W e-commerce digital media to jednocześnie warstwa sprzedażowa i warstwa techniczna.
Praktyczny cel to 100–200 KB dla zdjęcia o wymiarach 2000×2000 px, miniatury 20–40 KB, a duże zdjęcie hero do 300 KB. Powyżej tych wartości karta produktu zaczyna się wyraźnie wolniej wczytywać na mobile. Warto traktować te liczby jako próg kontrolny, a nie sztywną normę — liczy się przede wszystkim to, czy zmieścisz się w budżecie wydajności całej strony.
Tak, pod warunkiem że nie zostawiasz starych przeglądarek bez obsługi. AVIF daje zwykle najmniejszy plik, WebP jest dobrą alternatywą pośrednią, a JPEG i PNG traktuj jako fallback. Najbezpieczniejszy układ to
Alt pomaga przede wszystkim w dostępności i w zrozumieniu obrazu przez wyszukiwarkę, ale nie jest dźwignią rankingową samą w sobie. Opisowy alt dla zdjęcia produktu ma sens, natomiast upychanie w nim fraz kluczowych nie zastąpi dobrej treści na stronie. Google w wytycznych dla twórców treści wprost stawia na materiały pisane dla ludzi, nie pod roboty.
Nie zawsze, ale domyślne wrzucenie pliku bez kompresji i autoplay z dźwiękiem prawie zawsze pogorszy wyniki. Kluczowe są trzy rzeczy: waga pliku poniżej 10 MB przy materiale do 30 s, brak automatycznego pobierania całego pliku na starcie oraz plakat, który widzi użytkownik przed odtworzeniem. Przy dłuższych materiałach sensowne jest strumieniowanie, np. HLS, zamiast pojedynczego MP4.
Nie. Przy katalogu liczącym tysiące SKU lepiej zacząć od stron o największym ruchu i najwyższej wartości koszyka: karty bestsellerów, kategorie wejściowe, strona główna. Tam poprawa wagi plików i sposobu ładowania da najszybszy efekt widoczny w Core Web Vitals. Resztę katalogu można domykać partiami, partiami generując też nowe warianty rozmiarów.
Zacznij od PageSpeed Insights w trybie danych polowych i sprawdź, który element jest wskazywany jako LCP. Potem w DevTools przejdź przez Network, Elements i audyty Lighthouse: waga plików, atrybuty width i height, obecność lazy tam, gdzie go być nie powinno. Wyniki potwierdź w raporcie Core Web Vitals w Search Console, bo liczony jest dla 75. percentyla użytkowników, a nie dla pojedynczego testu.
Jeśli chcesz sprawdzić, jak media w Twoim sklepie wpływają na czas ładowania i Core Web Vitals, napisz do nas — przeanalizujemy karty produktu i wskażemy, co poprawić w pierwszej kolejności. Pracujemy na PrestaShop, WordPress i WooCommerce, więc rekomendacje będą dopasowane do Twojego stacku.