Krótka odpowiedź
Błędy JavaScriptu po optymalizacji WordPressa diagnozuj przez odtworzenie niedziałającej funkcji i porównanie pojedynczych transformacji. Minifikacja, łączenie, defer, async oraz delay mają różne skutki.
Sprawdź Console, Network i zależności skryptów, a wykluczenie zastosuj dopiero po wskazaniu przyczyny. Incognito nie omija cache serwera.
Po optymalizacji JavaScriptu strona może wyglądać poprawnie, choć menu albo formularz już nie reaguje. Przyczynę znajdziesz szybciej, gdy rozdzielisz zmniejszanie kodu od zmiany kolejności i opóźniania jego wykonania. Poniższa procedura prowadzi od objawu do wąskiej poprawki oraz sprawdzenia działania.
W tym poradniku
Minifikacja, łączenie i opóźnianie to różne zmiany
Minifikacja zmniejsza zapis kodu, na przykład usuwając zbędne odstępy i komentarze. Łączenie skryptów zestawia zawartość kilku plików. Defer oraz async wpływają na pobieranie i wykonanie, natomiast delay zwykle odkłada uruchomienie do warunku ustalonego przez narzędzie, choćby interakcji. Jedna wtyczka może oferować kilka takich operacji pod wspólną nazwą optymalizacji.
| Operacja | Co trzeba sprawdzić przy awarii |
|---|---|
| Minify | Czy przetworzony plik ma poprawną składnię? |
| Combine | Czy połączenie zachowało granice i zależności? |
| Defer | Czy kod inicjalizujący nie uruchamia się za wcześnie? |
| Async | Czy skrypt może działać niezależnie od kolejności? |
| Delay | Czy funkcja jest dostępna przed pierwszą interakcją? |
Dla klasycznych zewnętrznych skryptów defer pozwala pobierać plik podczas parsowania dokumentu i wykonać go po zakończeniu parsowania. Async nie zapewnia kolejności wykonania między niezależnie pobieranymi plikami. Moduły JavaScript mają dodatkowe reguły, dlatego najpierw ustal typ zasobu. Taki podział pomaga znaleźć konkretną zmianę, zamiast przypisywać każdy błąd samemu zmniejszeniu pliku.
Podaj adres i wskaż, co działa wolno: otwieranie strony, panel czy konkretna funkcja. Jeśli masz wynik pomiaru, dołącz go. Ustalimy zakres diagnostyki przed wyborem rozwiązania. Opisz problem z szybkością
Zapisz objaw i przygotuj porównywalną próbę
Opisz funkcję, która przestała działać: menu, filtr, walidację albo przycisk dodawania produktu. Zapisz adres, urządzenie, rolę użytkownika i kolejność czynności. Ustal, czy błąd pojawia się po odświeżeniu, dopiero po przewinięciu, czy wyłącznie przy powrocie na stronę. Te różnice często wskazują moment inicjalizacji skryptu.
Zachowaj konfigurację optymalizacji i wersje komponentów sprzed poprawki. Na zabezpieczonej kopii wyłącz jedną transformację, odtwórz tę samą czynność i porównaj wynik. Jeżeli zmienisz równocześnie minifikację, łączenie oraz delay, odzyskasz działanie, ale nie dowiesz się, która opcja miała znaczenie.
Przy obsłudze WordPressa warto prowadzić krótki rejestr: hipoteza, zmiana, wynik i możliwość powrotu. Kopia testowa powinna mieć odizolowane wysyłki, płatności i analitykę. Próba formularza nie wymaga prawdziwego zgłoszenia do firmy, a kliknięcie testowego zakupu nie powinno zasilać produkcyjnych raportów sprzedaży.
Console i Network: znajdź pierwszy błąd oraz właściwy plik
Otwórz narzędzia przeglądarki przed odtworzeniem problemu. W Console zapisz pierwszy istotny błąd wraz z nazwą pliku i linią. Kolejne komunikaty mogą być skutkiem tego samego przerwania. ReferenceError sugeruje brak dostępnej nazwy, SyntaxError problem składni, a TypeError wymaga sprawdzenia wartości używanej w konkretnej operacji.
W Network sprawdź, czy zasób został pobrany, z jakim statusem i jaką treścią odpowiedzi. Plik kończący się na .js może w rzeczywistości zwrócić stronę logowania, komunikat zapory albo HTML błędu. Sam status 200 nie potwierdza poprawnego JavaScriptu. Porównaj również typ MIME, adres po przekierowaniu oraz informację o blokadzie przeglądarki.
Jeżeli błąd wskazuje wygenerowany pakiet, użyj map źródeł, o ile są dostępne, albo porównaj kod z wersją nieprzetworzoną. Plik widoczny w stosie wywołań nie zawsze jest źródłem problemu: mógł otrzymać niewłaściwe dane lub uruchomić się przed zależnością. Zapisz dowód łączący objaw z transformacją, zanim dodasz wykluczenie całej biblioteki.
Kolejność skryptów i zależności WordPressa
Sprawdź, czy skrypt korzysta z innej biblioteki, danych wpisanych w HTML albo elementu, który dopiero powstaje. Komunikat jQuery is not defined może oznaczać niewłaściwą kolejność, brak pobrania biblioteki lub nieprawidłowe odwołanie. Nie rozstrzyga samodzielnie, że jQuery trzeba wyłączyć ze wszystkich optymalizacji.
Dokumentacja wp_enqueue_script opisuje deklarowanie zależności i strategii defer lub async. WordPress uwzględnia drzewo zależności przy wyborze dopuszczalnej strategii. Dla własnego kodu jest to lepszy punkt wyjścia niż mechaniczne dopisywanie atrybutu do każdego znacznika skryptu.
Filtr zmieniający znacznik nosi nazwę script_loader_tag. Gdy istniejący projekt go używa, sprawdź zakres działania po identyfikatorze skryptu, zamiast stosować globalną zmianę. Zweryfikuj też skrypty inline powiązane z zewnętrznym plikiem. Odsunięcie biblioteki przy pozostawieniu wcześniejszego wywołania może przerwać funkcję. Zasady dodawania snippetów WordPressa obejmują również test zależności oraz drogę wyłączenia wadliwej poprawki.
Dobierz wąskie wykluczenie i potwierdź jego zakres
Po wskazaniu transformacji wyklucz tylko zasób lub regułę, które odpowiadają za potwierdzony problem. Format wykluczeń zależy od narzędzia: może to być fragment adresu, identyfikator albo dopasowanie treści. Sprawdź dokumentację używanej wersji i upewnij się, że zapis faktycznie trafia w oczekiwany plik.
Niektóre nazwy plików zawierają zmienny skrót wersji. Wykluczenie pełnej nazwy może przestać działać po aktualizacji, natomiast zbyt ogólny fragment obejmie znacznie więcej kodu. Obejrzyj wynikowy HTML i Network po zastosowaniu reguły. Panel z zapisanym ustawieniem nie dowodzi, że publiczna strona korzysta z nowej konfiguracji.
Jeśli problem wynika z błędu własnego kodu, poprawa zależności może być trwalsza niż wyjątek w optymalizatorze. Przy formularzu Ninja Forms oddziel działanie interfejsu od późniejszej akcji i transportu poczty. Naprawiony przycisk nie jest jeszcze dowodem doręczenia wiadomości. Każdy etap potrzebuje własnego odbioru.
Cache i wersje zasobów: unikaj mieszanej konfiguracji
Po zmianie reguły strona może nadal odwoływać się do wcześniejszego pakietu. Ustal, gdzie przechowywany jest HTML, gdzie wygenerowane skrypty, a gdzie kopia w przeglądarce. Tryb incognito tworzy odrębny kontekst przeglądania, lecz nie omija cache serwera lub CDN. Dlatego potrzebujesz kontroli faktycznie pobieranego adresu i zawartości.
Odświeżaj tylko warstwę powiązaną ze zmianą, zgodnie z mechanizmem narzędzia. Usunięcie wygenerowanych plików, kiedy stare HTML nadal je wskazują, może prowadzić do błędów pobierania. Bezpieczny przebieg zależy od sposobu publikacji: ważne, aby przez cały czas istniały zasoby wymagane przez obsługiwane wersje strony.
Porównaj gościa i użytkownika zalogowanego, jeśli otrzymują inne warianty. Sprawdź także stronę po ponownym wejściu oraz po wygaśnięciu cache. Jeżeli błąd występuje tylko czasami, zanotuj nagłówki, czas i adres pliku z nieudanej próby. Taki zapis jest bardziej przydatny niż kolejne czyszczenie wszystkiego bez ustalenia, która wersja została podana.
Coverage pomaga znaleźć kandydatów, nie zbędny kod całej witryny
Chrome Coverage pokazuje wykorzystanie kodu podczas zarejestrowanej próby. Uruchom nagrywanie przed załadowaniem strony, a następnie wykonaj ważne interakcje: otwarcie menu, wybór wariantu, błąd walidacji czy przejście między elementami. Zakres testu wpływa na wynik.
Fragment niewykonany podczas oglądania pierwszego ekranu może obsługiwać dopiero formularz, zgodę albo sytuację błędną. Zanim ograniczysz jego ładowanie, ustal funkcję i zależności. Usunięcie kodu na podstawie samego koloru w raporcie może poprawić liczbę w teście i jednocześnie odebrać użytkownikowi potrzebną czynność.
Porównuj rozwiązania na tej samej treści i scenariuszu. Mniejszy transfer nie musi oznaczać lepszej reakcji na pierwszy dotyk, jeżeli delay odkłada koszt wykonania właśnie do tego momentu. Szerszy pomiar opisuje poradnik szybkości sklepu WooCommerce. Funkcję i wydajność oceniaj łącznie, zachowując osobno wyniki laboratoryjne oraz dostępne dane użytkowników.
Odbierz poprawkę i zostaw instrukcję dalszej kontroli
Przetestuj pierwotny objaw, powiązane interakcje oraz najważniejsze warianty strony. Sprawdź telefon, klawiaturę, ponowne wejście i stany błędne. Jeżeli naprawa dotyczy wspólnego skryptu, obejrzyj także inne miejsca jego użycia. Brak komunikatu w Console nie zastępuje sprawdzenia efektu czynności.
W notatce końcowej zapisz przyczynę, zmienioną regułę, sprawdzony zakres i warunek ponownego testu po aktualizacji. Zachowaj krótkie uzasadnienie wykluczenia, aby kolejna osoba nie usunęła go jako przypadkowej pozostałości. Logi diagnostyczne przechowuj z ograniczonym dostępem, bez sekretów i niepotrzebnych danych użytkowników.
Naprawa WordPressa może objąć diagnozę oraz odbiór konkretnej ścieżki. Dalsze sprawdzanie po aktualizacjach można ustalić w małym pakiecie godzinowym, z indywidualnym zakresem i ewentualnym SLA. Przez kontakt KC Mobile podaj adres, niedziałającą funkcję i ostatnią zmianę. To wystarczy do ustalenia sensownego początku prac bez zgadywania listy wykluczeń.
Najczęściej zadawane pytania
Czy minifikacja i opóźnianie JavaScriptu oznaczają to samo?
Co oznacza błąd jQuery is not defined?
Czy incognito wyklucza wpływ cache na błąd skryptu?
Czy niewykorzystany kod w Coverage można usunąć?
Czy trzeba wykluczyć całe WooCommerce z minifikacji?
Strona nadal działa zbyt wolno?
Podaj adres i wskaż, co działa wolno: otwieranie strony, panel czy konkretna funkcja. Jeśli masz wynik pomiaru, dołącz go. Ustalimy zakres diagnostyki przed wyborem rozwiązania.