Przejdź do treści

Debugowanie WordPress - rozwiązywanie problemów

Opublikowano: 17 stycznia 2026 | Zaktualizowano: 14 czerwca 2026

Błędy się zdarzają. Biały ekran, 500 Internal Server Error, dziwne zachowanie - kluczem jest systematyczne debugowanie. Pokażę Ci jak.

Krótka odpowiedź

Włącz WP_DEBUG w wp-config.php. Sprawdź logi błędów (wp-content/debug.log, logi serwera). Wyłącz wtyczki/motyw dla izolacji problemu. Użyj Query Monitor do głębszej analizy. Większość błędów to konflikty wtyczek lub błędy PHP.

Usługi KC Mobile

Sprawdź naszą ofertę

Potrzebujesz pomocy specjalisty? Skorzystaj z naszych usług i rozwiń swój biznes online.

Jak włączyć debugowanie w WordPress (WP_DEBUG)?

Zanim zaczniesz cokolwiek naprawiać, musisz zobaczyć, co tak naprawdę się psuje. Domyślnie WordPress ukrywa większość błędów PHP, zostawiając Ci tylko enigmatyczny biały ekran lub komunikat o błędzie krytycznym. Tryb debugowania zdejmuje tę zasłonę.

Otwórz plik `wp-config.php` w katalogu głównym instalacji (przez FTP, SSH albo menedżer plików w panelu hostingu) i dodaj trzy linie powyżej komentarza `/* That's all, stop editing! */`:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Każda z tych stałych robi co innego i właśnie ta kombinacja jest bezpieczna do użycia także na żywej stronie. Błędy lecą do pliku, ale nie wyświetlają się odwiedzającym ani botom Google.

StałaWartośćCo robi
WP_DEBUGtrueGłówny przełącznik trybu debugowania
WP_DEBUG_LOGtrueZapisuje błędy do `wp-content/debug.log`
WP_DEBUG_DISPLAYfalseUkrywa błędy przed użytkownikami strony
SCRIPT_DEBUGtrueŁaduje pełne (niezminifikowane) JS i CSS rdzenia
SAVEQUERIEStrueZapisuje wszystkie zapytania SQL (do analizy wydajności)

Dwie ostatnie stałe są opcjonalne. `SCRIPT_DEBUG` przyda się, gdy łapiesz konflikt ze skryptami WordPressa, a `SAVEQUERIES` przy polowaniu na wolne zapytania do bazy. Pamiętaj tylko, że `SAVEQUERIES` sam w sobie obciąża serwer, więc włączaj go tylko na czas diagnozy.

Wolisz, żebyśmy zrobili to za Ciebie?

Oszczędź czas i uniknij błędów. Zostaw kontakt – wdrożymy to rozwiązanie profesjonalnie.

  • Wdrożenie krok po kroku przez doświadczony zespół
  • Konkretny timeline + cena dopasowana do projektu
  • 18+ lat doświadczenia

Gdzie znaleźć i jak czytać plik debug.log?

Po włączeniu `WP_DEBUG_LOG` WordPress tworzy plik `wp-content/debug.log` przy pierwszym wystąpieniu błędu. Jeśli pliku nie ma, to dobry znak, że żaden błąd PHP jeszcze nie wystąpił od momentu włączenia logowania.

Otwórz log w edytorze tekstu. Każdy wpis ma datę, typ błędu oraz ścieżkę do pliku i numer linii, która go wywołała. Ta ostatnia informacja jest najcenniejsza, bo prowadzi Cię prosto do winowajcy, zwykle do konkretnej wtyczki w katalogu `/wp-content/plugins/`.

Nie wszystkie wpisy są równie groźne. Warto rozróżniać poziomy, bo log potrafi puchnąć od ostrzeżeń, które nie psują strony:

Typ wpisuPowagaCo oznacza
Fatal errorkrytycznaStrona przestaje działać (biały ekran, błąd 500)
WarningśredniaCoś działa źle, ale strona się ładuje
NoticeniskaDrobny problem w kodzie, zwykle do zignorowania
DeprecatedinformacyjnaFunkcja przestarzała, zniknie w przyszłej wersji PHP

Na diagnozę awarii skup się na liniach `PHP Fatal error`. To one odpowiadają za zatrzymanie strony. Ostrzeżenia i notice odłóż na później, chyba że pojawiają się masowo i zalewają log, co samo w sobie spowalnia stronę przy każdym żądaniu.

Co zrobić, gdy pojawia się biały ekran śmierci (WSOD)?

Biały ekran śmierci (WSOD, ang. White Screen of Death) to pusta, biała strona bez żadnego komunikatu. Najczęściej oznacza błąd krytyczny PHP, który zatrzymał wykonanie skryptu, zanim WordPress zdążył cokolwiek wyświetlić. Od WordPress 5.2 zamiast pustego ekranu częściej zobaczysz komunikat *Wystąpił błąd krytyczny na tej stronie* wraz z e-mailem do administratora i linkiem do trybu odzyskiwania.

Działaj po kolei, od najmniej inwazyjnych kroków:

1. Sprawdź skrzynkę administratora. WordPress wysyła e-mail z dokładną nazwą wtyczki lub motywu, który spowodował awarię, plus link logujący w trybie odzyskiwania (recovery mode).
2. Włącz `WP_DEBUG_LOG` i zajrzyj do `debug.log`. Ostatni `Fatal error` to Twój punkt startowy.
3. Jeśli nie masz dostępu do panelu, działaj przez FTP. Zmień nazwę folderu `/wp-content/plugins/` na np. `plugins_off`, by wyłączyć wszystkie wtyczki naraz.
4. Jeśli strona wróciła, przywróć nazwę folderu i włączaj wtyczki pojedynczo, aż awaria wróci.
5. Gdy wtyczki nie są winne, przełącz motyw na domyślny (np. Twenty Twenty-Four), zmieniając nazwę folderu aktywnego motywu w `/wp-content/themes/`.

W praktyce WSOD niemal zawsze sprowadza się do trzech przyczyn: konflikt po aktualizacji wtyczki, niekompatybilna wersja PHP albo wyczerpany limit pamięci. Tę ostatnią naprawisz, dodając do `wp-config.php` linię `define('WP_MEMORY_LIMIT', '256M');`.

Jak rozpoznać i naprawić błąd 500 (Internal Server Error)?

Błąd 500 różni się od białego ekranu tym, że generuje go serwer, a nie sam PHP WordPressa, więc `debug.log` może być pusty. Tutaj kluczowe są logi serwera, nie logi WordPressa. Znajdziesz je w panelu hostingu (sekcja Logi błędów) lub w pliku `error_log` w katalogu strony.

Najczęstsze źródła błędu 500 to uszkodzony plik `.htaccess`, przekroczony limit pamięci PHP oraz konflikt wtyczki z wersją PHP na serwerze. Poniższa tabela mapuje typowe objawy na przyczyny i rozwiązania.

ObjawPrawdopodobna przyczynaRozwiązanie
500 na całej stronie po aktualizacjiKonflikt wtyczki lub motywuWyłącz wtyczki przez FTP, przełącz motyw
500 tylko po zmianie permalinkówUszkodzony `.htaccess`Zmień nazwę `.htaccess`, wygeneruj nowy w Ustawienia → Bezpośrednie odnośniki
500 przy ciężkich operacjach (import, kreator stron)Wyczerpany limit pamięci PHPZwiększ `WP_MEMORY_LIMIT` i `memory_limit` na hostingu
500 po migracji na nowy serwerNiezgodna wersja PHPPrzełącz wersję PHP w panelu hostingu
Sporadyczny 500 pod obciążeniemLimit `max_execution_time` lub zasoby serweraZwiększ limity lub zmień plan hostingu

Najszybszy test diagnostyczny: zmień nazwę `.htaccess` na `.htaccess_old` i odśwież stronę. Jeśli błąd zniknął, problem był w regułach przepisywania. Wejdź wtedy do panelu i zapisz ponownie strukturę odnośników, by WordPress odtworzył poprawny plik.

Jak namierzyć konflikt wtyczek metodą połowienia?

Gdy masz 30 wtyczek, wyłączanie ich jedna po drugiej to strata czasu. Szybsza jest metoda połowienia (bisekcji), zapożyczona wprost z debugowania kodu. Zamiast 30 prób potrzebujesz ich około pięciu.

Działa tak: wyłącz połowę wtyczek naraz. Jeśli błąd zniknął, winowajca jest w wyłączonej połowie, więc włącz ją z powrotem i wyłącz połowę tej grupy. Jeśli błąd został, sprawca jest w działającej połowie. Powtarzaj, za każdym razem dzieląc podejrzaną grupę na pół, aż zostanie jedna wtyczka. Przy 30 wtyczkach trafisz w cel po pięciu, sześciu krokach zamiast po trzydziestu.

Do izolacji bez ruszania ustawień produkcyjnych użyj wbudowanego trybu rozwiązywania problemów (Narzędzia → Kondycja witryny → Rozwiązywanie problemów). Wyłącza on wtyczki i motyw tylko dla Ciebie, podczas gdy odwiedzający widzą normalną stronę. To bezpieczniejsze niż masowe wyłączanie na żywym sklepie.

Gdy stracisz dostęp do panelu, ta sama logika działa przez FTP. Zmieniaj nazwy folderów grup wtyczek, a gdy operujesz w bazie danych, tabela `wp_options` (pole `active_plugins`) trzyma listę aktywnych wtyczek. Zawsze rób kopię tabeli przed edycją.

Które narzędzia diagnostyczne warto znać?

Ręczna edycja `wp-config.php` to podstawa, ale do głębszej analizy nieoceniona jest wtyczka Query Monitor. Pokazuje na żywym pasku każde zapytanie SQL z czasem wykonania, błędy PHP, wywołania hooków, zapytania HTTP API oraz to, która wtyczka generuje najwięcej obciążenia. Jeśli strona jest wolna, Query Monitor w kilka sekund wskaże najcięższe zapytania, których normalnie byś nie zobaczył.

Wbudowana Kondycja witryny (Narzędzia → Kondycja witryny) raportuje wersję PHP, brakujące moduły, problemy z REST API i zaplanowanymi zadaniami cron. To dobry pierwszy przystanek, zanim sięgniesz po cięższe narzędzia.

Dla sklepów osobną wartością są logi WooCommerce (WooCommerce → Status → Logi). WooCommerce zapisuje błędy krytyczne do osobnych plików `fatal-errors`, często bardziej czytelnych niż surowy `debug.log`, bo zawierają pełny ślad stosu prowadzący do konkretnej linii kodu.

Perspektywa KC Mobile: w naszych wdrożeniach utrzymaniowych najczęściej widzimy jeden powtarzalny scenariusz. Klient klika *aktualizuj wszystko* na produkcji, jedna z wtyczek nie nadąża za nową wersją PHP i strona pada. Dlatego u nas aktualizacje idą najpierw na środowisko staging, a `debug.log` sprawdzamy tam, zanim cokolwiek trafi na żywą stronę. Ta jedna zasada eliminuje większość awarii, zanim zobaczy je klient. Jeśli zależy Ci na takiej stabilności bez samodzielnego grzebania w kodzie, zajmiemy się tym w ramach budowy i opieki nad stronami internetowymi.

Kiedy i jak wyłączyć debugowanie?

Tryb debugowania zostawiony na produkcji to realne ryzyko. Wyświetlane błędy (`WP_DEBUG_DISPLAY` ustawione na true) zdradzają ścieżki plików, wersje wtyczek i strukturę serwera, co jest gotową mapą dla atakującego. Dodatkowo rosnący `debug.log` potrafi spuchnąć do gigabajtów i obciążać dysk.

Gdy skończysz diagnozę, wyłącz debugowanie, zmieniając wartości na false albo usuwając dodane linie z `wp-config.php`:

define('WP_DEBUG', false);

Na koniec usuń lub opróżnij plik `wp-content/debug.log` i upewnij się, że nie jest dostępny publicznie pod adresem `twojadomena.pl/wp-content/debug.log`. Dobry hosting blokuje do niego dostęp z zewnątrz, ale warto to sprawdzić wpisując ten adres w przeglądarce. Jeśli widzisz zawartość logu, dodaj regułę blokującą w `.htaccess` albo przenieś logowanie poza katalog publiczny stałą `WP_DEBUG_LOG` ze ścieżką do pliku poza `wp-content`.

Nie chcesz grzebać w tym sam i ryzykować pogłębienia awarii? Naprawimy Twój WordPress – diagnoza w 30 minut, pełna naprawa od 299 zł, z miesięczną opieką w pakiecie.

Wspomniane narzędzia

Query Monitor Debug Bar Health Check WP_DEBUG

Potrzebujesz pomocy z WordPress?

Tworzymy i naprawiamy strony na WordPress. Optymalizacja prędkości, bezpieczeństwo, aktualizacje. 18+ lat doświadczenia.

Najczęściej zadawane pytania

Czy WP_DEBUG można zostawić włączony na produkcji?
Można logować błędy (WP_DEBUG_LOG true), ale nigdy nie wyświetlaj ich odwiedzającym (WP_DEBUG_DISPLAY false). Wyświetlane błędy zdradzają ścieżki i wersje, co ułatwia ataki. Pamiętaj też o czyszczeniu i zabezpieczeniu pliku debug.log przed publicznym dostępem.
Jak szybko znaleźć która wtyczka powoduje problem?
Najszybsza jest metoda połowienia: wyłącz połowę wtyczek naraz i sprawdź, czy błąd zniknął, potem dziel podejrzaną grupę dalej na pół. Przy 30 wtyczkach znajdziesz winowajcę w około 5 krokach zamiast 30. Bez dostępu do panelu zmieniaj nazwy folderów przez FTP.
Czym różni się biały ekran śmierci od błędu 500?
Biały ekran (WSOD) generuje zwykle błąd krytyczny PHP po stronie WordPressa, więc trafia do debug.log. Błąd 500 zgłasza serwer, dlatego debug.log bywa pusty, a przyczyny szukaj w logach serwera (plik error_log lub panel hostingu).
Gdzie dokładnie znajduje się plik debug.log?
Po włączeniu WP_DEBUG_LOG plik tworzy się automatycznie w katalogu wp-content/debug.log przy pierwszym błędzie. Otworzysz go przez FTP lub menedżer plików hostingu. Jeśli pliku nie ma, oznacza to, że żaden błąd PHP nie wystąpił od czasu włączenia logowania.
Co zrobić, gdy nie mam dostępu do panelu WordPress?
Działaj przez FTP lub menedżer plików hostingu. Zmień nazwę folderu wp-content/plugins na inną, aby wyłączyć wszystkie wtyczki naraz. Jeśli to nie pomoże, przełącz motyw, zmieniając nazwę folderu aktywnego motywu w wp-content/themes na domyślny.
#wordpress#debugowanie#bledy#debug#rozwoj
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

Founder & Technical Lead, KC Mobile

18 lat WordPress + 12 lat WooCommerce. Specjalizuję się w technicznej stronie e-commerce: automatyzacje WooCommerce, Google Ads dla SMB, migracje sklepów i optymalizacja konwersji.

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

Potrzebujesz pomocy?

Wolisz, żebyśmy zrobili to za Ciebie?

Oszczędź czas i uniknij błędów. Zostaw kontakt – wdrożymy to rozwiązanie profesjonalnie.

  • Wdrożenie krok po kroku przez doświadczony zespół
  • Konkretny timeline + cena dopasowana do projektu
  • 18+ lat doświadczenia
Bezpłatna wycena