naprawa-stron.pl Online 24/7 Zgłoś awarię

Biały ekran WordPress – przyczyny i naprawa krok po kroku

Autor: Grzegorz Wojterzak. Aktualizacja: 12 października 2026. Czas czytania: około 11 minut.

$ diagnoza biały ekran WordPress
Typowe objawy
Pusta biała strona bez żadnego komunikatu, na całej stronie, w panelu lub na jednej podstronie
Najczęstsza przyczyna
Błąd PHP bez wyświetlania, brak pamięci, pusta strona w cache, motyw
Czas naprawy
Od kilku minut (cache) do kilku godzin (błąd w kodzie)
Czy zrobisz to sam?
Tak, jeśli masz dostęp do FTP lub menedżera plików i panelu hostingu

Szybka odpowiedź

Biały ekran WordPress to zwykle błąd krytyczny PHP, którego WordPress nie zdążył lub nie mógł pokazać, albo pusta strona zapisana w cache. Sprawdź najpierw, czy serwer zwraca kod 500 (błąd PHP), czy 200 z pustą treścią (cache lub motyw). Przy kodzie 500 włącz WP_DEBUG_LOG w wp-config.php i z pliku wp-content/debug.log odczytaj winną wtyczkę lub motyw. Przy kodzie 200 wyczyść cache i sprawdź stronę z wyłączonym motywem.

Biały ekran (po angielsku „white screen of death”, w skrócie WSOD) przez lata był najczęstszym objawem awarii WordPressa. Od wersji 5.2 WordPress w większości sytuacji pokazuje zamiast niego komunikat „Na tej stronie wystąpił błąd krytyczny”. Pusta strona nie zniknęła jednak całkiem. Pojawia się wtedy, gdy mechanizm przechwytywania błędów nie zadziała, oraz w sytuacjach, które w ogóle nie są błędem PHP.

Jeśli widzisz komunikat o błędzie krytycznym, przejdź od razu do artykułu Na tej stronie wystąpił błąd krytyczny. Tutaj zajmuję się sytuacją, w której nie widać nic.

Dlaczego dziś zamiast komunikatu widzisz pustą stronę

Komunikat o błędzie krytycznym wyświetla specjalny mechanizm WordPressa, uruchamiany w chwili, gdy PHP kończy pracę z błędem. Działa tylko pod kilkoma warunkami. Gdy któryś nie jest spełniony, zostaje biała strona:

  • Błąd wystąpił, zanim WordPress uruchomił obsługę błędów. Na przykład błąd składni w wp-config.php, który WordPress wczytuje, zanim włączy przechwytywanie błędów. PHP przerywa pracę, a o tym, co zobaczysz, decyduje ustawienie display_errors serwera. Na produkcyjnych hostingach jest ono wyłączone, więc strona jest pusta.
  • Strona zaczęła się już wyświetlać. Jeśli błąd pojawi się w połowie generowania strony, na przykład w stopce motywu, WordPress nie może już podmienić odpowiedzi na komunikat. Widzisz wtedy pustą stronę albo jej górną połowę, urwaną w przypadkowym miejscu.
  • Obsługa błędów jest wyłączona. Stała WP_DISABLE_FATAL_ERROR_HANDLER ustawiona na true w wp-config.php (albo odpowiedni filtr we wtyczce) wyłącza ten mechanizm całkowicie.
  • Brakuje pamięci. Gdy skrypt wyczerpie limit pamięci, czasem nie starcza jej nawet na wygenerowanie komunikatu, a hosting może dodatkowo przerwać proces PHP.
  • WordPress jest bardzo stary. Wersje sprzed 5.2 w ogóle nie mają tego mechanizmu.

Są też białe ekrany, które nie są błędem PHP: pusta odpowiedź zapisana w cache, błąd JavaScriptu w edytorze bloków, motyw, który nie generuje żadnej treści, albo strona z kodem 200 i pustym szablonem. Ich nie znajdziesz w logu PHP, dlatego najpierw warto ustalić, z którym rodzajem masz do czynienia.

Gdzie widzisz biały ekran i co to oznacza

Miejsce, w którym pojawia się pusta strona, bardzo zawęża listę przyczyn. Zanim zaczniesz cokolwiek zmieniać, sprawdź stronę główną, kilka podstron, stronę logowania /wp-login.php i panel /wp-admin/, najlepiej w oknie prywatnym przeglądarki.

Mapa: gdzie widzisz biały ekran i co to najczęściej oznacza Pięć miejsc i ich typowe przyczyny. Cała strona i panel: błąd ładowany zawsze, czyli wtyczka, motyw, wp-config.php, mu-plugins, wersja PHP lub pamięć. Tylko strona dla gości: motyw albo cache. Tylko panel lub logowanie: wtyczka działająca w panelu albo przekierowania. Tylko edytor wpisów: błąd JavaScriptu, widoczny w konsoli przeglądarki. Jedna podstrona: szablon, krótki kod lub blok tej podstrony, albo jej wersja w cache. Gdzie widzisz biały ekran Najczęstsze przyczyny Gdzie szukać Wszędzie strona, logowanie i panel wtyczka, motyw, wp-config.php, mu-plugins, wersja PHP, pamięć log PHP Tylko strona dla gości panel działa normalnie pusta strona w cache, plik szablonu motywu, przekierowanie cache, motyw Tylko panel lub logowanie strona dla gości działa wtyczka działająca w panelu, strona gości podawana z cache log PHP Tylko edytor wpisów reszta panelu działa błąd JavaScriptu wtyczki, zablokowane skrypty, cache plików konsola F12 Jedna podstrona np. koszyk, kontakt, blog szablon strony, krótki kod (shortcode), blok, wersja tej podstrony w cache log PHP
Czerwone pole oznacza, że odpowiedź prawie zawsze jest w logu błędów PHP. Pozostałe przyczyny w logu zwykle nie zostawiają śladu.

Pierwszy test: jaki kod zwraca serwer

Biała strona w przeglądarce wygląda zawsze tak samo, ale serwer może zwracać różne odpowiedzi. Kod odpowiedzi HTTP to najszybszy sposób, żeby odróżnić błąd PHP od problemu z cache lub motywem.

  1. Otwórz narzędzia deweloperskie przeglądarki

    W Chrome, Edge lub Firefoksie naciśnij F12, przejdź na kartę Sieć (Network) i odśwież stronę. Pierwszy wiersz na liście to sam dokument strony. W kolumnie Stan (Status) zobaczysz kod odpowiedzi.

  2. Albo sprawdź to jednym poleceniem

    W terminalu (na Windows w PowerShellu wpisz curl.exe zamiast curl, a drugie polecenie z wc -c zadziała tylko na macOS i Linuksie):

    # sam nagłówek odpowiedzi, z kodem HTTP
    curl -sI https://twojadomena.pl/
    
    # ile bajtów treści zwraca strona
    curl -s https://twojadomena.pl/ | wc -c
Co oznacza kod odpowiedzi przy białym ekranie Trzy kolumny. Kod 500: błąd PHP, sprawdź debug.log lub log błędów hostingu. Kod 200 i zero lub kilka bajtów treści: pusta strona z cache lub motyw bez treści; obejdź cache, przełącz motyw. Kod 200 i urwany kod HTML: błąd w połowie generowania strony, który nie zdążył się pokazać; sprawdź log PHP i koniec źródła strony. 500 Internal Server Error Błąd PHP Kod przerwał pracę, a komunikat się nie pokazał. Co robisz Włącz WP_DEBUG_LOG, czytaj debug.log albo log błędów hostingu. 200 OK, ale treść 0–100 B Pusta odpowiedź Cache zapisał pustą stronę albo motyw nic nie generuje. Co robisz Obejdź i wyczyść cache, potem sprawdź stronę z innym motywem. 200 OK, ale HTML urwany w połowie Błąd w trakcie Strona zaczęła się ładować, potem PHP przerwał pracę. Co robisz Zobacz koniec źródła strony (Ctrl+U) i sprawdź log PHP z godziny wejścia.
Kod 500 kieruje do logu PHP. Kod 200 z pustą treścią to najczęściej cache albo motyw.

Jeśli przeglądarka zamiast białej strony pokazuje własny komunikat, że strona nie działa, z dopiskiem o błędzie HTTP 500, to ten sam przypadek co pierwsza kolumna. Przeglądarka po prostu zastąpiła pustą odpowiedź swoim szablonem.

Naprawa krok po kroku

Poniższa kolejność zaczyna się od kroków, które nic nie psują, a kończy na tych, które zmieniają wygląd lub działanie strony. Przed zmianą każdego pliku pobierz jego kopię.

  1. Sprawdź w oknie prywatnym i obejdź cache

    Otwórz stronę w oknie prywatnym i dopisz do adresu losowy parametr, na przykład ?test=12345. Większość wtyczek cache i cache serwerowych nie zapisuje stron z nieznanymi parametrami, więc dostaniesz świeżo wygenerowaną wersję. Jeśli z parametrem strona działa, a bez niego jest pusta, winny jest cache.

  2. Wyczyść cache we właściwym miejscu

    Cache może być w kilku warstwach naraz: we wtyczce WordPressa, na serwerze hostingu, w usłudze CDN przed stroną. Gdy panel działa, użyj przycisku czyszczenia we wtyczce. Gdy nie działa, usuń zawartość katalogu wp-content/cache/ (sam katalog zostaw) i wyczyść cache w panelu hostingu lub CDN. Polecenie wp cache flush w WP-CLI czyści tylko pamięć obiektów, a nie zapisane strony.

  3. Włącz zapis błędów do logu

    W pliku wp-config.php zamień linię z WP_DEBUG na poniższy blok, powyżej komentarza „stop editing”:

    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );

    Odśwież pustą stronę i otwórz wp-content/debug.log. Szukaj na końcu pliku linii z PHP Fatal error lub PHP Parse error. Jak czytać taką linię, pokazuję na grafice w artykule o błędzie krytycznym.

  4. Gdy debug.log nie powstaje, zajrzyj do logu hostingu

    Błąd w samym wp-config.php pojawia się, zanim WordPress przekieruje błędy do własnego pliku. Wtedy szukaj pliku error_log w katalogu strony albo logów błędów w panelu hostingu. Jeśli edytowałeś przed chwilą wp-config.php, wgraj jego kopię: brakujący średnik albo cudzysłów to najczęstsza przyczyna białego ekranu wszędzie, łącznie z panelem.

  5. Wyłącz wtyczkę wskazaną w logu

    Zmień nazwę jej katalogu w wp-content/plugins/, na przykład dopisując .off. Bez wskazówki w logu zmień nazwę całego katalogu plugins, a gdy strona wróci, przywróć ją i wyłączaj wtyczki pojedynczo. Z WP-CLI: wp plugin deactivate nazwa-wtyczki --skip-plugins --skip-themes.

  6. Przetestuj inny motyw

    Jeśli log wskazuje wp-content/themes/ albo strona zwraca kod 200 z pustą treścią mimo wyczyszczonego cache, przełącz motyw na domyślny: wp theme activate twentytwentyfive --skip-plugins --skip-themes (nazwę zainstalowanego motywu domyślnego sprawdzisz przez wp theme list). Bez WP-CLI zmień nazwę katalogu aktywnego motywu, a potem wejdź do Wygląd, Motywy. WordPress przełączy się na motyw domyślny, jeśli taki jest zainstalowany.

  7. Zwiększ limit pamięci, jeśli log o nim mówi

    Przy komunikacie Allowed memory size of … bytes exhausted dodaj w wp-config.php linię define( 'WP_MEMORY_LIMIT', '256M' );. Jeśli hosting ma niższy, sztywny limit, zmień memory_limit w ustawieniach PHP w panelu hostingu.

  8. Wyłącz debugowanie po naprawie

    Przywróć define( 'WP_DEBUG', false );, usuń pozostałe dodane linie i skasuj plik debug.log z serwera. Jeśli w wp-config.php znalazłeś WP_DISABLE_FATAL_ERROR_HANDLER, a nie wiesz, po co ktoś ją dodał, usuń ją. Przy następnej awarii zobaczysz komunikat i dostaniesz mail z linkiem do trybu odzyskiwania.

Biały ekran tylko w panelu lub tylko w edytorze

Gdy strona dla gości działa, a pusty jest tylko /wp-admin/, przyczyną jest najczęściej wtyczka uruchamiająca swój kod wyłącznie w panelu: kreator stron, wtyczka do SEO, moduł statystyk. Możliwe też, że goście widzą starą stronę z cache, a błąd w rzeczywistości dotyczy wszystkich. Postępowanie jest takie samo jak wyżej: log PHP, a potem wyłączenie winnej wtyczki.

Inaczej jest, gdy panel działa, a pusty jest tylko edytor wpisów lub stron. Edytor bloków jest aplikacją w JavaScripcie, więc jego błędy nie trafiają do logu PHP. Naciśnij F12, przejdź na kartę Konsola i odśwież edytor. Czerwone komunikaty zwykle zawierają ścieżkę do pliku z katalogu wp-content/plugins/, która wskazuje winną wtyczkę. Pomaga też wyczyszczenie cache przeglądarki i wyłączenie wtyczek łączących lub minimalizujących pliki JavaScript, bo potrafią serwować stare wersje skryptów edytora po aktualizacji WordPressa.

Pusty edytor blokowy WordPressa i konsola narzędzi deweloperskich Chrome z błędem Uncaught TypeError w pliku editor.min.js wtyczki
Zrzut ekranuEdytor wpisu jest pusty, a konsola (F12, karta Konsola) pokazuje błąd Uncaught TypeError z pliku editor.min.js?ver=2.1.0. Po najechaniu kursorem na nazwę pliku zobaczysz pełny adres z katalogu wp-content/plugins/galeria-pro/, czyli winną wtyczkę. Zrzut z testowej instalacji WordPress 7.1 z celowo zepsutą wtyczką.

Biały ekran tylko na jednej podstronie

Jeśli pusta jest tylko jedna podstrona, błąd siedzi w czymś, co występuje tylko na niej. Typowe przykłady:

  • Koszyk lub zamówienie w sklepie. Wtyczka bramki płatności albo dostawy, często po aktualizacji WooCommerce. Gdy motyw ma własne kopie szablonów WooCommerce, nieaktualny szablon też potrafi to spowodować.
  • Strona z formularzem. Wtyczka formularzy lub zabezpieczenia przed spamem.
  • Strona z własnym szablonem. Plik szablonu motywu, który ładuje się tylko dla tej podstrony.
  • Strona z krótkim kodem (shortcode) lub blokiem. Wtyczka, która dostarcza ten element.

Włącz log, wejdź na tę jedną podstronę i od razu sprawdź koniec debug.log. Jeśli w logu nic nie ma, a strona zwraca kod 200, wyczyść cache tej podstrony i otwórz jej źródło (Ctrl+U). Pusty dokument oznacza cache lub szablon, a urwany w połowie kod HTML oznacza błąd PHP w miejscu, w którym kod się kończy.

Typowy scenariusz

Właścicielka strony usługowej po aktualizacji wtyczek widzi w panelu wszystko w porządku, ale klienci piszą, że strona główna jest pusta. Kod odpowiedzi to 200, a treść ma kilkadziesiąt bajtów. Z parametrem ?test=1 strona działa. Wtyczka cache zapisała pustą stronę w chwili, gdy aktualizacja jeszcze trwała, i od tamtej pory serwuje ją wszystkim gościom. Wyczyszczenie cache rozwiązuje problem w minutę. Żeby się to nie powtarzało, cache czyszczony jest automatycznie po każdej aktualizacji.

Biały ekran po aktualizacji lub zmianie PHP

Jeśli pusta strona pojawiła się zaraz po aktualizacji, najszybszą drogą bywa cofnięcie tej jednej zmiany. Opisuję to w artykułach Strona nie działa po aktualizacji i Strona nie działa po zmianie PHP.

Kiedy nie robić tego samemu

Biały ekran zwykle da się naprawić w kilkanaście minut, jeśli log wskazuje przyczynę. Zleć to komuś, gdy:

  • log jest pusty, a strona zwraca kod 500, co często oznacza problem z konfiguracją serwera, a nie z WordPressem,
  • nie masz dostępu do FTP ani panelu hostingu,
  • w logu widzisz pliki o losowych nazwach albo kod w miejscach, których nie zmieniałeś (to może być włamanie, zobacz jak sprawdzić, czy strona została zhakowana),
  • pusta jest strona zamówienia w sklepie, a każda godzina to utracona sprzedaż.

Nadal widzisz białą stronę?

Sprawdzę logi serwera i przywrócę stronę. Naprawa jednej awarii w ramach Szybkiej Interwencji kosztuje 299 zł netto z 7-dniową gwarancją. Zgłoszenia awaryjne przyjmuję całą dobę.

Najczęstsze pytania

Dlaczego widzę biały ekran, skoro nowy WordPress pokazuje komunikat o błędzie krytycznym?

Komunikat pojawia się tylko wtedy, gdy WordPress zdąży przechwycić błąd i nie wysłał jeszcze żadnej treści strony. Błąd w pliku wp-config.php, wyłączona obsługa błędów, błąd w połowie generowania strony, pusta strona zapisana w cache albo błąd JavaScriptu w edytorze kończą się białym ekranem bez komunikatu.

Czy biały ekran to wirus?

Zwykle nie. Najczęściej to błąd PHP po aktualizacji lub zmianie wersji PHP, brak pamięci albo problem z cache. Włamanie bywa przyczyną, gdy złośliwy kod dopisany do plików zawiera błąd. Jeśli w logu widzisz pliki o dziwnych nazwach albo zmiany w plikach, których nie dotykałeś, sprawdź stronę pod kątem infekcji.

Biały ekran widzę tylko ja, a inni widzą stronę. Co to znaczy?

Najczęściej Ty jesteś zalogowany, a goście dostają stronę z cache. Błąd dotyczy wtedy kodu uruchamianego dla zalogowanych, na przykład paska administracyjnego lub wtyczki działającej tylko w panelu. Możliwe też, że Twoja przeglądarka ma w pamięci starą, pustą wersję strony. Sprawdź w oknie prywatnym.

Czy wyczyszczenie cache może pogorszyć sytuację?

Może ujawnić problem, który już istnieje. Jeśli kod PHP jest zepsuty, a goście widzą jeszcze stare strony z cache, po wyczyszczeniu zobaczą biały ekran. Dlatego najpierw sprawdź stronę w oknie prywatnym z parametrem omijającym cache i zajrzyj do logu, a cache czyść dopiero po naprawie albo gdy wiesz, że to on serwuje pustą stronę.

Grzegorz Wojterzak naprawia strony internetowe po awariach i włamaniach: WordPress, WooCommerce, PHP i Node.js. Od ponad dekady pracuje przy stronach i sklepach internetowych polskich firm.