Optymalizacja

Nieużywany JavaScript - co to jest i jak go wyciąć

Kod JavaScript, który strona pobiera i parsuje, ale nigdy go nie używa - częsta przyczyna wolnego ładowania.

Aktualizacja:
Krótka odpowiedź

Nieużywany JavaScript to kod, który przeglądarka pobiera, ale strona faktycznie nie wykorzystuje przy bieżącym ładowaniu. Najczęściej są to pozostałości po starych wtyczkach, nieaktywnych skryptach marketingowych albo polyfille dla przeglądarek, których dziś nikt nie używa. Typowo można wyciąć 30-60% kodu, redukując rozmiar bundla o setki kilobajtów.

Kluczowe fakty
Lighthouse audit unused-javascript
Typowy zysk 100 KB - 1 MB do oszczędzenia
Wpływa na metryki TBT, INP, LCP
Najczęstsza przyczyna Stare wtyczki + GTM ze starymi tagami

Co to jest nieużywany JavaScript?

Lighthouse mierzy, ile kodu JavaScript strona pobiera, ale nie wykorzystuje przy bieżącym ładowaniu. To często setki kilobajtów, które przeglądarka musi pobrać, sparsować i wykonać - całkowicie bez korzyści dla użytkownika.

Skąd się bierze nieużywany JS?

  • Pozostałości po starych wtyczkach (galerie, slidery, czaty live, których już nie używasz)
  • Skrypty marketingowe (Google Tag Manager z nieaktywnymi tagami, piksele FB ze starych kampanii)
  • Polyfille dla bardzo starych przeglądarek (IE), które dziś nie są potrzebne (zobacz Stary JavaScript)
  • Brak code splittingu - strona ładuje cały bundle frameworka zamiast tylko potrzebnego fragmentu

Jak to naprawić?

  1. Audyt wtyczek (WordPress: Asset CleanUp, Plugin Detective) - wyłącz nieużywane
  2. Przejrzyj GTM - wyrzuć tagi nieaktywnych kampanii
  3. Wdroż code splitting (webpack, Vite, esbuild robią to natywnie)
  4. Lazy loading komponentów - załaduj kod dopiero gdy użytkownik wejdzie w sekcję
  5. Differential serving - nowoczesny bundle dla nowych przeglądarek, fallback dla starych (tylko wtedy, gdy faktycznie potrzebny)

Najczęstsze pytania

Jak Lighthouse mierzy nieużywany JavaScript?
Lighthouse uruchamia stronę z włączonym coverage profiling w Chrome DevTools. Po załadowaniu strony i wykonaniu interakcji, sprawdza które linie kodu zostały wykonane, a które nie. Niewykonane = nieużywane. Pamiętaj, że to dotyczy tylko bieżącej ścieżki - kod używany na innych podstronach może być zliczony jako nieużywany.
Czy code splitting zawsze pomaga?
Code splitting pomaga, gdy aplikacja ma jasno oddzielone sekcje (np. panel admina vs strona klienta). Dla małych stron z jednym widokiem może wręcz zaszkodzić - dodatkowe HTTP requesty i overhead loadera. Generalna zasada: chunki powyżej 30 KB warto rozdzielić.
Co z bibliotekami typu Lodash, jQuery?
Lodash - zamiast `import _ from 'lodash'` używaj `import debounce from 'lodash/debounce'` (per-function import) lub przejdź na lodash-es. jQuery - zwykle można zastąpić natywnym JS (querySelectorAll, fetch, classList). Każda usunięta zewnętrzna biblioteka to 30-100 KB mniej.

Sprawdź swoją stronę

Wpisz adres swojej strony, w 30 sekund zobaczysz konkretną listę problemów do naprawy - wraz z wpływem na sprzedaż, SEO i koszty reklam.

Zacznij test →