Sklep reaguje z opóźnieniem po kliknięciu? Jak znaleźć winny skrypt (INP w WooCommerce)

Dłonie trzymające smartfon podczas zakupów w sklepie internetowym

Jeśli sklep na WooCommerce reaguje z opóźnieniem na wybór wariantu, dodanie do koszyka czy kliknięcie filtra, winny jest zwykle wynik INP (Interaction to Next Paint), czyli czas od kliknięcia do widocznej reakcji strony. Dobry wynik to 200 ms lub mniej. Najczęściej psują go ciężki JavaScript z page buildera i wtyczek, skrypty marketingowe oraz zbyt rozbudowany kod strony. Winny skrypt da się znaleźć w pięciu krokach, zanim zaczniesz myśleć o przebudowie.

INP w trzech zdaniach

INP jest jednym z trzech wskaźników Core Web Vitals i 12 marca 2024 r. zastąpił FID. W przeciwieństwie do FID liczy nie tylko pierwsze kliknięcie, ale kliknięcia, dotknięcia i naciśnięcia klawiszy przez całą wizytę, i raportuje jedno z najwolniejszych. Ocenę liczy się dla 75. percentyla wizyt (definicja na web.dev).

Wynik INP Ocena Google Co czuje klient
do 200 ms dobry strona reaguje natychmiast
200-500 ms wymaga poprawy wyczuwalne „zawahanie” po kliknięciu
powyżej 500 ms słaby klient klika drugi raz, bo myśli, że nic się nie stało

Sklep ma dziesiątki interakcji na każdej ścieżce zakupu, strona firmowa kilka. Według Web Almanac 2025 dobry INP ma 97% stron na komputerach, ale tylko 77% na telefonach, a sklepy z natury wykonują więcej JavaScriptu. Pełne Core Web Vitals na telefonach zaliczało w 2025 r. około 45% stron na WordPressie (rozdział o CMS).

Krok 1: sprawdź dane od prawdziwych klientów

Wpisz adres karty produktu w PageSpeed Insights i patrz na górną sekcję z danymi od użytkowników (Chrome UX Report, ostatnie 28 dni). Przy małym ruchu narzędzie pokaże dane dla całej domeny albo nie pokaże ich wcale. W Google Search Console raport „Podstawowe wskaźniki internetowe” grupuje podobne adresy, więc od razu widać, czy problem mają karty produktów, kategorie czy koszyk.

Nie kieruj się wynikiem 0-100. Pochodzi z testu laboratoryjnego, w którym nikt nic nie klika, więc INP w ogóle w nim nie ma. Najbliżej jest TBT (Total Blocking Time): wysoki TBT to dobry trop, ale sklep z zielonym wynikiem może mieć słaby INP u klientów.

Krok 2: odtwórz kliknięcie na telefonie

Przejdź ścieżkę zakupu na przeciętnym telefonie albo w Chrome na komputerze z włączonym spowolnieniem procesora (narzędzia deweloperskie, panel Performance, ustawienie CPU 4x slowdown). Panel Performance pokazuje INP na żywo dla każdego kliknięcia. Sprawdź po kolei:

  • decyzję w banerze cookies,
  • otwarcie menu i wyszukiwarki,
  • filtr i sortowanie w kategorii,
  • wybór wariantu na karcie produktu,
  • „Dodaj do koszyka” i otwarcie mini-koszyka,
  • zmianę ilości i kod rabatowy w koszyku,
  • pola checkoutu i wybór dostawy.

Krok 3: rozłóż najwolniejszą interakcję na części

Każda interakcja ma trzy etapy i każdy ma inne przyczyny. Opóźnienie na wejściu: przeglądarka jest zajęta czymś innym, na przykład skryptem reklamowym, który akurat się załadował. Przetwarzanie: wykonuje się kod podpięty pod kliknięcie, na przykład przeliczenie ceny wariantu, odświeżenie mini-koszyka czy zdarzenie analityki. Wyświetlenie: przeglądarka przerysowuje stronę, a im więcej elementów w kodzie, tym dłużej.

Przykład: klient wybiera kolor sofy, a w tym samym momencie ładują się czat, piksel reklamowy i mapa ciepła. Przeglądarka najpierw kończy ich pracę, dopiero potem zmienia zdjęcie i cenę. Panel Performance pokaże to jako długie opóźnienie na wejściu, a nie jako wolny kod wariantów.

Krok 4: dopasuj przyczynę

Przyczyna Gdzie ją widać Co zrobić
Page builder z dziesiątkami dodatków wszędzie, szczególnie na telefonach wyłączyć nieużywane moduły, uprościć szablony karty i kategorii
Piksele, mapy ciepła, czat, recenzje pierwsze kliknięcia po wejściu przegląd tagów w GTM, czat ładowany po kliknięciu ikony
Ciężki baner cookies kliknięcie „Akceptuję” lżejsze narzędzie, mniej tagów odpalanych w chwili zgody
Filtry odświeżane przy każdym znaku kategorie, wyszukiwarka zapytanie dopiero, gdy klient przestanie pisać, lżejsza wtyczka filtrów
Setki wariantów na stronie wybór wariantu ograniczyć dane wariantów ładowane od razu
Cart fragments na każdej podstronie dodanie do koszyka, każda strona sprawdzić, czy motyw nie włącza go na siłę
Brak natychmiastowej reakcji „Dodaj do koszyka”, płatność od razu stan przycisku lub wskaźnik ładowania

Warianty. WooCommerce wczytuje dane wszystkich wariantów na stronę produktu, jeśli jest ich 30 lub mniej, a powyżej pobiera je z serwera po wyborze opcji. Część wtyczek do próbek kolorów podnosi ten próg i na stronę trafiają setki wariantów naraz.

Cart fragments. Od wersji 7.8 WooCommerce ładuje skrypt odświeżający koszyk tylko tam, gdzie jest widżet koszyka (WooCommerce Developer Blog). Starsze motywy i niektóre wtyczki włączają go z powrotem wszędzie.

Mini-koszyk. W wersji 10.4 blok mini-koszyka przeszedł na lżejsze Interactivity API (informacja o wydaniu). Korzystają z tego sklepy na motywach blokowych.

Tagi przy kliknięciu. „Dodaj do koszyka” często odpala naraz analitykę, piksele i remarketing, dokładnie wtedy, gdy klient czeka na reakcję przycisku. Przegląd tego, co naprawdę jest potrzebne, zwykle daje szybki efekt bez zmian w samym sklepie.

Krok 5: zmierz efekt

Po wdrożeniu przejdź ścieżkę zakupu jeszcze raz, bo zmiany w skryptach potrafią zepsuć pomiar konwersji albo zgody. Dane od użytkowników obejmują 28 dni, więc pełny efekt w PageSpeed Insights i Search Console zobaczysz po około miesiącu. Przy większym ruchu warto zbierać INP na stałe biblioteką web-vitals od Google, która raportuje też, który element kliknięto.

Łatać czy przebudować

Jeśli problem to kilka ciężkich tagów i wtyczek, poprawki zamykają się w krótkim zakresie prac. Jeśli sklep stoi na page builderze z kilkudziesięcioma dodatkami i starym motywie, łatanie INP staje się walką z całą architekturą. Wtedy lepszy bywa lżejszy motyw razem z przejściem na HPOS i blokowy checkout. INP warto sprawdzać po każdej nowej wtyczce i każdym nowym pikselu, a nie raz w roku. Jeśli chcesz, żebyśmy przeszli ścieżkę zakupu w Twoim sklepie, podaj nam jego adres.