Błąd krytyczny i biały ekran

Błąd krytyczny w WordPress – jak go naprawić

Komunikat „W witrynie wystąpił błąd krytyczny” wygląda groźnie, ale prawie zawsze da się go naprawić bez utraty danych. Najczęściej winna jest wtyczka, motyw albo zbyt stara lub zbyt nowa wersja PHP. Oto jak krok po kroku znaleźć przyczynę.

  • 7 min czytania
  • Alan Adamczyk

Najważniejsze w 30 sekund

  • Treści i zamówienia są bezpieczne w bazie danych – psuje się tylko kod, który je wyświetla.
  • Najpierw sprawdź e-mail administratora: WordPress zwykle podaje winną wtyczkę i link do trybu odzyskiwania.
  • Brak e-maila? Włącz debug.log i przeczytaj, który plik wywołał błąd.
  • Najczęstsza naprawa: wyłączenie wtyczki przez zmianę nazwy jej folderu.

2

źródła, które wskażą winowajcę: e-mail i debug.log

5.2

od tej wersji WordPress ma tryb odzyskiwania

0

utraconych wpisów – treści są w bazie danych

1 folder

zmiana jego nazwy wyłącza wszystkie wtyczki

Najpierw: nie panikuj i zrób kopię

Błąd krytyczny oznacza, że PHP natrafił na problem, którego nie umie obejść, i przerwał wyświetlanie strony. Twoje wpisy, strony i zamówienia są bezpieczne – leżą w bazie danych, a błąd dotyczy kodu, który je wyświetla.

Zanim cokolwiek zmienisz, zrób kopię zapasową plików i bazy. Większość hostingów ma do tego przycisk w panelu, a w Zenbox kopie robią się automatycznie kilka razy dziennie – przed naprawą warto mieć pewność, że najnowsza jest na miejscu.

Błąd krytyczny prawie zawsze ma jedną przyczynę, którą widać w e-mailu albo w logu. Zgadywanie trwa godzinami – czytanie logu kilka minut.

Mapa naprawy w 6 krokach

Idź po kolei i zatrzymaj się, gdy strona zacznie działać. Większość awarii kończy się na kroku 1 albo 3.

1

Sprawdź e-mail i tryb odzyskiwania

WordPress zwykle sam podaje winną wtyczkę i daje link do logowania mimo błędu.

2

Włącz zapisywanie błędów

Plik debug.log pokaże dokładną ścieżkę do pliku, który przerwał działanie strony.

3

Wyłącz wtyczki

Zmiana nazwy folderu plugins wyłącza wszystkie naraz – bez logowania do panelu.

4

Sprawdź motyw

Zmiana nazwy folderu motywu przełącza stronę na motyw domyślny.

5

Sprawdź PHP i limit pamięci

Zła wersja PHP albo za mało pamięci to dwie kolejne częste przyczyny.

6

Wgraj od nowa pliki WordPressa

Gdy uszkodził się rdzeń, np. po przerwanej aktualizacji.

Krok 1: Sprawdź e-mail i użyj trybu odzyskiwania

Otwórz skrzynkę, na którą przychodzą powiadomienia z WordPressa (adres administratora z Ustawienia → Ogólne). Szukaj wiadomości „Twoja witryna ma problem techniczny”. WordPress pisze w niej, która wtyczka lub motyw spowodowały błąd, i dołącza specjalny link.

Komunikat „W witrynie wystąpił błąd krytyczny” w WordPressie i e-mail „Twoja witryna ma problem techniczny” z linkiem do trybu odzyskiwania

Ilustracja: tak wygląda błąd krytyczny dla odwiedzającego (po lewej) i e-mail z linkiem do trybu odzyskiwania (po prawej).

Kliknij link i zaloguj się. Trafisz do panelu, a winna wtyczka będzie oznaczona na liście wtyczek. Wyłącz ją – strona od razu wróci dla odwiedzających. Potem sprawdź, czy wtyczka nie ma aktualizacji, albo poszukaj zamiennika.

Nie ma e-maila? Zajrzyj do spamu. Jeśli strona nie wysyła maili w ogóle, link nie dojdzie – wtedy przejdź do kroku 2, a później skonfiguruj wysyłkę według poradnika WordPress nie wysyła e-maili – konfiguracja SMTP.

Krok 2: Włącz zapisywanie błędów do pliku

Połącz się z serwerem przez FTP albo Menedżer plików w panelu hostingu i otwórz plik wp-config.php w głównym katalogu strony. Nad linią „That's all, stop editing!” wpisz (a jeśli WP_DEBUG już tam jest, zmień tylko wartość):

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

Odśwież stronę z błędem. Komunikat zapisze się w pliku wp-content/debug.log, a odwiedzający go nie zobaczą. Szukaj linii z PHP Fatal error:

/plugins/nazwa/

Błąd wywołała wtyczka z tego folderu. Przejdź do kroku 3 i wyłącz tylko ją – zmień nazwę jej folderu.

/themes/nazwa/

Winny jest motyw. Przejdź do kroku 4.

Allowed memory size

Zabrakło pamięci PHP. Przejdź do kroku 5.

/wp-includes/ lub /wp-admin/

Błąd w plikach rdzenia – najczęściej po przerwanej aktualizacji. Przejdź do kroku 6.

Krok 3: Wyłącz wtyczki bez logowania do panelu

Wtyczki to najczęstsza przyczyna, zwłaszcza zaraz po aktualizacji. W Menedżerze plików wejdź do wp-content i zmień nazwę folderu plugins na plugins-off. WordPress nie znajdzie wtyczek i wyłączy je wszystkie naraz.

Menedżer plików na hostingu – zmiana nazwy folderu wp-content/plugins na plugins-off, aby wyłączyć wszystkie wtyczki WordPressa

Ilustracja: zmiana nazwy folderu plugins w Menedżerze plików. Tak samo zrobisz to w programie FTP, np. FileZilli.

1

Sprawdź stronę

Działa? Winna jest któraś wtyczka. Nie działa? Przywróć nazwę plugins i przejdź do kroku 4.

2

Przywróć nazwę folderu

Zmień plugins-off z powrotem na plugins. Wtyczki zostaną wyłączone w panelu.

3

Włączaj wtyczki po kolei

W panelu Wtyczki włączaj je pojedynczo i po każdej odśwież stronę. Ta, po której błąd wróci, jest winowajcą.

Znasz winną wtyczkę z logu albo e-maila? Nie wyłączaj wszystkich – zmień nazwę tylko jej folderu, np. stary-formularz na stary-formularz-off. Reszta strony działa dalej, a Ty nie musisz włączać wtyczek od nowa.

Nie chcesz grzebać w plikach serwera?

Znajdę przyczynę błędu, przywrócę stronę i sprawdzę, czy problem nie wróci przy następnej aktualizacji. Pilne awarie traktuję priorytetowo.

Zgłoś awarię  →

Krok 4: Sprawdź motyw

Jeśli wyłączenie wtyczek nie pomogło, podejrzany jest motyw. W wp-content/themes zmień nazwę folderu aktywnego motywu. WordPress przełączy się na motyw domyślny (np. Twenty Twenty-Five) – o ile jest zainstalowany, więc nie usuwaj go nigdy z serwera.

Częsty winowajca to własne zmiany w pliku functions.php. Jeden brakujący średnik czy nawias potrafi wyłączyć całą stronę. Cofnij ostatnią zmianę, a nowy kod dodawaj przez motyw potomny albo wtyczkę typu Code Snippets – ta druga sama wyłącza fragment, który powoduje błąd.

Krok 5: Wersja PHP i limit pamięci

Zła wersja PHP

Stara wtyczka nie działa na nowym PHP, a nowa na zbyt starym. Błąd pojawił się zaraz po zmianie PHP? Wróć do poprzedniej wersji w panelu hostingu i zajrzyj do poradnika o migracji PHP.

Za mało pamięci

W logu widzisz Allowed memory size exhausted? Dodaj w wp-config.php linię define( 'WP_MEMORY_LIMIT', '256M' );. Jeśli nie pomaga, limit trzeba podnieść też w ustawieniach PHP hostingu.

Krok 6: Wgraj od nowa pliki WordPressa

Rzadziej przyczyną są uszkodzone pliki rdzenia, np. po aktualizacji przerwanej w połowie. Pobierz tę samą wersję WordPressa z wordpress.org, rozpakuj ją i wgraj na serwer foldery wp-admin i wp-includes, nadpisując stare.

Nie nadpisuj folderu wp-content ani pliku wp-config.php. W wp-content są Twoje motywy, wtyczki i wszystkie wgrane zdjęcia, a w wp-config.php – dane do bazy danych. Nadpisanie ich nowymi plikami z wordpress.org skasuje Twoją stronę.

Po naprawie: posprzątaj

  • Wyłącz debugowanie – ustaw WP_DEBUG na false.
  • Usuń plik debug.log – zawiera ścieżki serwera, których nie powinni widzieć obcy.
  • Usuń foldery z końcówką -off albo przywróć ich nazwy, żeby nie zostały martwe kopie.
  • Zaktualizuj lub wymień winną wtyczkę – inaczej błąd wróci.

Jak uniknąć błędu krytycznego w przyszłości

Tak błąd wraca

  • aktualizacja wszystkich wtyczek naraz
  • brak kopii zapasowej przed zmianami
  • kod wklejony prosto do functions.php
  • porzucone wtyczki bez aktualizacji
  • zmiana PHP bez testu

Tak masz spokój

  • aktualizacje pojedynczo, z kontrolą strony
  • kopia zapasowa przed każdą zmianą
  • własny kod przez Code Snippets
  • nieużywane wtyczki usunięte
  • test na kopii strony (staging)

Podsumowanie

Błąd krytyczny to prawie zawsze wtyczka, motyw albo wersja PHP. E-mail z trybem odzyskiwania i plik debug.log zwykle wskazują winowajcę w kilka minut, a zmiana nazwy folderu wyłącza go bez logowania do panelu. Jeśli strona nadal nie działa – albo nie chcesz ryzykować – pomogę.

Awaria strony

Naprawię błąd krytyczny na Twojej stronie

Zajmę się wszystkim od diagnozy po zabezpieczenie na przyszłość:

  • Diagnoza – znajdę wtyczkę, motyw lub ustawienie, które powoduje błąd
  • Szybki powrót strony – najpierw przywrócę działanie dla klientów
  • Trwała naprawa – aktualizacja, zamiennik albo poprawka kodu
  • Kopia zapasowa przed każdą zmianą
  • Sprzątanie – wyłączony debug, usunięte logi i pozostałości
Zgłoś awarię  →

Odpowiadam zwykle w ciągu 12 godzin, pilne awarie mają pierwszeństwo.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Bezpłatna wycena

Poznaj wycenę

Opisz krótko, czego potrzebujesz – odpowiem z wyceną i terminem, zwykle w ciągu 3 godzin w dni robocze.

Na kiedy?

Wycena jest bezpłatna i do niczego nie zobowiązuje.