Jak naprawić błąd 500 w WordPressie: skuteczny poradnik

Błąd 500 w WordPressie – co to znaczy i skąd się bierze?

To ogólny błąd serwera, który mówi: “coś poszło nie tak po stronie serwera”, ale nie wskazuje od razu przyczyny.

Błąd 500 w WordPressie potrafi pojawić się nagle: strona przestaje działać, a Ty zamiast witryny widzisz tylko “Internal Server Error”. Najczęściej winne są niekompatybilne wtyczki lub motyw, uszkodzony plik .htaccess, zbyt niski limit pamięci PHP albo błędy w kodzie. Dobra wiadomość? W większości przypadków problem da się rozwiązać samodzielnie w kilku logicznych krokach.

Pierwsza zasada: zachowaj spokój. Ten błąd jest powszechny i istnieje sprawdzona ścieżka diagnostyczna, dzięki której szybko wrócisz do działania.

Zanim zaczniesz: kopia zapasowa i plan działania

Zrób kopię zapasową i notuj zmiany – to oszczędzi Ci nerwów, jeśli trzeba będzie się wycofać do wcześniejszej wersji.

  • Jeśli masz dostęp do panelu hostingu, pobierz backup plików i bazy danych.
  • Gdy nie masz gotowego backupu, skopiuj przynajmniej folder wp-content oraz plik wp-config.php przez FTP/Menedżera plików.
  • Notuj każdy krok: co zmieniłeś, o której godzinie i jaki był efekt.

Krok 1: włącz debugowanie błędów w WordPressie

Diagnostyka to połowa sukcesu – pokaż WordPressowi, by mówił wprost, co mu dolega.

W pliku wp-config.php znajdź lub dodaj w sekcji z ustawieniami debugowania:

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

Po zapisaniu odśwież stronę i sprawdź plik wp-content/debug.log. To tam pojawią się wskazówki (np. konkretna wtyczka lub funkcja powodująca błąd).

Jak bezpiecznie edytować wp-config.php

Użyj FTP lub menedżera plików w panelu hostingu, nie rób zmian “na żywo” w edytorach wtyczek.

  • Pobierz plik, zrób jego kopię i dopiero wtedy edytuj.
  • Upewnij się, że nie dodajesz spacji/znaków przed <?php – to może generować kolejne błędy.

Krok 2: sprawdź plik .htaccess i linki bezpośrednie

Uszkodzony .htaccess to częsty powód kłopotów, zwłaszcza po migracji lub zmianie wtyczek.

  • Zmień nazwę pliku .htaccess na .htaccess_old.
  • Spróbuj wejść na stronę – jeśli ruszyła, problem był w regułach.
  • Zaloguj się do /wp-admin (jeśli już działa), przejdź do Ustawienia → Bezpośrednie odnośniki i zapisz bez zmian, aby WordPress wygenerował nowy .htaccess.
  • Jeśli nie możesz się zalogować, pozostaw prosty .htaccess z podstawowymi regułami dla WordPressa (dla Apache). Host powinien mieć dokumentację z domyślnym przykładem.

Krok 3: zwiększ limit pamięci PHP

Zbyt niski limit pamięci to częsta przyczyna „Internal Server Error” przy cięższych wtyczkach i builderach.

  • W wp-config.php spróbuj: define('WP_MEMORY_LIMIT', '256M');
  • Jeśli to nie działa, ustawienia mogą być “nadpisywane” przez hosting – zwiększ limit w php.ini (np. memory_limit = 256M) lub w .htaccess (np. php_value memory_limit 256M) o ile hosting na to pozwala.
  • Po zmianie sprawdź, czy błąd ustąpił.

Krok 4: wyłącz wszystkie wtyczki naraz

Konflikt lub błąd aktualizacji wtyczki to prawdopodobnie najpopularniejsza przyczyna problemu.

  • Przez FTP wejdź do wp-content i zmień nazwę folderu plugins na plugins_disabled.
  • Odśwież stronę. Jeśli zaczęła działać, wina leży po stronie którejś wtyczki.
  • Przywróć nazwę plugins, a następnie w panelu WordPressa włączaj wtyczki po jednej, testując stronę za każdym razem.
  • Gdy winowajca się ujawni, zostaw go wyłączonego, poszukaj aktualizacji lub alternatywy, a problem zgłoś autorowi.

Jak zrobić to szybko i bezpiecznie

Najpierw przywróć dostęp do strony, później wracaj do funkcjonalności krok po kroku.

  • Jeśli nie masz panelu, włączaj wtyczki, zmieniając nazwy poszczególnych folderów (np. seo-by-yoastseo-by-yoast_off).
  • Zwróć uwagę na wtyczki cache, bezpieczeństwa, edytory wizualne, kompresję obrazów i integracje z zewnętrznymi API – one często sprawiają kłopoty.

Krok 5: zmień motyw na domyślny

Motyw może powodować błąd 500 w WordPressie, zwłaszcza jeśli zawiera własny builder lub stare funkcje.

  • Zmień nazwę folderu aktywnego motywu w wp-content/themes, aby WordPress automatycznie przełączył się na domyślny (np. Twenty Twenty-Four).
  • Jeśli strona zaczęła działać, zaktualizuj motyw lub skontaktuj się z jego twórcą.
  • Sprawdź też motyw potomny – błąd może tkwić w nadpisanych funkcjach.

Krok 6: sprawdź wersję PHP i rozszerzenia

Niezgodność wersji PHP z WordPressem, motywem lub wtyczkami potrafi wywołać 500-kę.

  • W panelu hostingu sprawdź wersję PHP. Dla nowych instalacji zalecana jest aktualna stabilna wersja wspierana przez WordPress (np. 8.1/8.2 – sprawdź aktualne rekomendacje).
  • Przetestuj stronę na innej wersji PHP: jeśli błędy znikają, problemem jest kompatybilność.
  • Upewnij się, że masz włączone typowe rozszerzenia (json, mbstring, curl, dom, gd/imagemagick).

Krok 7: uprawnienia i właściciel plików

Nieprawidłowe CHMOD lub właściciel (user/group) potrafią zablokować serwer i wywołać błąd.

  • Standardowo: katalogi 755, pliki 644, wp-config.php często 640 lub 600.
  • Jeśli korzystasz z SSH, sprawdź właściciela plików (chown). Na współdzielonych hostingach zwróć uwagę na zgodność użytkownika PHP z użytkownikiem plików.
  • Nie nadawaj 777 – to niebezpieczne i często niczego nie naprawia.

Krok 8: sprawdź logi serwera

Logi Apache/Nginx i PHP to najcenniejsze źródło wskazówek poza debug.log WordPressa.

  • W panelu hostingu lub przez FTP zajrzyj do katalogu z logami (np. error_log).
  • Szukaj błędów typu “Fatal error”, “Allowed memory size exhausted”, “Call to undefined function”, “ModSecurity”.
  • Jeśli pojawiają się reguły bezpieczeństwa (WAF/ModSecurity), poproś hosting o whitelisting dla konkretnego endpointu.

Krok 9: wyczyść cache – wtyczka, serwer, CDN

Zdarza się, że strona już działa, ale pamięć podręczna wciąż serwuje błąd.

  • Opróżnij cache w wtyczkach (WP Rocket, W3 Total Cache, LiteSpeed Cache itp.).
  • Wyczyść cache na poziomie serwera (np. LiteSpeed, Nginx FastCGI).
  • Jeśli używasz Cloudflare lub innego CDN, wykonaj “Purge Everything” i sprawdź.

Krok 10: nadpisz pliki rdzenia WordPressa

Uszkodzone pliki WordPressa po nieudanej aktualizacji mogą generować 500-kę.

  • Pobierz najnowszą paczkę WordPressa z oficjalnej strony.
  • Prześlij i nadpisz katalogi wp-admin i wp-includes oraz pliki w katalogu głównym (nie usuwaj wp-content ani wp-config.php).
  • Po operacji odśwież stronę i zaloguj się do kokpitu.

Mniej oczywiste przyczyny, które warto sprawdzić

Gdy standardowy zestaw kroków nie pomógł, doprecyzuj diagnostykę.

  • Konflikty autoloadera (Composer) w motywie/wtyczkach.
  • Błędne reguły w Nginx (jeśli nie używasz .htaccess), np. dla permalinks lub plików statycznych.
  • Limit procesów/połączeń na hostingu (508/503 potrafią mieszać się z 500).
  • Zmiana ścieżek po migracji – sprawdź siteurl/home w bazie (wp_options).
  • Błędne CRON-y (wp-cron.php blokowany przez WAF).
  • Malware lub backdoor – przeskanuj stronę (np. dedykowanymi narzędziami hostingu) i porównaj pliki z czystą paczką WordPressa.
  • Zbyt duże pliki .htaccess (dużo reguł od wtyczek) – odchudź do niezbędnych.

Kiedy warto od razu napisać do hostingu

Jeśli logi milczą lub błąd wraca jak bumerang, wsparcie hostingu bywa bezcenne.

  • Poproś o wgląd w logi serwera i reguły bezpieczeństwa, które mogły zablokować żądania.
  • Zapytaj o limity: pamięci, procesów PHP, I/O, jednoczesnych połączeń.
  • Poproś o tymczasowe podniesienie limitów lub przeniesienie na nowszą wersję PHP.
  • Zgłoś dokładny czas wystąpienia błędu i adresy URL – to przyspiesza analizę.

Jak zapobiegać podobnym problemom w przyszłości

Profilaktyka jest tańsza niż gaszenie pożarów – zbuduj prostą rutynę.

  • Aktualizuj WordPress, wtyczki i motywy regularnie, ale najpierw testuj na stagingu.
  • Usuwaj zbędne wtyczki i motywy – mniejsza powierzchnia problemów.
  • Rób automatyczne kopie zapasowe (plików i bazy), przechowuj je poza serwerem.
  • Monitoruj uptime i błędy (np. prostym monitorem lub usługą APM na serwerze).
  • Dbaj o zgodność wersji PHP z wymaganiami wtyczek.
  • Konfiguruj wtyczki cache ostrożnie, unikaj nakładania kilku mechanizmów cache.
  • Miej spis zmian (changelog własny), aby szybko kojarzyć przyczynę po aktualizacjach.

Szybka checklista naprawy

Jeśli potrzebujesz ekspresowego planu, przejdź po kolei przez poniższe punkty.

  1. Włącz WP_DEBUG i WP_DEBUG_LOG, sprawdź wp-content/debug.log.
  2. Zmień nazwę .htaccess → odtwórz linki bezpośrednie.
  3. Podnieś pamięć PHP do 256M (lub więcej, jeśli to konieczne).
  4. Wyłącz wszystkie wtyczki → włączaj po jednej.
  5. Przełącz motyw na domyślny.
  6. Sprawdź wersję PHP i rozszerzenia.
  7. Sprawdź uprawnienia i właściciela plików.
  8. Przejrzyj logi serwera (error_log, ModSecurity).
  9. Opróżnij cache wtyczek/serwera/CDN.
  10. Nadpisz pliki rdzenia WordPressa czystą paczką.

Podsumowanie: spokojna, metodyczna diagnoza wygrywa

Najważniejsze to działać etapami i obserwować efekty każdego kroku – dzięki temu szybko namierzysz źródło problemu.

Błąd 500 w WordPressie zwykle nie oznacza katastrofy. W większości przypadków winna jest konfiguracja lub plugin, a przy odrobinie cierpliwości i logicznym podejściu przywrócisz stronę do życia w kilkanaście minut. Pamiętaj o kopii zapasowej, logach i podstawowych zasadach bezpieczeństwa. A gdy coś wykracza poza Twoje możliwości – skorzystaj ze wsparcia hostingu lub specjalisty. To najszybsza droga do stabilnej, sprawnej witryny.### Błąd 500 w WordPressie — co to jest i skąd się bierze?

Błąd 500 w WordPressie potrafi sparaliżować stronę w najmniej oczekiwanym momencie. Zamiast witryny widzisz lakoniczny komunikat „Internal Server Error” i brak jakiejkolwiek wskazówki, co poszło nie tak. Ten błąd to sygnał, że serwer nie poradził sobie z wykonaniem żądania — najczęściej przez problem z wtyczką, motywem, plikiem .htaccess, limitem pamięci lub konfiguracją PHP. Dobra wiadomość: w większości przypadków da się to naprawić samodzielnie, metodycznie, krok po kroku.

Jak rozpoznać, że to faktycznie 500?

Najczęściej zobaczysz komunikat „500 Internal Server Error” na frontendzie lub w panelu /wp-admin. Czasem strona wyświetla białą kartkę (tzw. white screen of death), a w narzędziach deweloperskich przeglądarki w zakładce Network żądania zwracają status 500. Jeśli masz włączone logi serwera, w error_log pojawiają się wpisy typu „PHP Fatal error”.

Szybkie kroki zanim zaczniesz grubsze naprawy

  • Zrób kopię zapasową aktualnego stanu plików i bazy — nawet jeśli strona nie działa w pełni.
  • Sprawdź status hostingu (panel dostawcy, Twitter, statuspage) — awaria po stronie serwera też może zwrócić 500.
  • Odśwież pamięć podręczną: wyczyść cache wtyczek i CDN (np. Cloudflare). Czasem błąd już zniknął, a widzisz starą wersję.
  • Sprawdź, czy wygasł certyfikat SSL lub domena — rzadziej powoduje 500, ale potrafi wywołać serię błędów po stronie serwera.

Krok po kroku: najczęstsze przyczyny i ich naprawa

Włącz debugowanie i sprawdź logi

Najpierw potrzebujesz konkretów. Bez nich działasz po omacku.

  • W pliku wp-config.php ustaw:
    define(‘WP_DEBUG’, true);
    define(‘WP_DEBUG_LOG’, true);
    define(‘WP_DEBUG_DISPLAY’, false);

  • Wejdź do wp-content/debug.log i przejrzyj ostatnie wpisy.

  • Jeśli masz dostęp do logów serwera (error_log), sprawdź je również.

Wpisy z frazami „PHP Fatal error” lub „Allowed memory size exhausted” zwykle prowadzą prosto do winowajcy (nazwa wtyczki, funkcja w motywie, konkretna linia).

Przywróć czysty plik .htaccess (Apache)

Uszkodzony lub przeładowany regułami .htaccess to klasyczny sprawca 500.

  • Połącz się przez FTP/SFTP.
  • Zmień nazwę pliku .htaccess na .htaccess_old.
  • Spróbuj wejść na stronę — jeśli działa, wygeneruj nowy plik: w panelu WordPress przejdź do Ustawienia → Bezpośrednie odnośniki i zapisz bez zmian.
  • Domyślna zawartość (dla instalacji bez multisite) to podstawowy blok z mod_rewrite.

Zwiększ limit pamięci PHP

Jeśli w logach widzisz „Allowed memory size exhausted”, podnieś limit.

  • W wp-config.php (przed „That’s all, stop editing!”):
    define(‘WP_MEMORY_LIMIT’, ‘256M’);
    define(‘WP_MAX_MEMORY_LIMIT’, ‘512M’);

  • Alternatywnie w php.ini: memory_limit = 256M (lub 512M).

  • W środowiskach WooCommerce lub z page builderami 256–512 MB bywa konieczne.

Wyłącz wtyczki (nawet bez dostępu do wp-admin)

Konflikt lub błąd wtyczki to najczęstsza przyczyna 500.

  • Przez FTP/SFTP wejdź do wp-content/plugins.
  • Zmień nazwę folderu plugins na plugins_off — wyłączy to wszystkie wtyczki.
  • Jeśli strona wróciła, przywróć nazwę plugins i wyłączaj wtyczki pojedynczo: zmieniaj nazwy konkretnych katalogów (np. yoast-seo_off), aż znajdziesz winowajcę.
  • Gdy znajdziesz sprawcę, sprawdź aktualizacje, znane konflikty i logi zmian. Czasem pomaga powrót do poprzedniej wersji.

Zmień motyw na domyślny

Motyw (szczególnie child theme z własnym kodem) też może generować 500.

  • Przez FTP zmień nazwę wp-content/themes/aktywny-motyw na aktywny-motyw_off.
  • WordPress automatycznie przełączy się na motyw domyślny (np. Twenty Twenty-Four).
  • Jeśli to pomogło, sprawdź functions.php, pliki template, niestandardowe shortcode’y i fragmenty kodu.

Nadpisz pliki rdzenia WordPressa

Uszkodzone pliki core mogą powodować błąd.

  • Pobierz świeżą paczkę WordPressa z wordpress.org.
  • Prześlij przez FTP foldery wp-admin i wp-includes, nadpisując istniejące.
  • Nie ruszaj wp-content i wp-config.php.
  • Po operacji wróć na stronę i sprawdź, czy problem ustąpił.

Sprawdź wersję PHP i moduły

Niezgodność wersji PHP z wtyczkami/motywem bywa zdradliwa.

  • Wejdź do panelu hostingu i sprawdź wersję PHP.
  • Dla większości współczesnych stron zalecane jest PHP 8.1–8.2.
  • Jeśli błąd pojawił się po aktualizacji PHP, cofnij wersję o jeden numer (np. z 8.2 do 8.1) i sprawdź.
  • Upewnij się, że włączone są typowe rozszerzenia (mysqli, curl, gd, json, mbstring, zip).

Prawa do plików i folderów

Błędne uprawnienia potrafią wywołać 500.

  • Foldery: 755, pliki: 644, wp-config.php: 640 lub 600.
  • W panelu hostingu lub przez SSH/FTP przywróć zalecane prawa.
  • Nigdy nie ustawiaj 777 — to niebezpieczne i często zbędne.

Konflikty cache i CDN (np. Cloudflare)

  • Wyczyść cache we wtyczkach (W3 Total Cache, WP Rocket, LiteSpeed Cache).
  • W Cloudflare użyj Purge Everything, ewentualnie na chwilę włącz „Development Mode”.
  • Jeśli używasz Apacza z Nginx jako proxy, sprawdź, czy podwójne kompresje/deflate nie konfliktują.

Błąd 500 w WordPressie po aktualizacji — co robić?

  • Jeśli znasz winowajcę (konkretna wtyczka/motyw), cofnij wersję do poprzedniej stabilnej.
  • Sprawdź changelog oraz repozytorium wtyczki — często pojawiają się szybkie poprawki.
  • Na przyszłość aktualizuj najpierw na środowisku testowym (staging), nie od razu na produkcji.

Środowiska z Nginx i reguły przekierowań

Bez .htaccess reguły piszesz w konfiguracji Nginx (server block).
Błędne location lub rewrite mogą kierować w pętlę i dawać 500.

  • Sprawdź, czy index.php jest obsługiwany w trybie fallback.
  • Przejrzyj logi: /var/log/nginx/error.log.
  • Po zmianach zrestartuj usługę i przetestuj różne podstrony oraz panel /wp-admin.

Multisite i błąd 500

W instalacjach multisite ma znaczenie poprawna konfiguracja domen/subdomen.

  • Sprawdź definicje w wp-config.php (SUBDOMAIN_INSTALL, DOMAIN_CURRENT_SITE).
  • Upewnij się, że reguły dla WordPress Multisite są poprawne (w .htaccess lub konfiguracji Nginx).
  • Osobno przetestuj główną stronę i podstrony sieci.

WooCommerce, importy i ciężkie zapytania

Sklepy generują obciążenie: cron, webhooki, API, duże importy CSV.

  • Jeśli błąd 500 występuje „pod obciążeniem”, zwiększ limity: max_execution_time (np. 120–300), memory_limit (512M), max_input_vars (3000+).
  • Upewnij się, że cron działa (wp-cron.php) lub użyj prawdziwego CRON-a na serwerze.
  • Monitoruj logi WooCommerce (Status → Logi). Czasem wtyczka płatności lub integracja z ERP jest winna.

Kiedy to wina bezpieczeństwa

Zhakowana witryna może generować 500 przez złośliwe wstrzyknięcia w functions.php lub wtyczki.

  • Przeskanuj stronę skanerem bezpieczeństwa (Sucuri, Wordfence, Jetpack Scan).
  • Porównaj pliki motywów i wtyczek z wersjami z repozytorium.
  • Wymuś reset haseł adminów i kluczy w wp-config.php (AUTH_KEY, SECURE_AUTH_KEY itd.).
  • Po czyszczeniu natychmiast aktualizuj wszystko do najnowszych wersji.

Checklist: Błąd 500 w WordPressie w 5 minut

  • Czy to na pewno 500? Sprawdź w narzędziach przeglądarki i logach.
  • Włącz WP_DEBUG i zajrzyj do wp-content/debug.log.
  • Zresetuj .htaccess (Apache) lub sprawdź reguły Nginx.
  • Podnieś memory_limit i max_execution_time.
  • Wyłącz wtyczki przez zmianę nazwy katalogu i wracaj pojedynczo.
  • Zmień motyw na domyślny.
  • Nadpisz wp-admin i wp-includes świeżą paczką WP.
  • Zweryfikuj wersję PHP i rozszerzenia.
  • Sprawdź uprawnienia plików.

Najczęstsze pytania (FAQ)

  • Czy błąd 500 może zniknąć sam?
    Czasem tak, jeśli to chwilowy problem po stronie hostingu. Nie polegaj jednak na szczęściu — sprawdź logi i przyczynę.

  • Czy wtyczka cache może powodować 500?
    Tak. Złe reguły .htaccess, konflikt z kompresją lub preloadem bywa przyczyną. Wyczyść cache, a w razie potrzeby tymczasowo wyłącz wtyczkę.

  • Czy aktualizacja PHP zawsze pomaga?
    Nie zawsze. Zbyt nowa wersja względem wtyczek może wywołać błędy. Testuj przed zmianą produkcji.

  • Po włączeniu debugowania widzę ostrzeżenia, ale nie błąd.
    Ostrzeżenia (Notice/Warning) to nie 500, ale mogą wskazać miejsce konfliktu. Skup się na „Fatal error”.

Kiedy napisać do hostingu

  • Gdy logi wskazują problem po stronie serwera (moduły, restrykcje bezpieczeństwa, limity na poziomie hostingu).
  • Kiedy nie masz dostępu do logów, a błąd pojawia się losowo pod obciążeniem.
  • Jeśli wszystko zrobiłeś poprawnie, a 500 pojawia się przy prostych żądaniach (np. otwarcie /wp-admin).

Poproś o: najnowsze wpisy z error_log, informację o limitach (CPU, I/O, memory), blokadach na poziomie serwera (mod_security, open_basedir), wersji PHP i modułach. Dobre wsparcie hostingu często wskaże, gdzie dokładnie się potknęło.

Profilaktyka: jak nie wracać do 500

  • Aktualizuj WordPress, wtyczki i motywy, ale najpierw na stagingu.
  • Rób regularne backupy plików i bazy, z testem odtworzenia.
  • Ogranicz liczbę wtyczek, szczególnie tych o pokrywającej się funkcjonalności.
  • Monitoruj działanie (uptime, błędy, obciążenie) — proste alerty e-mail/SMS potrafią uratować dzień.
  • Stosuj politykę minimalnych uprawnień i unikaj edytowania plików z poziomu kokpitu.
  • Korzystaj z wtyczek bezpieczeństwa i firewalli aplikacyjnych.

Podsumowanie: spokojnie, to naprawialne

Błąd 500 wygląda groźnie, ale zwykle kryje za sobą konkretną, dającą się namierzyć przyczynę. Metodyczne podejście — logi, debug, wyłączenie wtyczek, reset .htaccess, sprawdzenie PHP i uprawnień — rozwiązuje zdecydowaną większość przypadków. Jeśli problem leży po stronie infrastruktury, nie wahaj się zaangażować hostingu. A po wszystkim wprowadź profilaktykę: staging, backupy i monitoring. Dzięki temu nawet jeśli 500 kiedyś znów zapuka, poradzisz sobie z nim szybko i bez paniki.

Kacper Jedynak

Zostaw swój numer - oddzwonię

Cześć! Zadzwoń +48 572 651 439 lub napisz lub zostaw numer telefonu, a oddzwonię w ciągu 1h i porozmawiamy o ofercie.

Picture of Łukasz Janeczko

Łukasz Janeczko

Programista - DropDigital.pl