Przejdź do treści
Problemy pilne

Błąd 500 w WordPress - jak zdiagnozować i naprawić?

Błąd 500 to komunikat serwera, który mówi tylko tyle, że coś przerwało wykonywanie skryptu. Nie wskazuje przyczyny, bo przyczyna siedzi w logu, a nie na ekranie. Dlatego naprawa zaczyna się od włączenia logowania błędów, a nie od zgadywania, która wtyczka zawiniła. Dobra wiadomość: błąd 500 nie uszkadza treści. Baza danych i pliki zostają nietknięte, więc po usunięciu przyczyny strona wraca w tym samym stanie, w jakim była.

Co oznacza błąd 500 Internal Server Error?

To zbiorcza odpowiedź serwera na sytuację, w której skrypt PHP przerwał pracę i nie zdążył wygenerować strony. Serwer wie, że coś poszło nie tak, ale nie ma nic sensownego do pokazania, więc odsyła kod 500.

Z perspektywy odwiedzającego wygląda to jak awaria całej witryny. Z perspektywy Googlebota to sygnał, żeby wrócić później, i przy dłuższej awarii adresy zaczynają wypadać z indeksu. Kilka godzin nie robi różnicy, kilka dni już tak.

Błąd 500 różni się od dwóch podobnych. Kod 502 i 504 wskazują na problem między serwerami, zwykle po stronie hostingu. Biały ekran bez żadnego kodu oznacza zwykle wyczerpanie pamięci PHP przy wyłączonym wyświetlaniu błędów.

Krok 1: włącz logi, zanim cokolwiek zmienisz

Bez logu naprawa jest zgadywanką. W pliku `wp-config.php` włącz zapisywanie błędów do pliku, zamiast wyświetlać je odwiedzającym:

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

Log pojawi się w `wp-content/debug.log`. Odśwież stronę, która zwraca błąd, i przeczytaj ostatnie wpisy - zawierają ścieżkę do pliku i numer linii, czyli dokładnie to, czego szukasz.

Drugie miejsce to log serwera w panelu hostingu, zwykle jako Error Log. Tam trafiają błędy, które wystąpiły, zanim WordPress w ogóle wystartował, na przykład problem z `.htaccess` albo z uprawnieniami do plików.

Po skończonej diagnostyce wyłącz tryb debugowania. Zostawiony na produkcji zapisuje wszystko bez końca i potrafi zapełnić dysk.

Krok 2: wyklucz wtyczkę albo motyw

Najczęstsza przyczyna to konflikt kodu, zwykle po aktualizacji. Sprawdzenie jest proste, o ile masz dostęp przez FTP lub menedżer plików.

Zmień nazwę katalogu `wp-content/plugins` na `plugins-off`. Jeśli strona wróci, przyczyna jest w jednej z wtyczek. Przywróć nazwę i wyłączaj je pojedynczo, aż błąd zniknie.

Jeśli wtyczki nie są winne, zmień nazwę katalogu aktywnego motywu. WordPress wróci do motywu domyślnego i pokaże, czy problem siedzi w szablonie.

Ta metoda działa też bez dostępu do panelu, co jest istotne, bo przy błędzie 500 zwykle nie da się zalogować do administracji.

Krok 3: sprawdź .htaccess, uprawnienia i pamięć PHP

Trzy pozostałe przyczyny odpowiadają za większość reszty przypadków.

PrzyczynaObjaw w loguNaprawa
Uszkodzony `.htaccess`Invalid command, syntax errorzmień nazwę pliku i zapisz linki bezpośrednie od nowa
Wyczerpana pamięć PHPAllowed memory size exhaustedpodnieś limit do 256M
Złe uprawnienia plikówPermission deniedkatalogi 755, pliki 644
Przekroczony czas wykonaniaMaximum execution timezwiększ limit lub znajdź wolny fragment kodu

Limit pamięci podnosisz wpisem `define( 'WP_MEMORY_LIMIT', '256M' );` w `wp-config.php`. Jeśli to nie pomaga, ograniczenie siedzi w konfiguracji serwera i trzeba je zmienić w panelu hostingu.

Uprawnień nie ustawiaj na 777. To otwiera zapis dla wszystkich procesów na serwerze i jest jedną z częstszych dróg wejścia przy włamaniach.

Błąd 500 a 502, 503 i biały ekran

Cztery różne objawy bywają mylone, a każdy prowadzi gdzie indziej.

KodCo się stałoGdzie szukać
500skrypt PHP przerwał pracęlog WordPressa i log serwera
502serwer pośredniczący nie doczekał się odpowiedzikonfiguracja i obciążenie serwera
503usługa chwilowo niedostępna, często tryb konserwacjiplik `.maintenance`, przerwana aktualizacja
biały ekranwyczerpana pamięć przy wyłączonym wyświetlaniu błędówlimit pamięci PHP

Najczęstszy fałszywy alarm to 503 po przerwanej aktualizacji. WordPress zostawia wtedy plik `.maintenance` w katalogu głównym i witryna zgłasza niedostępność, dopóki tego pliku nie usuniesz. To sekunda pracy, o ile wiadomo, czego szukać.

Kiedy przyczyna leży po stronie hostingu?

Jeśli błąd pojawia się falami, w godzinach największego ruchu, i znika sam, sprawdź obciążenie konta w panelu hostingu. Na współdzielonym serwerze przekroczenie limitu procesów kończy się właśnie kodem 500.

Według ofert popularnych hostingów pakiety za 20-30 zł miesięcznie mają najniższe limity procesów i pamięci, więc to na nich błąd 500 pojawia się najczęściej przy większym ruchu. Przy sklepie albo witrynie z realnym ruchem to pierwsza rzecz do zmiany.

Drugi trop to zmiana wersji PHP. Przejście na nowszą wersję potrafi wyłożyć stary motyw albo wtyczkę bez wsparcia. W panelu hostingu da się wrócić do poprzedniej wersji i sprawdzić, czy to była przyczyna.

Zanim ktokolwiek zacznie grzebać w kodzie, warto zapytać hosting, czy nie zmieniał wersji PHP ani limitów. Co kilka miesięcy okazuje się, że to cała historia.
Krzysztof Czapnik, KC Mobile

Ile kosztuje naprawa i jak długo trwa?

Prosta przyczyna to zwykle kilkadziesiąt minut pracy, bo log wskazuje plik i linię.

Według naszego cennika typowe przypadki, czyli uszkodzony `.htaccess` albo konflikt wtyczek, mieszczą się w 200-500 zł. Dane z trudniejszych zgłoszeń pokazują 500-1000 zł tam, gdzie trzeba przejść przez logi serwera, konfigurację PHP i kod motywu.

Odpowiadamy w ciągu godziny od zgłoszenia, bo przy kodzie 500 strona jest niedostępna dla wszystkich. Po naprawie dostajesz krótki raport: co było przyczyną i co zrobić, żeby się nie powtórzyła.

Jak zmniejszyć ryzyko powtórki?

  • Aktualizuj wtyczki pojedynczo, nie wszystkie naraz, żeby wiedzieć, co zepsuło stronę
  • Trzymaj kopię zapasową z ostatniej doby i sprawdź raz, czy odtwarzanie działa
  • Testuj aktualizacje na kopii, jeśli witryna zarabia
  • Usuwaj wtyczki nieużywane, bo nieaktywna wtyczka nadal bywa aktualizowana i nadal potrafi wywołać konflikt
  • Pilnuj wersji PHP i wyprzedzaj wymuszone migracje hostingu

Prowadzimy to jako stałą opiekę nad stroną WordPress razem z kopiami zapasowymi i monitoringiem dostępności. Jeśli błąd 500 blokuje Ci stronę teraz, napisz przez formularz na stronie kontakt i wklej ostatnie linie z `debug.log`.

Korzyści

  • Diagnoza z logu, nie z zgadywania - wiemy, gdzie szukać: debug.log, error log, .htaccess
  • Naprawa bez utraty danych, bo błąd 500 nie narusza treści ani bazy
  • Przy okazji wychwytujemy inne problemy: wersję PHP, limity, uprawnienia plików
  • Krótki raport po naprawie: co było przyczyną i jak zapobiec powtórce

Najczęściej zadawane pytania

Czy błąd 500 oznacza włamanie?
Rzadko. Najczęściej to konflikt wtyczek, uszkodzony `.htaccess` albo wyczerpany limit pamięci. Przy naprawie i tak sprawdzamy bezpieczeństwo, bo złośliwy kod potrafi wywołać identyczny objaw.
Dlaczego błąd 500 pojawia się tylko na niektórych podstronach?
To dobry trop. Oznacza, że problem dotyczy funkcji używanej tylko tam. Błąd wyłącznie na kartach produktów wskazuje na wtyczkę sklepu, a wyłącznie w panelu administracyjnym na wtyczkę działającą po zalogowaniu.
Czy stracę treści po błędzie 500?
Nie. Błąd 500 przerywa wykonywanie skryptu, ale nie kasuje danych. Wpisy, strony i ustawienia zostają w bazie nienaruszone i wracają razem z witryną.
Czy mogę naprawić błąd 500 samodzielnie?
Przy dostępie do FTP i logów tak. Wyłączenie wtyczek przez zmianę nazwy katalogu i sprawdzenie `.htaccess` rozwiązuje większość przypadków. Jeśli log wskazuje na konfigurację serwera, dalsze kroki wymagają dostępu, którego zwykle nie ma się na współdzielonym hostingu.
Ile kosztuje naprawa błędu 500?
Proste przypadki to 200-500 zł, trudniejsze, wymagające przejścia przez logi serwera i kod motywu, 500-1000 zł. Wycenę podajemy po zajrzeniu do logu.
Czy błąd 500 szkodzi pozycjom w Google?
Krótka awaria nie. Googlebot traktuje kod 500 jako sygnał, żeby wrócić później. Problem zaczyna się przy awarii ciągnącej się dniami, bo wtedy adresy zaczynają wypadać z indeksu i trzeba je odzyskiwać.
Bezpłatna wycena