Przejdź do treści
Darmowy audyt

Konfiguratory 3D Problem i rozwiązanie

Konfigurator 3D długo się ładuje i psuje wynik PageSpeed - przyczyny i naprawa

Autor: Bartosz Gromek Zaktualizowano: 7 min czytania

W skrócie

  • Objaw: strona z konfiguratorem długo pokazuje pusty prostokąt albo pasek postępu, a PageSpeed Insights pokazuje słabe LCP i INP dla telefonu, także u klientów, którzy konfiguratora w ogóle nie uruchamiają.
  • Przyczyna: biblioteka 3D, modele i tekstury pobierają się razem ze stroną, konfigurator stoi w pierwszym ekranie, a w miejscu modelu nie ma lekkiego obrazu podglądu.
  • Rozwiązanie: w pierwszym ekranie obraz podglądu z przyciskiem „Skonfiguruj”, konfigurator ładowany po kliknięciu albo przy przewinięciu, skompresowany GLB, tekstury dociągane przy wyborze i długie przechowywanie plików w cache.

Nie masz czasu? Zrobimy to za Ciebie - Konfigurator 3D na stronę od 3 500 zł netto

Konfigurator 3D spowalnia stronę, gdy jego biblioteka, modele i tekstury pobierają się razem z resztą treści, zanim klient w ogóle zdecyduje się z niego skorzystać. Naprawa polega na odwróceniu kolejności: najpierw lekka strona z obrazem podglądu produktu, a konfigurator dopiero po kliknięciu albo wtedy, gdy pojawi się na ekranie.

Po czym poznać, że to konfigurator spowalnia stronę?

Po tym, że słabe wyniki dotyczą tylko stron z konfiguratorem, a w PageSpeed Insights wśród największych pobieranych plików są biblioteka 3D, pliki modeli i tekstury. Wtedy ogólne przyspieszanie strony niewiele da.

  • przez kilka sekund widać pusty prostokąt, kręcący się wskaźnik albo pasek postępu w miejscu modelu,
  • PageSpeed Insights dla telefonu pokazuje słabe LCP i długi czas blokowania, a w diagnostyce dominują pliki JavaScript, GLB i duże obrazy tekstur,
  • pierwsze dotknięcie menu albo przycisku reaguje z opóźnieniem,
  • podstrony bez konfiguratora w tej samej witrynie mają dobre wyniki.

Jeśli wolne są wszystkie podstrony, przyczyna leży gdzie indziej: w zdjęciach, wtyczkach albo hostingu. Ogólne przyczyny i ich naprawę opisujemy we wpisie strona internetowa wolno się ładuje.

Dlaczego konfigurator 3D psuje wynik PageSpeed?

Bo przeglądarka musi pobrać i uruchomić kilka ciężkich rzeczy naraz: bibliotekę 3D, model, tekstury i kod konfiguratora, a telefon robi to wolniej niż komputer stacjonarny. Do tego konfigurator zwykle stoi w najbardziej wrażliwym miejscu strony, czyli na samej górze.

Wszystko ładuje się razem ze stroną

Skrypt konfiguratora jest dołączony do strony jak każdy inny i startuje od razu, więc pobiera model i wszystkie warianty kolorów oraz dodatków, także te, których klient nigdy nie wybierze. Płacą za to również osoby, które przyszły tylko przeczytać opis i sprawdzić cenę. Dzieje się tak nawet wtedy, gdy konfigurator jest kilka ekranów niżej, bo skrypt startuje niezależnie od tego, czy klient do niego dotrze.

Za duże modele i tekstury

Nieskompresowany model i tekstury w wysokiej rozdzielczości potrafią ważyć więcej niż cała reszta strony. Tekstury zapisane jako JPG lub PNG trzeba jeszcze rozpakować w pamięci karty graficznej, co na telefonie trwa i zajmuje pamięć. Jak przygotować lżejszy model, opisujemy we wpisie model 3D z CAD za ciężki do przeglądarki.

Brak obrazu podglądu i konfigurator w pierwszym ekranie

Element canvas, na którym rysuje się model 3D, nie jest brany pod uwagę przy liczeniu LCP. Jeśli pierwszy ekran zajmuje sam konfigurator, wynik zależy od innego elementu, np. nagłówka, a jego wyświetlenie opóźniają skrypty 3D, które konkurują o łącze i procesor. Klient widzi wtedy pusty prostokąt zamiast produktu, choć mógłby od razu zobaczyć jego zdjęcie.

Ciężki kod uruchamiany przy starcie

Rozpakowanie modelu i przygotowanie sceny zajmują procesor telefonu. Jeśli dzieje się to zaraz po wejściu na stronę, pierwsze kliknięcia w menu czy przyciski reagują z opóźnieniem, co pogarsza INP i wrażenie, że strona działa sprawnie.

Jak przyspieszyć stronę z konfiguratorem 3D?

Pokaż w pierwszym ekranie lekki obraz podglądu, który stanie się elementem LCP, a konfigurator ładuj dopiero wtedy, gdy klient go potrzebuje. Resztę zysku dają skompresowane pliki i dobre ustawienia pamięci podręcznej. Kolejność zmian ma znaczenie: najpierw obraz podglądu i ładowanie na kliknięcie, bo poprawiają wynik dla wszystkich odwiedzających, a dopiero potem kompresja, która skraca czekanie tych, którzy konfigurator uruchomią.

Przyczyna Naprawa
Brak podglądu w pierwszym ekranie Obraz produktu w WebP lub AVIF z podanymi wymiarami, bez leniwego ładowania, z atrybutem fetchpriority="high"
Konfigurator ładuje się ze stroną Biblioteka i model pobierane po kliknięciu „Skonfiguruj” albo gdy sekcja zbliża się do ekranu
Ciężki model GLB z kompresją Draco lub Meshopt, bez niewidocznych części
Wszystkie warianty na starcie Domyślna konfiguracja na start, kolory i dodatki przy pierwszym wyborze
Duże tekstury KTX2 w umiarkowanej rozdzielczości, mniejsze wersje dla telefonów
Pliki pobierane przy każdej wizycie Nazwy plików z numerem wersji i nagłówek Cache-Control z długim czasem przechowywania

Podczas ładowania po kliknięciu pokazuj postęp na tle obrazu podglądu, a nie pusty prostokąt. Klient widzi wtedy produkt przez cały czas, a konfigurator płynnie zastępuje zdjęcie, gdy jest gotowy. Tę samą zasadę warto zastosować do zmian w trakcie konfiguracji: tekstura nowego koloru albo model bramy pobierają się dopiero przy pierwszym wyborze, a kolejne zmiany korzystają już z plików w pamięci.

Jak sprawdzić, co dokładnie pobiera się przed kliknięciem?

Otwórz stronę w Chrome, w narzędziach przeglądarki przejdź do karty Sieć, włącz ograniczenie prędkości do wolnego łącza mobilnego i przeładuj stronę bez pamięci podręcznej. Posortuj pliki według rozmiaru: na górze zobaczysz bibliotekę 3D, pliki GLB, tekstury i dekodery kompresji. Każdy z nich, który pobiera się, zanim klient kliknie konfigurator, można przenieść na później. Ten sam test po zmianach pokaże, czy przed kliknięciem strona pobiera już tylko obraz podglądu i własne skrypty.

Iframe czy osadzenie bezpośrednio na stronie?

Oba sposoby mogą być szybkie, jeśli konfigurator nie startuje razem ze stroną. Iframe z atrybutem loading="lazy" sam odkłada pobieranie do momentu przewinięcia, ale utrudnia dopasowanie wysokości i pomiar zdarzeń. Osadzenie bezpośrednio na stronie daje więcej kontroli: obraz podglądu, ładowanie po kliknięciu i wspólny formularz zapytania w jednym miejscu.

Przy garażach i wiatach dobrze sprawdza się układ, w którym na górze strony jest zdjęcie albo render najpopularniejszego wariantu z ceną „od” i przyciskiem „Skonfiguruj swój garaż”, a konfigurator otwiera się po kliknięciu. Taki układ proponujemy przy wdrożeniach opisanych na stronie konfiguratora 3D garaży.

Co sprawdzić przed publikacją? Lista kontrolna

  • w pierwszym ekranie jest obraz podglądu z podanymi wymiarami, a nie pusty canvas,
  • żaden plik 3D nie pobiera się, dopóki klient nie kliknie albo nie przewinie do konfiguratora,
  • model jest w formacie GLB z kompresją, a tekstury w KTX2,
  • pliki 3D mają w nazwie numer wersji i długi czas przechowywania w cache,
  • podczas ładowania klient widzi postęp na tle podglądu,
  • wynik sprawdzono w PageSpeed Insights dla telefonu i na prawdziwym telefonie.

Nie ustawiaj leniwego ładowania na obrazie podglądu w pierwszym ekranie. To on ma być elementem LCP, więc powinien pobrać się jak najwcześniej. Leniwie ładuj dopiero to, co jest niżej na stronie, oraz sam konfigurator.

Ładowanie na kliknięcie za obrazem podglądu to standard każdego konfiguratora 3D na stronę, który budujemy w three.js. Ten problem jest jednym z naszej listy 50 problemów z konfiguratorem 3D produktu.

Jak to rozwiązać krok po kroku

Konfigurator 3D długo się ładuje i psuje wynik PageSpeed - przyczyny i naprawa - https://codescriptum.pl/blog/konfigurator-3d-dlugo-sie-laduje/

  1. Sprawdź stronę z konfiguratorem w PageSpeed Insights dla telefonu i zanotuj LCP, INP, element wskazany jako największy oraz najcięższe pobierane pliki.
  2. Przygotuj obraz podglądu najpopularniejszego wariantu produktu w WebP lub AVIF, w rozmiarze, w jakim jest wyświetlany, z atrybutami width i height oraz fetchpriority="high", i umieść go w miejscu konfiguratora.
  3. Przenieś ładowanie biblioteki 3D i modelu do akcji klienta: po kliknięciu „Skonfiguruj” albo gdy sekcja zbliża się do ekranu (Intersection Observer), z dynamicznym importem skryptu.
  4. Zmniejsz model: usuń niewidoczne części, zapisz go jako GLB z kompresją Draco lub Meshopt, a tekstury przekonwertuj do KTX2.
  5. Na starcie ładuj tylko domyślną konfigurację, a pliki kolorów, bram i dodatków pobieraj przy pierwszym wyborze danej opcji.
  6. Nadaj plikom 3D nazwy z numerem wersji i ustaw dla nich nagłówek Cache-Control z długim czasem przechowywania (np. max-age=31536000, immutable), najlepiej z serwowaniem przez CDN.
  7. Powtórz test w PageSpeed Insights i na prawdziwym telefonie przez internet mobilny, a po kilku tygodniach sprawdź dane prawdziwych użytkowników w Search Console.

Jak sprawdzić, że zadziałało

W PageSpeed Insights dla telefonu elementem LCP jest obraz podglądu, a na liście pobranych plików przed kliknięciem nie ma biblioteki 3D ani modelu. Po kliknięciu „Skonfiguruj” konfigurator pokazuje postęp, a model pojawia się bez zawieszania strony. Przy drugiej wizycie pliki 3D pobierają się z pamięci podręcznej przeglądarki.

Usługa CodeScriptum

Konfigurator 3D na stronę

od 3 500 zł netto

  • Model 3D produktu z wymiarami, kolorami i dodatkami
  • Cena na żywo z Twojego cennika i zapytanie z konfiguracją
  • Pełny kod u Ciebie, bez abonamentu

Najczęściej zadawane pytania

Czy konfigurator 3D obniża pozycję strony w Google?

Sam konfigurator nie, ale strona, która przez niego ładuje się wolno, ma gorsze Core Web Vitals, a te są jednym z sygnałów branych pod uwagę przez Google. Ważniejszy skutek to klienci, którzy zamykają stronę, zanim zobaczą produkt.

Dlaczego PageSpeed nie pokazuje konfiguratora jako elementu LCP?

Bo element canvas, na którym rysuje się model 3D, nie jest uwzględniany przy LCP. Wynik liczy się od innego elementu, np. nagłówka lub zdjęcia, dlatego w pierwszym ekranie warto mieć lekki obraz podglądu.

Czy ładowanie konfiguratora po kliknięciu nie zniechęci klientów?

Zwykle nie, jeśli obraz podglądu pokazuje produkt, a przycisk jasno mówi, co się stanie. Klient od razu widzi garaż czy altanę i cenę „od”, a na model czeka dopiero wtedy, gdy sam chce go skonfigurować.

Jak duży może być plik modelu w konfiguratorze?

Nie ma jednej granicy, bo liczą się też liczba trójkątów, tekstury i czas rozpakowania. Praktyczny test to telefon średniej klasy na internecie mobilnym: model powinien pojawić się po kliknięciu na tyle szybko, żeby klient nie zaczął szukać innej strony.

Iframe czy konfigurator osadzony bezpośrednio na stronie?

Oba mogą być szybkie, jeśli konfigurator nie startuje razem ze stroną. Iframe łatwiej osadzić z innej domeny, ale trudniej dopasować jego wysokość i mierzyć zdarzenia, dlatego gdy to możliwe, lepiej osadzić konfigurator bezpośrednio.

Pojęcia w tym artykule

Źródła

  1. Largest Contentful Paint (web.dev) (otwiera się w nowej karcie) web.dev
  2. Optymalizacja LCP (web.dev) (otwiera się w nowej karcie) web.dev
  3. Leniwe ładowanie ramek iframe (web.dev) (otwiera się w nowej karcie) web.dev
  4. Intersection Observer API (MDN Web Docs) (otwiera się w nowej karcie) developer.mozilla.org
  5. Nagłówek Cache-Control (MDN Web Docs) (otwiera się w nowej karcie) developer.mozilla.org
  6. PageSpeed Insights (otwiera się w nowej karcie) pagespeed.web.dev

Podobne problemy

O autorze

Bartosz Gromek

Założyciel CodeScriptum, technologia i rozwój

Założyciel CodeScriptum - firmy technologicznej z Łodzi, działającej od 2022 roku. Odpowiada za technologię i rozwój, a projekty realizuje razem z zespołem specjalistów od stron, sklepów internetowych, systemów CRM, integracji, AI i marketingu. Na blogu opisuje problemy, z którymi zgłaszają się klienci CodeScriptum, i sprawdzone sposoby ich rozwiązania.

Newsletter

Konkretne porady raz na jakiś czas

Nowe problemy i rozwiązania z bloga, zmiany w przepisach dla sklepów i stron oraz sprawdzone sposoby na więcej klientów z internetu. Bez spamu, wypis jednym kliknięciem.