Optymalizacja aplikacji WordPress – konfiguracja bazowa i testy
WordPress to jedno z najczęściej wykorzystywanych rozwiązań do tworzenia stron internetowych i sklepów online. Mimo swoich zalet, w tym łatwości użycia i elastyczności, domyślna konfiguracja WordPressa rzadko kiedy jest zoptymalizowana pod kątem wydajności. Odpowiednia optymalizacja – zarówno na poziomie aplikacji, jak i serwera – może znacząco poprawić czas ładowania stron, wydajność backendu oraz ogólne doświadczenie użytkownika.
Przygotowanie środowiska testowego
Dla pokazania efektów pracy zostało przygotowane środowisko testowe z zainstalowanym WordPressem w panelu hostingowym.
Przygotowane środowisko testowe na współdzielonym koncie hostingowym posiadało wdrożone WooCommerce oraz zaimportowane dane dla przykładowego sklepu. W rezultacie powstała standardowa instalacja WordPress z kilkoma przykładowymi produktami i podstronamistronami (m.in. /cart
, /shop
, /product/*
).
Na tym etapie nie była aktywna wtyczka LiteSpeed Cache
Testy wydajności – konfiguracja początkowa
Do przeprowadzenia testów obciążeniowych można wykorzystać narzędzie Locust, które pozwala na symulację ruchu wielu użytkowników na stronie. Skonfigurowano test dochący do 3000 równocześnie działających użytkowników, przy ramp-upie 100 użytkowników na sekundę.
Pomiar wydajności można uzyskać za pomocą narzędzia GTmetrix. Testy przeprowadzono dla trzech kluczowych podstron:
https://doku2.joton.dev/
https://doku2.joton.dev/index.php/cart/
https://doku2.joton.dev/index.php/product/beanie/
Locust – test wydajności
Strona | Średni czas (ms) | Maksymalny czas (ms) |
---|---|---|
/ (Strona główna) | 77 | 298 |
/cart/ | 100 | 210 |
/product/* | ~150–157 | ~230 |
Metryka | Wartość |
---|---|
Liczba użytkowników | 3000 |
Odsetek błędów | ~52% |
Użytkownicy < 1s | ~50% |
GTmetrix – szybkość ładowania
Strona | LCP (ms) | Fully Loaded (ms) | Page Size | Requests | Ocena |
---|---|---|---|---|---|
/ | 588 | 727 | 249 KB | 22 | A |
/index.php/cart/ | 575 | 647 | 294 KB | 27 | A |
/index.php/product/beanie/ | 1400 | 1500 | 277 KB | 29 | A |
Wyniki pomiarów początkowych przedstawiają sie w powyższy sposób, aczkolwiek wprowadzając kilka zmian można przyspieszyć działanie strony.
Podstawowa optymalizacja WordPress
WordPress posiada kilka wbudowanych opcji, które pozwalają ograniczyć liczbę zapytań do serwera oraz przyspieszyć działanie panelu administracyjnego – bez potrzeby instalowania dodatkowych wtyczek.
Lokalizacja pliku wp-config.php na hostingu
Aby wprowadzić zmiany konfiguracyjne bezpośrednio w pliku wp-config.php, należy odnaleźć go w katalogu instalacyjnym WordPressa. Wygląda to następująco:
-Zalogować się do panelu klienta hostingu i przejść do Menadżera plików.
-W katalogu swojej strony wejść do folderu public_html
-W katalogu głównym public_html znajduje sie plik wp-config.php.
Optymalizacja przez wp-config.php
W pliku wp-config.php należy dodać następujące linie:
// Optymalizacja skryptów
define('CONCATENATE_SCRIPTS', true);
define('COMPRESS_SCRIPTS', true);
define('COMPRESS_CSS', true);
// Wyłączenie niepotrzebnych funkcji
define('DISABLE_WP_CRON', true);
define('AUTOMATIC_UPDATER_DISABLED', true);
Dzięki tym ustawieniom WordPress wykorzystuje mniej zasobów serwera i działa sprawniej – szczególnie w środowiskach z większym ruchem lub z wieloma wtyczkami.
Wyłączenie wbudowanego WP-Crona
Domyślnie WordPress uruchamia zaplanowane zadania przy każdym wejściu użytkownika na stronę, co może generować niepotrzebne opóźnienia.
Aby temu zapobiec, w pliku wp-config.php dodano:
define('DISABLE_WP_CRON', true);
Usunięcie nieużywanych wtyczek
W panelu WordPress (zakładka: Plugins) dezaktywowane i usunięte zostały wszystkie niepotrzebne wtyczki. Pozostawiono jedynie niezbędne komponenty, takie jak WooCommerce, niezbędny do działania sklepu.
Optymalizacja HTML, CSS i JS (Autoptimize)
Zainstalowano i skonfigurowano wtyczkę Autoptimize w celu minimalizacji kodu źródłowego strony:
- Włączono optymalizację kodu JavaScript, CSS i HTML.
- Aktywowano defer dla JS (opóźnienie ładowania).
- Wyłączono agregację plików CSS i JS – z uwagi na możliwe problemy z kompatybilnością.
- Wyłączono minifikację kodu inline oraz komentarzy HTML.
Konfiguracja została wykonana ostrożnie, z naciskiem na poprawność działania strony.
Optymalizacja obrazów (EWWW Image Optimizer)
Do kompresji i ładowania obrazów zastosowano wtyczkę EWWW Image Optimizer:
- Włączono usuwanie metadanych EXIF.
- Włączono Lazy Load (leniwe ładowanie) wraz z automatycznym skalowaniem.
- Zdefiniowano maksymalne wymiary grafik (19201080px).
- Włączono konwersję do formatu WebP.
Dodatkowo, w ustawieniach Media Settings WordPressa ograniczono domyślne rozmiary generowanych grafik:
- Thumbnail: 150x150px
- Medium: 300x300px
- Large: 1024x1024px
Efekty po podstawowej optymaizacji
Po wykonaniu podstawowej optymalizacji WordPressa, możemy wykonać testy jescze raz.
GTmetrix
Strona | LCP (ms) | Fully Loaded (ms) | Requests | Ocena |
---|---|---|---|---|
/ | 569 | 696 | 23 | A |
/index.php/cart/ | 554 | 643 | 28 | A |
/index.php/product/beanie/ | 611 | 789 | 30 | A |
Locust
Strona | Średni czas (ms) | Maksymalny czas (ms) | Liczba żądań |
---|---|---|---|
/ | 92.57 | 172 | 1009 |
/cart/ | 107.96 | 213 | 270 |
/product/beanie/ | 118.23 | 193 | 122 |
Strona ładuje się szybciej, a czasy odpowiedzi utrzymują się na poziomie 100–160 ms. Brak błędów.
Optymalizacja krok 2: LiteSpeed Cache + Redis
W ramach zaawansowanej optymalizacji można się wdrożyć systemy buforowania na poziomie obiektów i zawartości za pomocą wtyczki LiteSpeed Cache oraz Redis Object Cache.
Włączenie LiteSpeed Cache
- Zainstalowano i aktywowano wtyczkę LiteSpeed Cache.
- W menu WordPressa → LiteSpeed Cache → General włączono opcję Enable LiteSpeed Cache.
- W zakładce Cache pozostawiono domyślne ustawienia.
- W zakładce Object:
- Włączono Object Cache,
- Ustawiono metodę: Redis,
- Host:
127.0.0.1
, port:6379
.
Konfiguracja Redis
- W panelu hostingu (Joton.io) włączono usługę Redis z poziomu ustawień strony (zakładka
Zaawansowane → Redis
). - Redis został aktywowany jako serwer lokalny (127.0.0.1:6379), bez hasła, działający w kontenerze PHP.
- W WordPressie zainstalowano i aktywowano wtyczkę Redis Object Cache oraz należy kliknąć Enable Object Cache.
- Jeśli wszystko działa powinno być widać status jako Connected na zielono.
Testy końcowe
GTmetrix
Strona | LCP (ms) | Fully Loaded (ms) | Requests | Ocena |
---|---|---|---|---|
/ | 407 | 601 | 23 | A |
/index.php/cart/ | 537 | 608 | 28 | A |
/index.php/product/beanie/ | 460 | 595 | 30 | A |
Locust
Strona | Średni czas (ms) | Maksymalny czas (ms) | Liczba żądań |
---|---|---|---|
/ | 56.06 | 102 | 1039 |
/cart/ | 105.96 | 205 | 276 |
/product/beanie/ | 86.41 | 141 | 122 |
Przeprowadzone działania znacząco poprawiły szybkość działania strony opartej na WordPressie. Zoptymalizowany WordPress jest szybszy, stabilniejszy i bardziej efektywny – szczególnie w środowisku WooCommerce.