Za dużo wtyczek WordPress - jak posprzątać?
Nie ma progu, po którym WordPress zwalnia. Jedna źle napisana wtyczka szkodzi bardziej niż dwadzieścia porządnych, więc pytanie nie brzmi ile, tylko które i po co. Sprzątanie ma dwa cele naraz. Pierwszy to wydajność, bo każda wtyczka dokłada zapytania i pliki. Drugi, ważniejszy, to bezpieczeństwo: nieaktualna wtyczka jest najczęstszą drogą włamania na WordPressa.
Ile wtyczek to za dużo?
Liczba sama w sobie nic nie znaczy. Znaczenie ma to, co wtyczka robi przy każdym wyświetleniu strony.
| Rodzaj wtyczki | Koszt wydajnościowy |
|---|---|
| Działająca tylko w panelu | praktycznie zerowy dla odwiedzających |
| Dokładająca skrypt na wszystkich podstronach | stały, na każdym wejściu |
| Odpytująca zewnętrzną usługę na żywo | zależny od cudzego serwera |
| Kreator stron | wysoki, dokłada kod do każdej strony |
| Zapisująca logi każdego zdarzenia | rośnie z czasem, obciąża bazę |
Praktyczny wniosek: pięćdziesiąt wtyczek działających w panelu jest mniej szkodliwe niż pięć odpytujących zewnętrzne usługi przy każdym wyświetleniu karty produktu.
Jak zmierzyć, która wtyczka spowalnia?
Zgadywanie po nazwach nie działa. Potrzebny jest pomiar.
Najprostsza metoda to porównanie czasu odpowiedzi przed i po wyłączeniu wtyczki, wykonane na kopii testowej witryny. Bardziej precyzyjne są narzędzia profilujące, które pokazują, ile czasu i ile zapytań przypada na każdą wtyczkę przy generowaniu konkretnej podstrony.
Mierz na tym szablonie, który ma ruch. Wtyczka nieobciążająca strony głównej potrafi dokładać sekundę na karcie produktu, bo dopiero tam się uruchamia.
Rekordzista, jakiego widzieliśmy, miał trzy wtyczki do formularzy, dwie do SEO i dwie do cache. Każda dołożona przez innego wykonawcę, żadna nieusunięta po zmianie koncepcji.
Krzysztof Czapnik, KC Mobile
Co usunąć w pierwszej kolejności?
- Duplikaty funkcji. Dwie wtyczki SEO, dwie do cache, dwa systemy formularzy. Zostaje jedna, reszta wychodzi.
- Wtyczki bez aktualizacji od ponad roku. To ryzyko bezpieczeństwa i pewny problem przy najbliższej zmianie wersji PHP.
- Narzędzia jednorazowe. Wtyczki do migracji, importu produktów, masowej zmiany adresów. Miały zadanie, wykonały je i zostały włączone na lata.
- Wtyczki zastępowalne linijką kodu. Dodanie skryptu analitycznego albo drobna zmiana wyglądu nie wymagają osobnej wtyczki z panelem ustawień.
- Nieaktywne, ale zainstalowane. Nie spowalniają, ale nadal są kodem na serwerze i nadal mogą mieć podatność.
Przy każdej pozycji zadaj jedno pytanie: co się stanie, jeśli ją wyłączę. Jeśli nikt w firmie nie potrafi odpowiedzieć, to zwykle znaczy, że nic.
Jak usuwać bezpiecznie?
1. Zrób kopię zapasową plików i bazy, sprawdzoną pod kątem odtwarzania
2. Spisz listę wtyczek z krótką notatką, za co odpowiada każda
3. Wyłączaj pojedynczo, nie hurtem, i po każdej sprawdzaj stronę główną, kartę produktu, formularz i koszyk
4. Odczekaj kilka dni przed usunięciem, bo część funkcji ujawnia się dopiero przy konkretnym działaniu klienta
5. Dopiero potem usuń wtyczkę i posprzątaj po niej dane
Największe ryzyko dotyczy wtyczek dodających typy treści albo pola dodatkowe. Ich usunięcie nie kasuje danych, ale sprawia, że przestają być widoczne, co wygląda jak utrata treści. Przy takich zawsze warto sprawdzić, czy dane są nadal w bazie, zanim ktoś wpadnie w panikę.
Sprzątanie po usuniętych wtyczkach
Usunięcie wtyczki rzadko usuwa jej dane. W bazie zostają ustawienia, wpisy tymczasowe, własne tabele i pola przypisane do treści.
Przy witrynie działającej kilka lat te resztki potrafią ważyć więcej niż same treści. Nie spowalniają dramatycznie, ale wydłużają kopie zapasowe, migracje i zapytania przeszukujące tabelę ustawień.
Kolejność jest zawsze ta sama: kopia zapasowa, potem usuwanie danych osieroconych, nigdy odwrotnie. Sprzątanie bazy bez kopii to najprostsza droga do nieodwracalnej straty, a różnica między osieroconym wpisem a potrzebnym bywa jedną literą w nazwie.
Szerszy kontekst porządków w bazie opisujemy w poradniku jak przyspieszyć wolną stronę.
Audyt wtyczek: co spisać przed sprzątaniem
Przegląd zaczyna się od listy, nie od usuwania. Dla każdej pozycji warto zanotować cztery rzeczy: co robi, kto z niej korzysta, kiedy była ostatnio aktualizowana i czy istnieje lżejsza alternatywa.
Taka lista zwykle sama układa się w trzy grupy. Pierwsza to wtyczki, bez których sklep albo strona przestaną działać: płatności, wysyłka, formularz kontaktowy, kopie zapasowe. Druga to wygoda redakcyjna, czyli narzędzia ułatwiające pracę, ale zastępowalne. Trzecia to pozostałości po decyzjach sprzed lat.
Grupa trzecia bywa zaskakująco duża. Według naszego cennika sam audyt wtyczek wchodzi w zakres podstawowej optymalizacji, czyli 500-1500 zł, i przy witrynie utrzymywanej kilka lat prawie zawsze zwraca się w postaci mniejszej liczby awarii po aktualizacjach.
Przy okazji sprawdź, które wtyczki mają wersję płatną z wygasłą licencją. Taka wtyczka działa, ale nie dostaje aktualizacji bezpieczeństwa, co jest gorsze niż jej brak.
Ile można zyskać?
Zależy od tego, co usuwasz. Wyłączenie wtyczki działającej tylko w panelu nie zmieni nic dla odwiedzających. Usunięcie kreatora stron z witryny, która i tak używa go na trzech podstronach, potrafi zmienić wynik wyraźnie.
Dane z naszych wdrożeń pokazują typowo 20-40% skrócenia czasu generowania strony po usunięciu dziesięciu do piętnastu zbędnych wtyczek. Największa część tego zysku pochodzi zwykle z dwóch, nie z całej dziesiątki.
Drugi zysk jest trudniejszy do zmierzenia, ale realny: mniej wtyczek to mniej aktualizacji, mniej konfliktów przy zmianie wersji PHP i mniejsza powierzchnia ataku. Przy witrynie utrzymywanej latami to oszczędność większa niż sam czas ładowania.
Warto policzyć to od strony czasu. Każda wtyczka wymaga sprawdzenia po aktualizacji, a przy czterdziestu pozycjach comiesięczny przegląd zajmuje pół dnia. Dane z naszych wdrożeń pokazują, że po ograniczeniu listy o połowę koszt utrzymania spada wyraźniej niż koszt hostingu, choć to ten drugi zwykle jest przedmiotem oszczędzania.
Czego nie usuwać
Nie usuwaj wtyczki bezpieczeństwa tylko dlatego, że coś kosztuje. Zamień ją na lżejszą albo przenieś ochronę na poziom serwera, ale nie zostawiaj witryny bez zabezpieczeń.
Nie kasuj wtyczki kopii zapasowych przed ustawieniem innego mechanizmu. To jedyna rzecz, której brak zauważysz dopiero wtedy, gdy będzie potrzebna.
Nie usuwaj wtyczek zgodności prawnej: banera zgody, deklaracji dostępności, mechanizmów RODO. Wydajność nie jest argumentem wobec obowiązku.
Nie wyłączaj wtyczki, od której zależy wygląd, w piątek po południu. To brzmi jak żart, ale połowa zgłoszeń awaryjnych, które dostajemy w weekend, zaczyna się właśnie tak.
Jak nie wrócić do punktu wyjścia
Sprzątanie jest jednorazowe, przyrost wtyczek ciągły. Po roku bez zasad lista wraca do poprzedniej długości.
Trzy zasady, które to zatrzymują: każda nowa wtyczka wchodzi z odpowiedzią na pytanie, co robi i kto z niej korzysta; wtyczka jednorazowa jest usuwana od razu po wykonaniu zadania; raz na kwartał ktoś przegląda listę i wyrzuca to, czego nikt nie używa.
Prowadzimy to jako część stałej opieki nad stroną WordPress razem z aktualizacjami i kopiami zapasowymi. Jeśli chcesz zacząć od przeglądu tego, co masz, napisz przez formularz na stronie kontakt - bezpłatną wstępną analizę odsyłamy w ciągu 24 godzin.
Korzyści
- Mierzymy, która wtyczka realnie obciąża, zamiast usuwać po nazwach
- Wyłączanie pojedynczo, z testem koszyka i formularzy po każdej zmianie
- Sprzątanie danych osieroconych w bazie, nie tylko usunięcie plików
- Mniej wtyczek to także mniejsza powierzchnia ataku i mniej konfliktów przy aktualizacjach