Ten komunikat wygląda jak koniec świata, a w praktyce niemal zawsze oznacza jedną zepsutą wtyczkę albo motyw. „W witrynie wystąpił błąd krytyczny” to sposób WordPressa na powiedzenie: jakiś kawałek kodu PHP się wysypał i zatrzymałem wszystko, zanim zrobi się gorzej. Dane są całe - produkty, wpisy, zamówienia siedzą w bazie nietknięte. Trzeba tylko znaleźć i odłączyć winowajcę.
Piszę ten tekst tak, żebyś mógł przejść przez naprawę samodzielnie, po kolei, bez znajomości kodu. A jeśli w którymś kroku poczujesz, że to nie Twoja bajka - na końcu jest droga na skróty.
Co ten błąd naprawdę znaczy
WordPress to silnik plus kilkadziesiąt dodatków: motyw i wtyczki. Każda aktualizacja, nowa wtyczka albo zmiana na serwerze może sprawić, że któryś z tych elementów przestanie się dogadywać z resztą. Wtedy PHP przerywa pracę, a Ty widzisz właśnie ten komunikat - często w najgorszym możliwym momencie, bo błąd lubi się ujawnić po automatycznej aktualizacji w nocy.
Najczęstsze przyczyny, w kolejności od najbardziej prawdopodobnej:
- Wtyczka po aktualizacji - konflikt z inną wtyczką albo ze starszą wersją WordPressa
- Motyw - zwłaszcza modyfikowany ręcznie albo dawno nieaktualizowany
- Za stara lub za nowa wersja PHP na serwerze względem tego, czego wymaga któraś wtyczka
- Wyczerpany limit pamięci - strona urosła, limit został z czasów, gdy była mała
- Uszkodzone pliki po nieudanej aktualizacji albo przerwanym wgrywaniu
Krok 1 - sprawdź maila
WordPress przy błędzie krytycznym wysyła wiadomość na adres administratora strony, z tematem w stylu „Twoja witryna ma problem techniczny”. W środku są dwie cenne rzeczy: nazwa wtyczki lub motywu, który spowodował błąd, oraz link do trybu ratunkowego - specjalnego logowania, które uruchamia panel z wyłączonym winowajcą.
Jeśli masz tego maila: kliknij link, zaloguj się, wyłącz wskazaną wtyczkę i strona wraca. Potem sprawdź, czy jest jej nowsza wersja, albo poszukaj zamiennika. To najkrótsza wersja całej naprawy.
Co pomaga: sprawdź też folder spam i upewnij się, jaki adres jest ustawiony jako mail administratora. Na wielu stronach, które ratuję, ten adres to stara skrzynka sprzed lat - i cenne maile ratunkowe lecą w próżnię.
Krok 2 - bez maila: wyłącz wtyczki przez FTP
Nie masz maila albo link wygasł? Wchodzisz od zaplecza - przez FTP albo menedżer plików w panelu hostingu (każdy hosting go ma, zwykle pod nazwą „Menedżer plików” lub „WebFTP”).
- Znajdź folder
wp-content/plugins - Zmień nazwę całego folderu
pluginsnaplugins-off- to wyłącza wszystkie wtyczki naraz - Otwórz stronę. Działa? Winowajcą jest któraś wtyczka
- Przywróć nazwę
plugins, a potem zmieniaj nazwy pojedynczych folderów wtyczek po kolei, za każdym razem sprawdzając stronę - aż znajdziesz tę jedną - Zostaw ją wyłączoną, resztę włącz z powrotem
Jeśli wyłączenie wszystkich wtyczek nic nie dało, ten sam manewr wykonaj na motywie: w wp-content/themes zmień nazwę folderu aktywnego motywu. WordPress przełączy się na domyślny motyw i strona - choć brzydka - powinna wstać.
Krok 3 - gdy to nie wtyczka i nie motyw
Zostają rzeczy serwerowe. W panelu hostingu sprawdź wersję PHP - jeśli jest starsza niż 8.1, samo podniesienie potrafi rozwiązać problem (a przy okazji przyspieszyć stronę). Jeśli błąd pojawił się właśnie po podniesieniu wersji - zejdź o jedną w dół i zaplanuj aktualizację wtyczek, które nie nadążyły.
Limit pamięci podnosi się wpisem w pliku wp-config.php, ale tu jesteśmy już na granicy samodzielnej naprawy - jedna literówka w tym pliku i strona nie wstanie wcale. Jeżeli dotarłeś do tego punktu bez efektu, prawdopodobnie problem jest głębszy: uszkodzone pliki silnika, baza danych albo coś, co wygląda na błąd krytyczny, a jest błędem 500 po stronie serwera - to pokrewna awaria, ale diagnozuje się ją inaczej.
Czego nie robić
- Nie instaluj WordPressa od nowa - to prawie nigdy nie jest potrzebne i łatwo przy tym stracić konfigurację
- Nie kasuj wtyczek na ślepo - wyłączenie (zmiana nazwy folderu) jest odwracalne, kasowanie bywa nie
- Nie zostawiaj strony „na jutro” - dla Google i klientów strona z błędem to strona, której nie ma; po kilku dniach zaczyna to kosztować pozycje
Osobna uwaga: jeśli oprócz błędu widzisz na stronie obce treści, dziwne przekierowania albo hosting pisze o złośliwym kodzie - to nie jest zwykła awaria. Wtedy działasz według planu ratunkowego dla zhakowanej strony, bo samo wyłączanie wtyczek nie usunie intruza.
Jak nie wrócić do tego za miesiąc
Błąd krytyczny to prawie zawsze skutek, nie przyczyna. Przyczyną jest brak rytmu: aktualizacje robione hurtowo raz na pół roku, bez kopii zapasowej i bez sprawdzenia strony po. Jak to poukładać - z backupem przed i testem po - rozpisałem w checkliście bezpiecznych aktualizacji. Alternatywą jest oddanie tego rytmu komuś, kto robi to zawodowo w ramach stałej opieki nad stroną - wtedy taka awaria kończy się SMS-em „naprawione”, zanim zdążysz ją zauważyć.
Najczęstsze pytania
Czy błąd krytyczny zniknie sam? Nie. Do momentu wyłączenia winowajcy strona będzie leżeć - a każdy dzień to utraceni klienci i sygnał dla Google, że witryna jest nieczynna.
Czy moje dane są bezpieczne? Tak, treści i zamówienia są w bazie danych, której ten błąd nie dotyka. Ryzyko pojawia się dopiero przy nerwowych ruchach - reinstalacjach i kasowaniu plików.
Ile kosztuje naprawa u specjalisty? Typowa diagnoza plus naprawa to godziny pracy, nie dni. Konkretną kwotę podaję po obejrzeniu strony - zawsze na piśmie, przed rozpoczęciem.
Powiązane: Błąd 500 w WordPress · Strona zhakowana - plan ratunkowy · Stała opieka nad stroną