Przejdź do treści
Problemy pilne

Biały ekran w WordPress - przyczyny i naprawa

Biały ekran to nie awaria bazy danych ani skasowana strona. To PHP, które przerwało pracę i nie miało co wysłać do przeglądarki, przy wyłączonym wyświetlaniu błędów. Treści leżą nietknięte w bazie i wracają w całości, gdy tylko usuniesz przyczynę. Naprawa polega na tym, żeby najpierw zobaczyć błąd, a potem go usunąć. Odwrotna kolejność, czyli wyłączanie wtyczek po kolei na wyczucie, potrafi zająć godziny i niczego nie wyjaśnić.

Czym jest biały ekran śmierci w WordPress?

To sytuacja, w której serwer zwraca pustą stronę zamiast treści albo komunikatu o błędzie. Skrypt PHP został przerwany, a ponieważ WordPress domyślnie nie pokazuje błędów odwiedzającym, w przeglądarce zostaje biel.

Objaw bywa różnie rozłożony i to jest pierwsza wskazówka diagnostyczna.

Gdzie widać bielCo to zwykle znaczy
Cała witryna, łącznie z panelembłąd krytyczny w motywie, wtyczce albo brak pamięci
Tylko panel administracyjnywtyczka działająca po zalogowaniu
Tylko część podstronfunkcja używana wyłącznie tam, na przykład sklep
Czasami, przy większym ruchulimit pamięci albo procesów na hostingu

Nowsze wersje WordPressa zamiast bieli pokazują komunikat o krytycznym błędzie i wysyłają wiadomość na adres administratora z linkiem do trybu awaryjnego. Jeśli taki e-mail dostałeś, masz w nim gotową wskazówkę, która wtyczka zawiniła.

Krok 1: zobacz błąd, zanim zaczniesz naprawiać

W pliku `wp-config.php` włącz zapis błędów do pliku, ale nie ich wyświetlanie:

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

Odśwież stronę i otwórz `wp-content/debug.log`. Ostatnie wpisy zawierają ścieżkę pliku i numer linii, czyli dokładny adres problemu. Fatal error z nazwą wtyczki kończy diagnostykę w minutę.

Jeśli log jest pusty, zajrzyj do logu serwera w panelu hostingu. Trafiają tam błędy sprzed startu WordPressa, na przykład problem z `.htaccess`, brakujące rozszerzenie PHP albo przekroczony limit pamięci narzucony przez hosting.

Po zakończeniu diagnostyki wyłącz tryb debugowania. Zostawiony na produkcji rośnie bez końca i przy dużym ruchu potrafi zapełnić dysk.

Krok 2: wyłącz wtyczki i motyw przez FTP

Przy białym ekranie zwykle nie da się zalogować do panelu, więc wszystko robi się na plikach.

Zmień nazwę katalogu `wp-content/plugins` na `plugins-off`. WordPress nie znajdzie wtyczek i wyłączy je wszystkie naraz. Jeśli witryna wróci, przyczyna jest wśród nich. Przywróć nazwę katalogu i włączaj wtyczki pojedynczo, sprawdzając stronę po każdej.

Jeśli to nie pomogło, zmień nazwę katalogu aktywnego motywu w `wp-content/themes`. WordPress przełączy się na motyw domyślny. Powrót strony oznacza, że błąd siedzi w szablonie, najczęściej w pliku `functions.php` po wklejeniu tam fragmentu kodu z internetu.

Najczęstszy biały ekran, jaki widujemy, to nie awaria wtyczki, tylko kod wklejony do functions.php dzień wcześniej. Zawsze pytamy o to na początku, bo skraca diagnozę do kilku minut.
Krzysztof Czapnik, KC Mobile

Krok 3: pamięć PHP, wersja PHP i limity hostingu

Jeśli wtyczki i motyw są niewinne, zostają zasoby.

Limit pamięci podnosisz wpisem `define( 'WP_MEMORY_LIMIT', '256M' );` w `wp-config.php`. Gdy to nie działa, ograniczenie jest twardo ustawione po stronie serwera i trzeba je zmienić w panelu hostingu albo poprosić o zmianę obsługę.

Sprawdź też wersję PHP. Przejście na nowszą potrafi wyłożyć motyw albo wtyczkę bez wsparcia, a objawem jest właśnie biel. W panelu hostingu można wrócić do poprzedniej wersji i sprawdzić, czy to była przyczyna.

Według ofert popularnych hostingów pakiety za 20-30 zł miesięcznie mają najniższe limity pamięci i procesów, więc biały ekran pojawiający się falami w godzinach szczytu zwykle wskazuje właśnie na nie, a nie na kod.

ObjawSprawdźTypowa naprawa
Allowed memory size exhaustedlimit pamięci PHPpodniesienie do 256M
Biel po zmianie wersji PHPdziennik zmian hostingupowrót do poprzedniej wersji i aktualizacja motywu
Biel tylko przy większym ruchuobciążenie kontamocniejszy pakiet lub cache
Biel po wgraniu kodu do motywuostatnia edycja `functions.php`usunięcie wklejonego fragmentu

Co zrobić, gdy biel dotyczy tylko panelu?

Sam panel administracyjny na białym ekranie przy działającej witrynie oznacza, że problem wywołuje kod uruchamiany wyłącznie po zalogowaniu. Zakres jest wtedy mniejszy, bo podejrzanych jest kilka, nie kilkadziesiąt.

Zacznij od wtyczek związanych z administracją: kreatorów stron, narzędzi SEO, wtyczek bezpieczeństwa i kopii zapasowych. Wyłącz je przez zmianę nazwy pojedynczego katalogu wtyczki, bez ruszania pozostałych.

Jeśli po wyłączeniu wszystkich wtyczek panel nadal jest biały, sprawdź katalog `wp-admin` pod kątem uszkodzonych plików. Bezpieczne rozwiązanie to wgranie świeżych plików WordPressa z pominięciem katalogu `wp-content`, w którym siedzą Twoje treści i motywy.

Biały ekran a błąd połączenia z bazą danych

Te dwie awarie bywają mylone, bo obie kończą się stroną bez treści, ale mają zupełnie inne przyczyny i inne skutki.

Błąd połączenia z bazą danych zwykle zapowiada się komunikatem, choć przy wyłączonym wyświetlaniu błędów może wyglądać jak zwykła biel. Sprawdź w `wp-config.php`, czy dane dostępowe zgadzają się z tymi z panelu hostingu. Po migracji na inny serwer to pierwsza rzecz, która się rozjeżdża.

Druga typowa przyczyna to przeciążona albo uszkodzona baza. Na współdzielonym hostingu limit jednoczesnych połączeń bywa niski i przy większym ruchu część zapytań po prostu nie przechodzi. Objaw jest wtedy przerywany: strona działa, po odświeżeniu nie działa, po kolejnym znowu działa.

Naprawę tabel uruchamia się wpisem `define( 'WP_ALLOW_REPAIR', true );` w `wp-config.php`, a potem otwarciem adresu `/wp-admin/maint/repair.php`. Po zakończeniu wpis trzeba usunąć, bo dopóki tam jest, każdy może uruchomić naprawę bez logowania.

Jeśli baza jest w porządku, a witryna nadal milczy, wracasz do ścieżki z logami PHP - przyczyna leży w kodzie, nie w danych.

Kolejność diagnostyki w pigułce

Jeśli masz pięć minut i dostęp do FTP, przejdź to po kolei. Każdy krok wyklucza jedną grupę przyczyn, więc do końca listy dociera niewiele przypadków.

1. Sprawdź skrzynkę administratora - WordPress mógł wysłać wiadomość o krytycznym błędzie z nazwą winnej wtyczki
2. Włącz zapis błędów do pliku i odśwież stronę
3. Przeczytaj ostatnie wpisy w `wp-content/debug.log`
4. Jeśli log jest pusty, zajrzyj do logu serwera w panelu hostingu
5. Zmień nazwę katalogu `plugins` i sprawdź stronę
6. Zmień nazwę katalogu aktywnego motywu
7. Podnieś limit pamięci PHP do 256M
8. Sprawdź, czy hosting nie zmienił wersji PHP w ostatnich dniach

Notuj, co zmieniasz. Przy białym ekranie łatwo zrobić pięć zmian naraz i stracić orientację, która z nich pomogła, a która dołożyła nowy problem.

Co zrobić, gdy nic z powyższych nie pomaga?

Zostają dwie drogi i obie wymagają ostrożności.

Wymiana plików rdzenia. Pobierz świeżą paczkę WordPressa w tej samej wersji i wgraj katalogi `wp-admin` oraz `wp-includes`, pomijając `wp-content` i plik `wp-config.php`. To naprawia uszkodzone pliki systemowe bez dotykania Twoich treści, motywów i wtyczek.

Przywrócenie kopii zapasowej. Skuteczne, o ile wiadomo, kiedy zaczął się problem. Kopia sprzed tygodnia cofa też wszystkie zmiany z tego tygodnia, więc przy sklepie oznacza utratę zamówień. Przy witrynie z bazą, która zmienia się codziennie, lepiej przywrócić same pliki i zostawić bazę nietkniętą.

Jeśli biel pojawiła się zaraz po aktualizacji, opisujemy to osobno w poradniku WordPress nie działa po aktualizacji, bo kolejność kroków jest tam inna.

Ile trwa naprawa i ile kosztuje?

Kiedy log wskazuje plik i linię, naprawa jest kwestią minut. Reszta czasu to dojście do logu i wykluczenie kolejnych przyczyn.

Według naszego cennika proste przypadki, czyli konflikt wtyczek albo wyczerpana pamięć, to 200-500 zł i 1-2 godziny pracy. Dane z trudniejszych zgłoszeń, gdzie doszły uszkodzone pliki rdzenia albo problem z bazą, pokazują 500-1000 zł i naprawę tego samego dnia.

Przy okazji naprawy sprawdzamy dwie rzeczy, które i tak trzeba było sprawdzić: czy witryna nie jest zainfekowana i czy ma działającą kopię zapasową. Biały ekran bywa objawem włamania, a nie tylko konfliktu kodu.

Jak zmniejszyć ryzyko powtórki?

  • Nie wklejaj kodu do `functions.php` motywu, tylko do wtyczki własnej albo motywu potomnego, bo aktualizacja motywu skasuje zmiany i wróci ten sam błąd
  • Aktualizuj wtyczki pojedynczo, z podglądem strony po każdej
  • Trzymaj kopię zapasową z ostatniej doby i sprawdź raz, czy odtwarzanie faktycznie działa
  • Ustaw adres administratora, na który dojdzie wiadomość o krytycznym błędzie
  • Przy witrynie, która zarabia, testuj zmiany na kopii, nie na produkcji

Robimy to w ramach stałej opieki nad stroną WordPress razem z monitoringiem dostępności, który zgłasza awarię, zanim zauważy ją klient. Jeśli patrzysz teraz na biały ekran, napisz przez formularz na stronie kontakt i podaj, co zmieniało się na stronie w ostatniej dobie.

Korzyści

  • Diagnoza z logu, nie z wyłączania wtyczek na wyczucie
  • Naprawa bez utraty treści - biały ekran nie narusza bazy danych
  • Sprawdzenie, czy przyczyną nie jest infekcja albo zmiana wersji PHP przez hosting
  • Większość napraw realizujemy tego samego dnia

Najczęściej zadawane pytania

Czy biały ekran oznacza utratę danych?
Prawie nigdy. To błąd wykonania PHP, a nie uszkodzenie bazy. Wpisy, strony, zdjęcia i ustawienia zostają nietknięte i wracają razem z witryną po usunięciu przyczyny.
Czy mogę naprawić biały ekran samodzielnie?
Przy dostępie do FTP zwykle tak. Najprostsza metoda to zmiana nazwy katalogu z wtyczkami, a potem katalogu motywu. Jeśli to nie pomoże, dalsze kroki wymagają czytania logów serwera i dostępu do konfiguracji PHP.
Ile trwa naprawa białego ekranu?
Proste przypadki, czyli konflikt wtyczek albo brak pamięci, naprawiamy w 1-2 godziny. Uszkodzone pliki rdzenia lub problem z bazą danych mogą zająć cały dzień.
Biały ekran pojawia się tylko czasami. Co to znaczy?
Zwykle problem z pamięcią albo obciążeniem serwera. Witryna działa przy małym ruchu i przewraca się, gdy odwiedza ją więcej osób naraz. Sprawdź limity w panelu hostingu i rozważ cache albo mocniejszy pakiet.
Czy biały ekran może oznaczać włamanie?
Może, choć rzadziej niż konflikt kodu. Złośliwy skrypt wstrzyknięty do plików motywu potrafi wywołać identyczny objaw. Dlatego przy naprawie sprawdzamy też daty modyfikacji plików i listę kont administratorów.
Wyłączyłem wszystkie wtyczki i strona wróciła. Co dalej?
Włączaj je pojedynczo i po każdej odświeżaj stronę. Ta, po której biel wraca, jest winowajcą. Sprawdź wtedy, czy ma aktualizację, i czy w ogóle jest utrzymywana - wtyczka bez aktualizacji od ponad roku zwykle nie nadąża za zmianami wersji PHP i będzie wracać z tym samym problemem.
Czy biały ekran wpływa na pozycje w Google?
Krótka awaria nie robi różnicy, bo Googlebot wraca później. Problem zaczyna się przy awarii ciągnącej się dniami: adresy zaczynają wypadać z indeksu i trzeba je potem odzyskiwać, co trwa dłużej niż sama naprawa.
Dostałem e-mail o krytycznym błędzie. Co z nim zrobić?
To wiadomość WordPressa z linkiem do trybu awaryjnego, który pozwala zalogować się z wyłączonymi wtyczkami. W treści zwykle jest nazwa wtyczki albo motywu, który wywołał błąd, więc warto zacząć właśnie od niej.
Bezpłatna wycena