Przejdź do treści
WordPress i Strony WWW

WordPress wolno się ładuje - diagnoza i naprawa wolnego WordPressa w 2026

Publikacja: Aktualizacja:
Przejdź do rozwiązania
Jasna ilustracja pracy nad stroną WordPress

Krótka odpowiedź

Jeśli WordPress wolno się ładuje, najpierw sprawdź w narzędziach przeglądarki, czy opóźnienie dotyczy odpowiedzi HTML, pobierania zasobów czy reakcji na kliknięcie. Porównaj ten sam adres w jednakowych warunkach i zapisz wynik.

Następnie badaj wskazaną warstwę: serwer, cache, obrazy lub kod. Zmiany wtyczek i konfiguracji testuj na zabezpieczonej kopii, pojedynczo, z możliwością cofnięcia.

Wolny WordPress może długo czekać na odpowiedź serwera, późno wyświetlać główny obraz albo zacinać się dopiero po kliknięciu. Każdy z tych objawów wymaga innego sprawdzenia. Instalacja kolejnej wtyczki optymalizacyjnej przed pomiarem utrudnia ustalenie przyczyny. Zacznij od konkretnego adresu i czynności, którą wykonuje użytkownik. Poniższa kolejność pozwala zebrać punkt odniesienia, wybrać hipotezę i przetestować zmianę bez eksperymentowania na zamówieniach lub danych klientów.

W tym poradniku

Najpierw ustal, co dokładnie działa wolno

Wybierz stronę, na której problem przeszkadza w rzeczywistym zadaniu: artykuł, produkt, wyszukiwarkę albo formularz. Zapisz adres, godzinę, urządzenie, przeglądarkę oraz informację, czy użytkownik był zalogowany. Sprawdź, czy objaw występuje stale, po aktualizacji, podczas importu produktów czy tylko przy większym ruchu.

ObjawPierwsze sprawdzenieDalszy kierunek
Długo nie pojawia się żadna treśćCzas oczekiwania na dokument HTML w NetworkSerwer, PHP, baza, cache strony
Tekst jest widoczny, główny obraz pojawia się późnoElement LCP i kolejność pobierania zasobówObraz, jego wykrywanie, arkusze stylów
Kliknięcie długo nie daje odpowiedziZapis interakcji w panelu PerformanceJavaScript i obciążenie głównego wątku
Zawartość przeskakuje podczas czytaniaPrzesunięcia układuWymiary obrazów, fonty, osadzane elementy

Jeśli odpowiedź kończy się kodem serwera zamiast poprawną stroną, przejdź do diagnostyki błędu 500. Najpierw przywróć działanie, później poprawiaj czas ładowania.

Podaj adres strony, objaw błędu i informację, od kiedy występuje. Jeśli problem pojawił się po zmianie lub aktualizacji, wspomnij o niej. Na początek wystarczy opis; nie przesyłaj haseł. Opisz problem z WordPressem

Zapisz pomiar wyjściowy i właściwie odczytaj PageSpeed

PageSpeed Insights rozdziela dane od rzeczywistych użytkowników i test laboratoryjny. Wynik pojedynczego testu pomaga znaleźć problem, ale nie opisuje wszystkich odwiedzin. Sprawdź też, czy dane terenowe dotyczą badanego adresu, czy całej domeny. Brak takich danych nie oznacza ani dobrej, ani złej wydajności.

Według web.dev: Core Web Vitals dobre wartości wynoszą: LCP do 2,5 sekundy, INP do 200 milisekund i CLS do 0,1. Ocena dotyczy 75. percentyla odwiedzin, osobno dla urządzeń mobilnych i komputerów. Są to progi jakości doświadczenia, nie obietnica pozycji w wyszukiwarce.

Zapisz raport i powtórz pomiar tego samego adresu przy tej samej konfiguracji urządzenia oraz sieci. Rozdziel pierwsze wejście od powtórnego, które może korzystać z pamięci podręcznej. W notatce uwzględnij stan logowania i cache. Po zmianie porównuj te same warunki, a nie najlepszy nowy wynik z najgorszym starym.

Gdy opóźnia się HTML, sprawdź serwer i zależności

W zakładce Network wybierz główne żądanie dokumentu i odczytaj jego przebieg. Długi czas oczekiwania na odpowiedź jest wskazówką do analizy serwera, ale obejmuje również wpływ sieci. Sam nie dowodzi, że trzeba zmienić hosting. Porównaj różne podstrony oraz odpowiedzi dla zalogowanego użytkownika i anonimowego odwiedzającego.

Administrator hostingu powinien zestawić godzinę pomiaru z obciążeniem procesora, pamięci, operacjami dyskowymi i dostępnością procesów PHP. Poproś również o sprawdzenie błędów, kolejek oraz połączeń z zewnętrznymi usługami. Wolna odpowiedź systemu fakturowania lub wyszukiwarki może zatrzymywać żądanie, mimo że sam serwer ma wolne zasoby.

Nie zwiększaj limitów pamięci i czasu wykonania bez rozpoznania konkretnego ograniczenia. Zmiana wersji PHP także wymaga sprawdzenia zgodności motywu i rozszerzeń. Przygotowanie kopii oraz testy po zmianach opisuje poradnik o aktualizacjach WordPressa. Jeżeli spowolnienie pojawia się okresowo, dołącz godziny zadań importu i tworzenia kopii.

Test laboratoryjny: co zmienił cache odpowiedzi API

13 września 2026 r. wykonaliśmy własny eksperyment na demonstracyjnym WordPressie 6.9.4, z PHP 8.3.31, MariaDB 11.4.12 i motywem Twenty Twenty-Five. API miało celowo ustawione opóźnienie 800 ms. To laboratorium, nie przypadek klienta ani pomiar kcmobile.pl.

Sprawdziliśmy, co zmieni zapis publicznego komunikatu API w transiencie, czyli tymczasowym wpisie w pamięci podręcznej WordPressa. Ustawiliśmy TTL 300 s. Pozostałe warunki zachowaliśmy: bez cache całej strony i zewnętrznego object cache. Narzędzie curl wysyłało żądania do lokalnego Apache wewnątrz kontenera WordPressa, bez Internetu i TLS.

Przeprowadziliśmy dwie serie. W każdej wykonaliśmy kolejno 10 żądań bez cache, jedno napełniające pusty cache i 10 korzystających z zapisu. Przed porównaniem wykonaliśmy dwie dodatkowe próby rozgrzewkowe. Zmierzyliśmy TTFB, czyli czas do pierwszego bajtu HTML, a nie pełne załadowanie strony.

WariantPróbyMediana TTFB
Bez cache odpowiedzi API20779,3 ms
Pierwsze wejście z pustym cache2777,6 ms
Wejścia z zapełnionym cache2021,4 ms

Pobierz dane z testu (CSV).

Zapełniony cache pozwolił ominąć ponowne oczekiwanie na API. Pierwsze wejście nadal czekało na odpowiedź. Jego medianę wyliczyliśmy z zaledwie dwóch prób, więc nie traktuj jej jako mocnego punktu odniesienia dla własnej strony. Wyniki dotyczą tej zależności i tej konfiguracji.

Sprawdziliśmy też awarię API zwracającego HTTP 503. Przy istniejącym cache komunikat pozostał dostępny bez ponownego pobierania. Przy pustym cache pojawił się komunikat zastępczy, a sama strona zwróciła HTTP 200. Błędu nie zapisaliśmy jako poprawnej odpowiedzi. Po przywróceniu API wtyczka pobrała i zapisała treść; kolejne wejście skorzystało z zapisu. Kontrolę kodu odpowiedzi opisuje WordPress HTTP API.

Ryan McCue wyjaśnia w dokumentacji Transients API:

transient expiration times are a maximum time. There is no minimum age.

TTL określa maksymalny okres przechowywania; dane mogą zniknąć wcześniej. Kod musi obsługiwać ich brak. Usuwaliśmy transient ręcznie, więc nie przetestowaliśmy rzeczywistego upływu TTL. Nie badaliśmy ruchu równoległego, timeoutu ani błędnego JSON. Ten pomiar nie mówi też, jak zmieniły się LCP, INP, PageSpeed, SEO czy sprzedaż. Czas przechowywania publicznego komunikatu nie jest gotowym ustawieniem dla cen, stanów magazynowych ani danych użytkownika.

Sprawdź działanie cache, zanim dołożysz kolejną warstwę

Ustal, gdzie działa pamięć podręczna: we wtyczce, na serwerze, w CDN czy w przeglądarce. Administrator może wskazać nagłówki oznaczające trafienie w cache lub jego pominięcie. Ich nazwy zależą od używanego systemu. Sprawdź je przy powtarzanych żądaniach strony publicznej, bez logowania i bez parametrów zmieniających odpowiedź.

Szybka strona publiczna przy wolnym panelu sugeruje, że cache ukrywa koszt generowania strony, lecz nie usuwa jego przyczyny. Nie włączaj równocześnie kilku mechanizmów wykonujących tę samą optymalizację. Zanotuj bieżące ustawienia i zmieniaj pojedynczą opcję, aby dało się wrócić do poprzedniej konfiguracji.

W sklepie respektuj wyłączenia treści zależnej od sesji. Dokumentacja WooCommerce wskazuje koszyk, zamówienie i konto klienta jako strony wymagające wyłączenia z cache stron. Po zmianie sprawdź niezależne sesje, zawartość koszyka i logowanie. Zatrzymaj wdrożenie, jeśli pojawia się cudza lub nieaktualna treść.

Osobną warstwę stanowi cache obiektowy, np. Redis, który może przechowywać wyniki operacji WordPressa między żądaniami. Nie zastępuje diagnozy kosztownych zapytań ani poprawnego wyłączenia prywatnych stron z cache HTML.

Gdy spóźnia się obraz lub reakcja, badaj przeglądarkę

Raport wskaże element LCP, ale zanim skompresujesz wszystkie zdjęcia, sprawdź konkretny zasób. Czy przeglądarka pobiera obraz znacznie większy niż obszar wyświetlania? Czy zaczyna pobieranie dopiero po uruchomieniu skryptu? Czy obraz nad pierwszym ekranem ma opóźnione ładowanie? Każdy z tych przypadków wymaga innej korekty. Zachowaj pliki źródłowe i porównaj jakość na telefonie oraz dużym ekranie.

Przy opóźnionych kliknięciach zapisz problematyczną interakcję w panelu Performance. Szukaj długich zadań wykonywanych podczas tego działania. Zewnętrzny czat, mapa lub skrypt marketingowy może obciążać stronę, choć nie jest osobną wtyczką. Ustal właściciela funkcji przed ograniczeniem jej ładowania.

Wyłączenie skryptu na kopii powinno poprawić badany objaw bez utraty potrzebnej funkcji. Po odraczaniu JavaScript sprawdź menu, zgodę na cookies, formularze i koszyk. Rezerwuj miejsce na obrazy oraz osadzane treści, aby ładowanie nie przesuwało przycisków. Nie poprawiaj punktacji kosztem możliwości korzystania ze strony.

Jak liczba i rodzaj wtyczek wpływają na szybkość

Nie ma jednej bezpiecznej liczby wtyczek. Lista dodatków pomaga rozpocząć przegląd, ale o szybkości decyduje praca wykonywana na konkretnym adresie. Jedna wtyczka może czekać na API, inna dodawać zapytania do bazy, a kolejna ładować skrypty i style w przeglądarce. Te koszty mogą się sumować. Usuń zbędne dodatki i dublujące się funkcje, lecz nie wybieraj winowajcy wyłącznie na podstawie liczby dodatków. Dokumentacja WordPressa zaleca selektywne wyłączanie i porównywanie wydajności.

Przygotuj kopię odtwarzającą problem, z porównywalnymi zasobami serwera. Zabezpiecz dostęp, ogranicz dane klientów, wyłącz rzeczywiste wysyłki i ustaw integracje w trybie testowym. Wyłącz jedną podejrzaną wtyczkę, powtórz scenariusz przy tym samym stanie cache, a następnie włącz ją i sprawdź, czy opóźnienie wraca. Zmianę motywu potraktuj jako osobny eksperyment.

Query Monitor pokazuje liczbę i czas zapytań SQL według komponentu oraz funkcji. Czas zapytań przypisanych wtyczce nie jest jednak pełnym czasem jej działania. Sprawdź też formularz, koszyk lub wyszukiwarkę zależne od wyłączonego dodatku. Końcowy pomiar wykonaj bez narzędzia diagnostycznego, również jako niezalogowany użytkownik: sesja administratora może korzystać z innych reguł cache.

Jak optymalizacja kodu przyspiesza WordPressa

Optymalizacja kodu może skrócić pracę WordPressa przed wysłaniem HTML i ograniczyć obciążenie przeglądarki. Zacznij od operacji wskazanej w pomiarze. Samo przeniesienie tego samego kodu z wtyczki do motywu nie usuwa jego kosztu.

Problem potwierdzony w pomiarzeKierunek zmianyCo zmierzyć i sprawdzić
Osobny odczyt SQL dla każdego elementu listyPobieranie zbiorcze i wykorzystanie cache danychLiczba oraz łączny czas SQL dla tej samej listy
`WP_Query` pobiera niepotrzebnie całą dużą kolekcjęLimit `posts_per_page`; `no_found_rows` tylko bez potrzeby liczenia wyników i stronCzas SQL, pamięć, kompletność wyników
Oczekiwanie na publiczne API przy każdym wejściuCache poprawnej odpowiedzi z dobranym TTL i obsługą błędówTTFB osobno dla pustego i zapełnionego cache, poprawność treści
JS/CSS dodatku ładuje się tam, gdzie nie jest potrzebnyWarunkowe ładowanie z zachowaniem zależnościZasoby w Network i działanie interfejsu

Odczyty dla kolejnych elementów, nazywane problemem N+1, nie muszą być identycznymi zapytaniami. Z kolei samo `get_post_meta()` w pętli nie dowodzi problemu: WP_Query może wcześniej napełnić cache metadanych.

Przy warunkowym ładowaniu zasobów uwzględnij również formularze w stopce i oknach modalnych. Nie usuwaj ich zależności. Poprawkę wtyczki uzgodnij z autorem lub utrzymuj we własnym kodzie; ręczna edycja plików dostawcy może zniknąć przy aktualizacji. Efekt każdej zmiany potwierdź kolejnym pomiarem.

Bazę i CDN poprawiaj dopiero po wskazaniu przyczyny

Wolne zapytanie wymaga ustalenia, kto je wykonuje, na jakich danych i jak często. Rozmiar tabeli sam w sobie nie uzasadnia czyszczenia. Przekaż programiście zanonimizowany przykład oraz pomiar czasu. Zmiany indeksów lub sposobu pobierania danych wymagają testów na kopii. Nie uruchamiaj zbiorczego usuwania rekordów ani optymalizacji wszystkich tabel jako rutynowego przyspieszania.

CDN może skrócić dostarczanie zasobów, ale nie naprawi kosztownego generowania niebuforowanej odpowiedzi PHP. Sprawdź, czy problem dotyczy właśnie przesyłania plików. Wprowadzenie CDN wymaga też sprawdzenia certyfikatu serwera i reguł cache.

Cloudflare podaje:

For the best security, choose Full (strict) mode whenever possible.

To zalecenie dotyczy bezpieczeństwa połączenia. Dokumentacja Full (strict) wymaga właściwego, ważnego certyfikatu na serwerze źródłowym. Nie zmieniaj trybu szyfrowania bez sprawdzenia tych warunków. CDN ma zachować działanie HTTPS i sesji użytkowników.

Potwierdź poprawę i zdecyduj, komu przekazać problem

Po każdej zaakceptowanej zmianie powtórz pomiar i scenariusz użytkownika. Sprawdź stronę na telefonie, po wylogowaniu i w nowej sesji. Zweryfikuj formularze oraz proces zakupu w środowisku testowym. Jeśli zmiana pogarsza działanie albo wynik nie daje się powtórzyć, cofnij ją i wróć do zebranych dowodów.

Przerwij samodzielne próby przy błędach serwera, braku sprawdzonej kopii, niepewności co do danych zamówień lub konieczności modyfikacji bazy. Usługa naprawy WordPressa dotyczy przywracania działania; szerszą opiekę opisuje oferta WordPress. Przy kontakcie podaj adresy, objaw, warunki pomiaru i ostatnie zmiany. Raporty udostępniaj po usunięciu danych osobowych, tokenów i identyfikatorów sesji. Nie przesyłaj haseł w opisie zgłoszenia.

Gdy wolne działanie wynika z przestarzałego motywu i nadmiaru wtyczek, naprawa bywa droższa niż projekt nowej strony firmowej na lżejszym kodzie.

Szybkość to tylko jeden z powodów braku zapytań. Pozostałe opisujemy w poradniku dlaczego strona internetowa nie przynosi klientów.

Najczęściej zadawane pytania

Dlaczego PageSpeed pokazuje problem, chociaż u mnie strona działa szybko?
PageSpeed może wykrywać problemy z wydajnością WordPressa niewidoczne na Twoim komputerze. Twoja przeglądarka może mieć zapisane zasoby, a komputer i połączenie mogą być szybsze niż urządzenia odbiorców. PageSpeed pokazuje też osobno test laboratoryjny i dostępne dane terenowe. Sprawdź rodzaj raportu, urządzenie oraz zakres danych. Porównaj pierwsze wejście w nowej sesji i rzeczywiste zadanie użytkownika. Pojedynczy udany test na własnym komputerze nie wyklucza problemu u innych odwiedzających.
Czy WordPress musi mieć 100 punktów w PageSpeed Insights?
WordPress nie musi zdobywać 100 punktów w PageSpeed Insights, aby działać poprawnie. Najpierw sprawdź doświadczenie użytkowników, wskaźniki terenowe i działanie najważniejszych funkcji. Wynik laboratoryjny pomaga wskazać miejsca do analizy, lecz zależy od warunków testu. Poprawa liczby kosztem niedziałającego formularza lub koszyka nie jest sukcesem. Każdą optymalizację oceniaj przez powtarzalny pomiar oraz test zadania, które strona ma umożliwiać swoim odbiorcom.
Ile wtyczek może działać bez spowalniania WordPressa?
Nie ma uniwersalnej liczby wtyczek, która gwarantuje szybkie działanie WordPressa. Znaczenie mają wykonywane operacje, ich częstotliwość oraz miejsce uruchamiania. Prosta wtyczka może mieć niewielki wpływ, a pojedyncza integracja zatrzymywać odpowiedź serwera. Wybierz podejrzany komponent na podstawie pomiarów i sprawdź go na kopii strony. Po jego wyłączeniu porównaj ten sam scenariusz, a następnie zweryfikuj, czy zachowane są wszystkie potrzebne funkcje.
Czy CDN przyspieszy wolną bazę danych WordPressa?
CDN nie przyspiesza bezpośrednio wykonywania zapytań w bazie danych WordPressa. Może odciążyć serwer przy dostarczaniu zasobów albo odpowiednio buforowanych stron, ale dynamiczne żądania nadal wymagają pracy aplikacji. Jeżeli problem dotyczy panelu, wyszukiwarki lub zamówienia, najpierw zbadaj te operacje. Nie obejmuj prywatnych stron wspólnym cache tylko po to, aby skrócić czas odpowiedzi. Sprawdź zgodność konfiguracji z sesjami i integracjami sklepu.
Co przygotować przed zleceniem diagnostyki wolnego WordPressa?
Przed zleceniem diagnostyki wolnego WordPressa przygotuj adresy problematycznych stron, godziny wystąpienia objawu, urządzenie oraz informację o logowaniu. Dołącz raport pomiaru, opis ostatnich zmian i listę istotnych integracji. Wskaż dostępność kopii zapasowej oraz środowiska testowego. Usuń z załączników dane klientów, tokeny i ciasteczka sesyjne. Dostępy przekaż dopiero ustalonym bezpiecznym kanałem. Taki zestaw pozwala rozpocząć od odtwarzalnego problemu i ograniczyć niepotrzebne zmiany konfiguracji.
#wordpress#wydajność#optymalizacja#core web vitals#cache#hosting#pagespeed#diagnoza
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

Founder & Technical Lead, KC Mobile

Projektuję i rozwijam strony WordPress, sklepy WooCommerce oraz aplikacje internetowe. Łączę projektowanie z programowaniem, integracjami i technicznym SEO. Projekty KC Mobile prowadzę osobiście.

Potrzebujesz pomocy z tym tematem? Napisz – odpowiem osobiście w 24h.

Ustalmy, co wymaga naprawy

Podaj adres strony, objaw błędu i informację, od kiedy występuje. Jeśli problem pojawił się po zmianie lub aktualizacji, wspomnij o niej. Na początek wystarczy opis; nie przesyłaj haseł.