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.
Spis treści
ToggleNajczę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ć:
- Zaloguj się przez FTP do katalogu głównego WordPressa.
- Zmień nazwę
.htaccessna.htaccess-backup. - Odśwież stronę – jeśli działa, problem był w .htaccess.
- Wejdź do wp-admin → Ustawienia → Bezpośrednie odnośniki → kliknij „Zapisz zmiany” – WordPress wygeneruje czysty .htaccess.
- 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ć:
- FTP →
wp-content/→ zmień nazwę folderupluginsnaplugins-off. - Odśwież stronę – jeśli działa, winowajca to wtyczka.
- Przywróć
plugins→ wyłączaj wtyczki po jednej (zmieniaj nazwy folderów poszczególnych wtyczek) → odświeżaj po każdej → znajdź tę wadliwą. - 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_DEBUG → false). 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
- .htaccess → zmień nazwę na .htaccess-backup → odśwież. Działa? Problem znaleziony.
- Wtyczki → FTP → plugins → plugins-off → odśwież. Działa? Wyłączaj po jednej.
- Motyw → zmień nazwę aktywnego motywu → WordPress ładuje domyślny.
- PHP memory → wp-config.php:
define('WP_MEMORY_LIMIT', '256M'); - Wersja PHP → wróć do poprzedniej w panelu hostingu.
- wp-config.php → sprawdź ostatnią edycję, porównaj z wp-config-sample.php.
- Uprawnienia → pliki 644, foldery 755.
- debug.log → włącz WP_DEBUG, odśwież, czytaj log.
- Core WP → wgraj świeże wp-admin/ i wp-includes/ z wordpress.org.
- 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.

