Błąd krytyczny w WordPressie: co oznacza i jak go naprawić
Komunikat 'Wystąpił błąd krytyczny w Twojej witrynie' zastąpił dawny biały ekran. Wyjaśniamy, co WordPress próbuje Ci powiedzieć, gdzie znaleźć prawdziwy błąd i jak go bezpiecznie usunąć.
Marcin Ledwolorz
CEO, APTURN
Krótka odpowiedź: 'Wystąpił błąd krytyczny w Twojej witrynie' to komunikat, którym WordPress od wersji 5.2 zasłania fatalny błąd PHP. Prawdziwa informacja, czyli który plik i która linia kodu zawiodły, czeka w logu błędów albo w mailu, którego WordPress wysłał na adres administratora. Najczęstsi winowajcy to wtyczka po aktualizacji, niekompatybilna wersja PHP i wyczerpany limit pamięci. Nie zgaduj: przeczytaj błąd, a naprawa zwykle okazuje się prosta.
Krok 1: znajdź mail od WordPressa
Razem z komunikatem o błędzie WordPress wysyła wiadomość 'Twoja witryna ma problem techniczny' na adres administratora. Ten mail zawiera dwie bezcenne rzeczy: nazwę wtyczki lub motywu, który wywołał błąd, oraz link do trybu odzyskiwania, przez który zalogujesz się do kokpitu z wyłączonym winowajcą. Jeśli masz ten mail, większość diagnozy jest już za Tobą. Sprawdź też spam i upewnij się, że wiesz, na jaki adres w ogóle ustawiony jest mail administratora (Ustawienia, Ogólne).
Krok 2: przeczytaj prawdziwy błąd
Bez maila też dasz radę. Log błędów PHP znajdziesz w panelu hostingu (plik error_log, często w katalogu strony) albo włącz logowanie w WordPressie: w pliku wp-config.php dodaj define('WP_DEBUG', true) oraz define('WP_DEBUG_LOG', true), odśwież stronę i zajrzyj do wp-content/debug.log. Szukasz linii zaczynającej się od 'PHP Fatal error'. Ścieżka pliku wskazuje winowajcę: wp-content/plugins/nazwa oznacza wtyczkę, wp-content/themes/nazwa motyw, a wp-includes lub wp-admin uszkodzone pliki samego WordPressa.
Bezpieczeństwo
Nie zostawiaj włączonego wyświetlania błędów na ekranie (WP_DEBUG_DISPLAY) na działającej stronie: komunikaty potrafią zdradzać ścieżki serwera i szczegóły konfiguracji. Loguj do pliku, a po naprawie wyłącz debugowanie.
Krok 3: usuń przyczynę, nie objaw
- Wtyczka: wyłącz ją przez tryb odzyskiwania albo zmień nazwę jej katalogu przez FTP (wp-content/plugins/nazwa). Potem sprawdź, czy jest aktualizacja naprawiająca problem, albo poszukaj zamiennika.
- Motyw: zmiana nazwy katalogu aktywnego motywu przełączy stronę na motyw domyślny. Jeśli błąd zniknie, winowajcą jest motyw, zwykle po aktualizacji PHP.
- Limit pamięci ('Allowed memory size exhausted'): zwiększ go wpisem define('WP_MEMORY_LIMIT', '256M') w wp-config.php albo w panelu hostingu.
- Wersja PHP ('Call to undefined function', 'syntax error' po zmianie hostingu): przełącz wersję PHP w panelu hostingu. Stare wtyczki nie znoszą PHP 8.3+, nowe porzucają PHP 7.4.
- Uszkodzone pliki rdzenia: nadpisz katalogi wp-admin i wp-includes czystymi plikami z wordpress.org, nie ruszając wp-content i wp-config.php.
A jeśli błąd pojawia się tylko czasami?
Błąd krytyczny występujący losowo, na przykład tylko przy większym ruchu albo tylko w kokpicie, wskazuje zwykle na wyczerpujące się zasoby (pamięć, procesy PHP) albo konflikt ujawniający się w konkretnym scenariuszu. W takiej sytuacji log błędów z dokładnymi godzinami wystąpień to podstawa diagnozy, a doraźne zwiększenie limitów tylko odsuwa problem. Warto też sprawdzić, czy błędy nie zaczęły się po konkretnej aktualizacji: korelacja dat w logu z historią aktualizacji często wskazuje winowajcę od razu.
Jak uniknąć powtórki
- Aktualizuj wtyczki świadomie, nie automatem na produkcji: najpierw kopia albo staging
- Utrzymuj aktualną wersję PHP, ale zmieniaj ją najpierw na kopii strony
- Regularnie usuwaj wtyczki, których nie używasz
- Miej codzienny backup poza serwerem: naprawa zaczyna się wtedy od spokoju, nie od paniki
Błąd krytyczny właśnie teraz, a strona zarabia?
Przywracamy strony i sklepy po błędach krytycznych: diagnoza z logów, naprawa przyczyny, raport z zaleceniami. Wycena przed startem prac, kopia bezpieczeństwa przed zmianami.
Potrzebujesz pomocy z tym tematem?
Wdrażamy to, o czym piszemy. Porozmawiaj z nami o swoim projekcie - bezpłatna konsultacja bez zobowiązań.