Wiesz, co najbardziej spowalnia dzisiejsze strony internetowe? Nie filmy, nie animacje, tylko zwykły nieużywany kod CSS. Reguły, które kiedyś miały sens, pozostałości po wtyczkach, albo style, których projektant nie usunął. Niby niewidoczne, a potrafią zwiększyć czas ładowania strony i rozwalić cały audyt wydajności w PageSpeed Insights czy Lighthouse.
Cały proces usuwania nieużywanego kodu CSS sprowadza się do przejrzenia i wyczyszczenia nadmiarowych linijek, zastosowania narzędzi do analizy stylów, a potem wdrożenia zoptymalizowanego arkusza na produkcji. Dzięki temu zmniejszamy rozmiar pliku, skracamy ładowanie zasobów i poprawiamy komfort użytkownika końcowego. To działanie daje realny i mierzalny efekt – szybsza witryna = lepsze pozycje SEO. Jeśli chcesz zrobić to porządnie, warto przy okazji zerknąć na nasze realizacje stron www, bo to podejście mamy u siebie wpisane w DNA.
Całość opracowałem w 5 krokach – jeśli przejdziesz je spokojnie, sam ogarniesz swoje arkusze stylów:
- Krok 1: Analiza bieżącego kodu i identyfikacja nieużywanego CSS
- Krok 2: Narzędzia i metody do czyszczenia CSS
- Krok 3: Wdrażanie krytycznego CSS i optymalizacja ładowania
- Krok 4: Automatyzacja procesu i testowanie efektów
- Krok 5: Utrzymanie i monitoring zoptymalizowanego CSS
A jeśli chcesz poznać szczegóły i zobaczyć, jak to zrobić krok po kroku – czytaj dalej.

Krok 1: Analiza bieżącego kodu i identyfikacja nieużywanego CSS
Pierwszym etapem jest zawsze audyt wydajności. Używam do tego narzędzi deweloperskich w przeglądarce, które pokazują, jak wygląda faktyczne renderowanie strony i które style faktycznie sterują jej wyglądem. Warto sprawdzić widok desktop i mobilny – bo często przy media queries potrafi to zaskoczyć.
Następnie odpalam PageSpeed Insights i Lighthouse. Te narzędzia nie tylko mówią o samych wynikach, ale często wskazują konkretny plik arkusza stylów, w którym jest problem. Dzięki temu wiem, czy mam pracować nad całym frameworkiem CSS, biblioteką, czy raczej nad pojedynczym kodem niestandardowym.
Ostatni krok analizy to manualna weryfikacja – czy na stronie faktycznie występują elementy, do których odnoszą się dane selektory CSS. Tak, to żmudne, ale bez tego łatwo usunąć coś, co jednak jest potrzebne. Na tym etapie można stworzyć tabelę wszystkich zbędnych stylów.
| Element | Status użycia | Źródło | Plik | Komentarz |
|---|---|---|---|---|
| .btn-old | nieużywany | stary motyw | style.css | pozostałość po redesignie |
| .gallery | używany | plugin | plugin.css | aktywne na stronie |
| #promo-banner | nieużywany | landing | custom.css | nie ma w DOM |
| .widget-footer | nieużywany | motyw | footer.css | usunięty widget |
| .hero-slider | używany | wtyczka slide | slider.css | kluczowy komponent |
Dobrym uzupełnieniem tego procesu jest integracja z bardziej zaawansowanymi narzędziami – i tu świetnie sprawdzi się np. optymalizacja kodu JS w WordPress, która często idzie w parze z czyszczeniem CSS.
Krok 2: Narzędzia i metody do czyszczenia CSS
Na tym etapie wchodzimy z cięższą artylerią – gotowe narzędzia do optymalizacji. Najczęściej korzystam z PurgeCSS, UnCSS albo wtyczek dostępnych w ekosystemie WordPress, jak Asset CleanUp. Te narzędzia sprawdzają strukturę DOM i automatycznie usuwają style, które w danym widoku nigdy się nie odpalają. Dzięki temu poziom manualnej pracy drastycznie spada.
Warto też pomyśleć o prostszych technikach – np. dzieleniu arkusza stylów na pliki bazowe i dodatkowe zależne od funkcji. Oddzielny styl dla “oferty”, inny dla “koszyka”, a jeszcze inny dla bloga. To podejście sprawdza się zwłaszcza w systemach typu WordPress i innych systemach zarządzania treścią.
Czyszczenie ręczne vs automatyczne
Ręczne wycinanie stylów bywa skuteczniejsze, ale ryzykowne. Automatyzacja oszczędza godziny, jednak wymaga testów. Najlepiej zawsze połączyć jedno i drugie – ręczna ingerencja w kluczowych miejscach, reszta zostawiona algorytmom.
Optymalizacja mobilna
Pamiętaj, że optymalizacja mobilna wymaga szczegółowej weryfikacji – czasem style “puste” w desktopie, okazują się krytyczne przy rozbiciu na mniejsze ekrany. Nigdy nie usuwaj reguł media queries bez dokładnego sprawdzenia.
Eliminacja zbędnych reguł
Jeżeli trzymasz biblioteki front-endowe tylko dlatego, że używasz dwie linijki z Bootstrapa – może po prostu przenieś te linijki do stylów inline i pozbądź się całego frameworka.
Narzedzia deweloperskie w akcji
Podgląd w czasie rzeczywistym? Odpal Chrome DevTools → Coverage → zobacz, które style się ładują, a które leżą bezużytecznie. To moje ulubione rozwiązanie, bo od razu widać realny procent nieużywalności.
Wszystko, co przejdzie przez ten proces, możesz od razu przekształcić w krytyczny CSS – a jak chcesz wiedzieć więcej, koniecznie sprawdź wdrażanie critical CSS w praktyce.

Krok 3: Wdrażanie krytycznego CSS i optymalizacja ładowania
Prawdziwa różnica zaczyna się dopiero tu – kiedy wydzielisz krytyczny CSS i załadujesz go od razu w nagłówku. Dzięki temu czas odpowiedzi serwera i pierwszy render strony skraca się o setki milisekund. Najlepsze w tym jest to, że użytkownik widzi stronę w pełni ułożoną zanim jeszcze doczytają się resztki stylów.
Wdrażam to zazwyczaj ręcznie – kopiuje wybrane reguły i osadzam jako styl inline w kodzie HTML. To rozwiązanie mega skuteczne, ale działa tylko wtedy, gdy naprawdę rozumiesz, które reguły są absolutnie konieczne. Pozostałą część stylów chowam w plikach ładowanych asynchronicznie.
Tu fajnie sprawdzają się też mechanizmy cache’owania – raz wyliczony krytyczny CSS trzymamy na serwerze jako statyczny blok. Dzięki temu wydajność jest stabilna. Całość warto dodatkowo przepuścić przez kompresję plików.
| Rodzaj CSS | Metoda ładowania | Zalety | Wady | Użycie |
|---|---|---|---|---|
| Krytyczny CSS | inline | szybki render | większy HTML | niewielki fragment stylów |
| Reszta CSS | defer/asynchroniczne | opóźnione obciążenie | może migotać | duże pliki |
| Framework | oddzielny plik | modułowość | balast kodu | projekty legacy |
| Dynamiczne style | JS injection | elastyczność | większy czas renderu | SPA i PWA |
| Niestandardowy CSS | dedykowany plik | pełna kontrola | trzeba pilnować | projekty custom |
Implementacja krytycznego CSS ma największy wpływ na UX/UI i wyniki testów A/B – dlatego nie lekceważ tego etapu. Jeśli chcesz dodatkowo zoptymalizować skrypty, zajrzyj na ładowanie JS asynchronicznie, bo to gra w tej samej drużynie.
Krok 4: Automatyzacja procesu i testowanie efektów
Na tym etapie możemy wprowadzić automaty. Jeśli Twoja strona oparta jest o procesy CI/CD, dopisz krok do pipeline – narzędzia typu PurgeCSS przelecą po każdym buildzie i zostawią tylko aktywny kod. To oszczędza godziny pracy przy każdej aktualizacji motywu.
Profilowanie kodu
Po każdej zmianie wykonuję profilowanie kodu i porównuję wyniki z poprzednimi buildami. Najważniejsze wskaźniki? Zmniejszenie wagi plików statycznych, krótszy czas ładowania strony i brak różnic w wizualnym odbiorze strony.
Zgodność międzyprzeglądarkowa
Automatyzacja nie zwalnia z testów. Trzeba sprawdzić zgodność międzyprzeglądarkową – reguły CSS potrafią działać różnie w Chrome, Safari i Edge. Czasem warto użyć fallbacków zamiast kasowania.
Aktualizacja motywów i bibliotek
Przy aktualizacjach wracają stare linijki kodu. Dlatego testuję wszystko na stagingu i dopiero potem puszczam do produkcji. Dzięki temu łatwo uniknąć błędów typu niedziałający formularz.
Czy to dużo pracy? Tak. Ale kiedy widzę, że moja strona wbija 90+ w PageSpeed, wiem, że było warto.
A jeżeli chcesz ogarnąć jeszcze inne obszary, polecam optymalizację fontów – świetnie uzupełnia temat CSS.

Krok 5: Utrzymanie i monitoring zoptymalizowanego CSS
Sam fakt, że raz oczyścisz arkusze, nie daje gwarancji że zostanie tak na zawsze. Każda nowa wtyczka, zmiana motywu, a nawet modyfikacja treści może dodać kolejne style. Dlatego konieczne jest cykliczne powtarzanie analizy.
Na bieżąco warto też uruchomić monitoring – narzędzia takie jak GTmetrix albo Pingdom pozwalają na śledzenie zmian w czasie ładowania strony i informują, jeśli statyczne pliki nagle zaczynają przybierać na wadze. To sygnał, że trzeba wrócić do czyszczenia.
Nie chodzi o obsesję – wystarczy raz na kwartał sprawdzić, jak wygląda kod front-endowy i czy nie pojawiły się nowe śmieci. Możesz też zaimplementować logikę automatycznego testu w CI/CD. Jeśli chcesz pójść krok dalej, zerknij na preconnect i DNS-prefetch, bo to ostatni szlif dla jeszcze szybszej witryny.
Jak utrzymać szybkie strony na długo
Cała sztuka nie w samym jednorazowym czyszczeniu, ale w podejściu procesowym. Zadbane arkusze CSS sprawiają, że Twoja strona działa stabilnie, a klienci nie uciekają z powodu wolnego wczytywania. To właśnie różnica między „ładną stroną” a profesjonalnym narzędziem do sprzedaży.
I tu pojawia się pytanie – kto Ci to zrobi szybciej i taniej niż my? Jeśli myślisz o nowych realizacjach, zobacz projektowanie stron internetowych w Zielonej Górze – robimy to tak, żeby nie psuć Twojego SEO, tylko je wzmacniać.
FAQ – najczęstsze pytania o usuwanie nieużywanego CSS
Czy usuwanie nieużywanego CSS może uszkodzić stronę?
Tak, jeśli robi się to bez testów – można przypadkiem usunąć style, które działają np. tylko w konkretnym przypadku. Dlatego zawsze rób backup.
Jak często trzeba przeprowadzać analizę CSS?
Najlepiej raz na kwartał, a na pewno po każdej aktualizacji motywu lub instalacji nowej wtyczki.
Czy istnieją wtyczki do WordPress, które robią to automatycznie?
Tak – Asset CleanUp, Perfmatters, WP Rocket mają opcje czyszczenia i zarządzania plikami CSS.
Czy Google premiuje strony z mniejszym CSS?
Bezpośrednio nie, ale szybciej ładująca się strona poprawia Core Web Vitals, a to mocno wspiera SEO.
Czy frameworki CSS jak Bootstrap zawsze spowalniają?
Nie zawsze, ale jeśli używasz 2% frameworka, to reszta kodu to absolutny balast – lepiej go uprościć.
Czy można usunąć CSS tylko z wybranych podstron?
Tak – pluginy pozwalają ładować style selektywnie, zależnie od widoku. To świetne rozwiązanie w serwisach z dużą ofertą.
Co z dynamicznymi stylami ładowanymi przez JavaScript?
Ich nie widać w prostych narzędziach, więc analizy trzeba robić także z włączonymi interakcjami strony (np. otwieranie dropdownów).




