Błąd 500 Internal Server Error – co oznacza, skąd się bierze i jak go naprawić

Błąd 500 (Internal Server Error) to ogólnikowy komunikat serwera mówiący „coś poszło nie tak, ale nie wiem co”. W odróżnieniu od 503 (Service Unavailable), który mówi „jestem przeciążony”, błąd 500 oznacza, że serwer napotkał nieoczekiwany warunek uniemożliwiający wykonanie żądania – crash PHP, zepsutna konfiguracja .htaccess, brak pamięci, błąd w kodzie wtyczki. To najczęstszy błąd serwerowy na stronach WordPress.

Najczęstsze przyczyny błędu 500 na WordPress

1. Zepsuty plik .htaccess

Plik .htaccess steruje przepisywaniem URL-i, przekierowaniami, zabezpieczeniami i cache. Jeden błąd składniowy – literówka, brakujący tag zamykający, nieprawidłowa dyrektywa – i cały serwer zwraca 500 dla każdego żądania.

Jak naprawić:

  1. Zaloguj się przez FTP do katalogu głównego WordPressa.
  2. Zmień nazwę .htaccess na .htaccess-backup.
  3. Odśwież stronę – jeśli działa, problem był w .htaccess.
  4. Wejdź do wp-admin → Ustawienia → Bezpośrednie odnośniki → kliknij „Zapisz zmiany” – WordPress wygeneruje czysty .htaccess.
  5. Jeśli miałeś niestandardowe reguły w .htaccess (przekierowania, zabezpieczenia) – dodawaj je po jednej i testuj po każdej, żeby znaleźć tę wadliwą.

2. Limit pamięci PHP wyczerpany

WordPress i wtyczki potrzebują pamięci RAM do działania. Domyślny limit PHP na wielu hostingach to 64–128 MB – przy ciężkich wtyczkach (Elementor, WooCommerce, WPML) to może być za mało → PHP się wysypuje → 500.

Jak naprawić: zwiększ limit pamięci PHP. W wp-config.php dodaj: define('WP_MEMORY_LIMIT', '256M');. Lub w php.ini: memory_limit = 256M. Lub w panelu hostingu: sekcja PHP → memory_limit → 256M.

3. Wtyczka lub motyw z błędem

Aktualizacja wtyczki wprowadziła konflikt lub fatal error w kodzie PHP → serwer nie może wygenerować strony → 500. To najczęstsza przyczyna 500 na WordPress – szczególnie po aktualizacjach.

Jak naprawić:

  1. FTPwp-content/ → zmień nazwę folderu plugins na plugins-off.
  2. Odśwież stronę – jeśli działa, winowajca to wtyczka.
  3. Przywróć plugins → wyłączaj wtyczki po jednej (zmieniaj nazwy folderów poszczególnych wtyczek) → odświeżaj po każdej → znajdź tę wadliwą.
  4. Jeśli wyłączenie wtyczek nie pomaga → zmień motyw: FTP → wp-content/themes/ → zmień nazwę aktywnego motywu → WordPress przełączy się na domyślny (Twenty Twenty-Five).

4. Zepsuty plik wp-config.php

Edytowałeś wp-config.php (zmiana danych bazy, dodawanie stałych) i wprowadził się błąd składniowy: brakujący średnik, niezamknięty cudzysłów, podwójny <?php. PHP nie może sparsować pliku → 500.

Jak naprawić: FTP → otwórz wp-config.php → znajdź błąd (najczęściej ostatnia edycja). Porównaj z oryginalnym wp-config-sample.php. Najczęstsze: brakujący ; na końcu linii, literówka w nazwie stałej, nieparzyste cudzysłowy.

5. Uprawnienia plików (chmod) nieprawidłowe

Pliki WordPress powinny mieć uprawnienia 644, foldery 755. Jeśli uprawnienia są złe (np. 000, 777 na pliku PHP) – serwer nie może odczytać/wykonać pliku → 500.

Jak naprawić: FTP → zaznacz pliki → prawym → uprawnienia → 644 dla plików, 755 dla folderów. W terminalu SSH: find /var/www/html -type f -exec chmod 644 {} \; i find /var/www/html -type d -exec chmod 755 {} \;.

6. Wersja PHP niekompatybilna

Zmiana wersji PHP na wyższą (np. 7.4 → 8.2) → stara wtyczka lub motyw używa funkcji usuniętej z nowej wersji PHP → fatal error → 500.

Jak naprawić: w panelu hostingu: wróć do poprzedniej wersji PHP (sekcja PHP → zmień wersję). Potem: zaktualizuj wtyczki i motyw do wersji kompatybilnych z PHP 8.x → ponów zmianę.

7. Uszkodzone pliki core WordPress

Rzadkie, ale możliwe: pliki WordPress core (wp-admin/, wp-includes/) zostały uszkodzone – przez nieudaną aktualizację, infekcję malware, awarię dysku.

Jak naprawić: pobierz świeżą wersję WordPress z wordpress.org/download → rozpakuj → przez FTP wgraj foldery wp-admin/ i wp-includes/ na serwer (nadpisz). NIE wgrywaj wp-content/ (tam są Twoje wtyczki i media) ani wp-config.php (Twoja konfiguracja).

Jak znaleźć konkretną przyczynę – debug.log

Włącz tryb debugowania WordPress – zapisuje błędy do pliku zamiast wyświetlać 500. W wp-config.php dodaj (przed linią /* That's all */):

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

Odśwież stronę (nadal 500 – ale teraz WordPress zapisał szczegóły). Otwórz: wp-content/debug.log → znajdź ostatni wpis → zobaczysz dokładny plik i linię z błędem (np. Fatal error: Call to undefined function xyz() in /wp-content/plugins/bad-plugin/main.php on line 42). To mówi Ci precyzyjnie co naprawić.

Po naprawie: wyłącz debug (WP_DEBUGfalse). Nie zostawiaj go włączonego na produkcji – logi rosną i mogą ujawnić wrażliwe informacje.

Logi serwera – jeśli debug.log nie pomaga

Jeśli WordPress nie zdążył nawet załadować się na tyle, żeby zapisać debug.log (bo np. błąd jest w wp-config.php lub .htaccess) – szukaj w logach serwera:

Serwer Lokalizacja logów
Apache /var/log/apache2/error.log lub ~/logs/error.log
Nginx /var/log/nginx/error.log
LiteSpeed /usr/local/lsws/logs/error.log
cPanel Metrics → Errors → error_log
PHP-FPM /var/log/php-fpm/error.log

Błąd 500 a SEO

Krótkotrwały 500 (minuty): zero wpływu – Googlebot ponowi próbę. Długotrwały 500 (godziny–dni): Google może tymczasowo usunąć strony z indeksu. 500 jest gorszy niż 503 – bo 503 mówi „wrócę” (z Retry-After), a 500 mówi „coś się zepsuło, nie wiem kiedy wrócę”. Napraw jak najszybciej.

Po naprawie: sprawdź Google Search Console → Stan indeksowania czy strony wróciły. Jeśli nie: Inspekcja URL → Poproś o indeksowanie (per strona).

Szybka checklista naprawy 500

  1. .htaccess → zmień nazwę na .htaccess-backup → odśwież. Działa? Problem znaleziony.
  2. Wtyczki → FTP → plugins → plugins-off → odśwież. Działa? Wyłączaj po jednej.
  3. Motyw → zmień nazwę aktywnego motywu → WordPress ładuje domyślny.
  4. PHP memory → wp-config.php: define('WP_MEMORY_LIMIT', '256M');
  5. Wersja PHP → wróć do poprzedniej w panelu hostingu.
  6. wp-config.php → sprawdź ostatnią edycję, porównaj z wp-config-sample.php.
  7. Uprawnienia → pliki 644, foldery 755.
  8. debug.log → włącz WP_DEBUG, odśwież, czytaj log.
  9. Core WP → wgraj świeże wp-admin/ i wp-includes/ z wordpress.org.
  10. Hosting → skontaktuj się jeśli nic nie pomaga (problem może być po ich stronie).

Najczęściej zadawane pytania

Błąd 500 widzi tylko ja czy wszyscy?

Zwykle wszyscy – 500 to błąd serwera, nie przeglądarki. Sprawdź: otwórz stronę na telefonie (przez dane mobilne, nie Wi-Fi) lub poproś znajomego. Jeśli też widzi 500 – problem serwerowy. Jeśli tylko Ty: sprawdź cache przeglądarki i VPN.

500 pojawia się tylko na jednej podstronie – co to?

Prawdopodobnie problem z konkretną wtyczką na tej stronie (shortcode, blok Gutenberga, custom field) lub uszkodzony wpis w bazie. Włącz WP_DEBUG → odśwież tę podstronę → debug.log pokaże konkretny plik/linię/wtyczkę.

500 tylko w wp-admin, frontend działa

Częste po aktualizacji wtyczki, która modyfikuje panel admina (Elementor, WooCommerce, WPML, ACF). Rozwiązanie: FTP → wyłącz wtyczki → sprawdź czy wp-admin wstaje → włączaj po jednej.

500 po wgraniu pliku .htaccess z internetu

Reguły .htaccess z poradników mogą nie pasować do Twojego serwera (np. reguły Apache na serwerze LiteSpeed/Nginx, moduł mod_rewrite wyłączony). Rozwiązanie: usuń wgrane reguły, przywróć domyślny .htaccess WordPressa (Ustawienia → Bezpośrednie odnośniki → Zapisz).

Czy mogę zobaczyć szczegóły błędu 500 zamiast białej strony?

Domyślnie serwer nie wyświetla szczegółów (bezpieczeństwo). Włącz WP_DEBUG z WP_DEBUG_DISPLAY = true (tymczasowo, na czas diagnozy!) – WordPress wyświetli szczegóły błędu na stronie zamiast 500. Wyłącz po naprawie – nie zostawiaj na produkcji.

Picture of Tomasz Zieliński
Tomasz Zieliński

Tomasz zajmuje się tematyką SEO, sztucznej inteligencji i automatyzacji pracy w marketingu internetowym. W swoich artykułach analizuje zmiany w algorytmach wyszukiwarek, rozwój narzędzi AI oraz nowe sposoby tworzenia i optymalizacji treści. Interesuje go przede wszystkim to, jak technologia wpływa na codzienną pracę specjalistów SEO, marketerów i twórców internetowych.

Facebook
Twitter
LinkedIn
Pinterest

Najnowsze Wpisy

Śledź nas