Błąd 500 w WooCommerce — 9 przyczyn i jak je naprawić

Błąd 500 w WooCommerce zatrzymuje sklep i wyrzuca klientów. Poznaj 9 najczęstszych przyczyn Internal Server Error i sprawdzone metody naprawy krok po kroku.

Błąd 500 Internal Server Error w WooCommerce oznacza, że serwer napotkał nieoczekiwany błąd i nie może obsłużyć żądania. Najszybciej go zlokualizujesz włączając WP_DEBUG, sprawdzając log PHP (/wp-content/debug.log) i plik error_log serwera.

Czym jest błąd 500 Internal Server Error w WooCommerce?

HTTP 500 to ogólny kod odpowiedzi serwera sygnalizujący, że coś poszło nie tak po stronie backendu — PHP, MySQL lub konfiguracji serwera. W sklepach WooCommerce jest szczególnie dotkliwy, bo blokuje stronę sklepu, koszyk i bramkę płatności, co przekłada się na bezpośrednią utratę przychodów.

W odróżnieniu od błędu 404 (brak strony) czy 403 (brak dostępu), kod 500 nie mówi wprost co się stało — dlatego kluczowe jest włączenie logowania błędów przed przystąpieniem do diagnostyki.

9 najczęstszych przyczyn błędu 500

1. Wyczerpany limit pamięci PHP (memory_limit)

WooCommerce razem z popularnymi wtyczkami (Elementor, WPML, WooCommerce Payments) może wymagać nawet 512 MB RAM na żądanie. Domyślny limit wielu hostingów to 64 lub 128 MB.

Diagnostyka: Zajrzyj do wp-content/debug.log i szukaj frazy Allowed memory size of … bytes exhausted.

Naprawa: Zwiększ limit w wp-config.php:

define( 'WP_MEMORY_LIMIT', '512M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

Alternatywnie w .htaccess (Apache):

php_value memory_limit 512M

2. Konflikt z wtyczką

Niekompatybilna lub niepoprawnie zaktualizowana wtyczka to najczęstszy sprawca błędu 500. Typowe winowajcy: cache'ujące wtyczki (WP Rocket, W3 Total Cache), wtyczki do zabezpieczeń (Wordfence, iThemes Security) i bramki płatności.

Naprawa krok po kroku:

  1. Zmień nazwę katalogu wp-content/plugins na plugins_disabled przez FTP.
  2. Sprawdź czy strona działa — jeśli tak, przyczyną jest wtyczka.
  3. Przywróć nazwę, a następnie dezaktywuj wtyczki jedną po jednej przez WP-CLI:
wp plugin deactivate --all
wp plugin activate woocommerce
wp plugin activate nazwa-wtyczki-do-testu

3. Uszkodzony plik .htaccess

Zepsuta reguła w .htaccess (np. po nieudanej aktualizacji permalinków) powoduje błąd 500 w Apache. Plik jest czytany przy każdym żądaniu HTTP.

mv .htaccess .htaccess.bak
wp rewrite flush --hard

Minimalny poprawny .htaccess dla WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

4. Przekroczony execution_time

Przy imporcie dużych katalogów produktów lub generowaniu raportów WooCommerce skrypt PHP może przekroczyć limit czasu wykonania (domyślnie 30 sekund).

@ini_set( 'max_execution_time', 300 );
@ini_set( 'max_input_time', 300 );

5. Błąd w motywie potomnym

Literówka lub niepoprawna składnia PHP w pliku functions.php motywu potomnego natychmiast wygeneruje fatal error. Najczęstsze przyczyny: brakujący średnik, niedomknięta funkcja.

php -l wp-content/themes/moj-motyw/functions.php
wp theme activate twentytwentyfour

6. Niekompatybilna wersja PHP

WooCommerce 9.x wymaga PHP 8.0 lub wyższego. Jeśli serwer został zaktualizowany do PHP 8.2/8.3 bez weryfikacji kompatybilności kodu, starsze wtyczki mogą rzucać fatal error.

php -v
wp --info | grep "PHP binary"

7. Uszkodzona baza danych MySQL

Tabele MySQL mogą ulec uszkodzeniu przy nagłym restarcie serwera lub przepełnieniu dysku. WooCommerce silnie zależy od integralności tabel wp_options, wp_posts i wc_*.

wp db check
wp db repair

8. Brakujące pliki wp-admin lub wp-includes

Niekompletna aktualizacja WordPress może pozostawić brakujące pliki. Serwer nie może załadować wymaganych klas i zwraca 500. Naprawa: pobierz świeżą kopię WordPress i wgraj przez FTP tylko katalogi wp-admin/ i wp-includes/.

wget https://wordpress.org/wordpress-6.7.zip
unzip wordpress-6.7.zip
rsync -av wordpress/wp-admin/ /var/www/html/wp-admin/
rsync -av wordpress/wp-includes/ /var/www/html/wp-includes/

9. Błąd w pliku wp-config.php

Niepoprawne dane dostępu do bazy lub znak BOM na początku pliku wp-config.php powodują błąd 500 już przy inicjalizacji WordPress. Plik powinien zaczynać się dokładnie od <?php bez żadnych znaków przed tagiem.

php -l wp-config.php

Jak debugować błąd 500 krok po kroku

Poniżej gotowa checklista diagnostyczna — wykonaj każdy krok i po każdym sprawdź czy problem zniknął:

  1. Włącz WP_DEBUG:
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
  2. Sprawdź log PHP: cat wp-content/debug.log | tail -50
  3. Sprawdź logi serwera: tail -100 /var/log/apache2/error.log
  4. Dezaktywuj wszystkie wtyczki (zmień nazwę folderu plugins/).
  5. Przełącz na motyw domyślny przez WP-CLI lub bezpośrednią edycję wp_options w bazie.
  6. Sprawdź .htaccess — zrób kopię i usuń plik, wygeneruj nowy.
  7. Zweryfikuj limity PHP: php -i | grep memory_limit
  8. Sprawdź uprawnienia plików — katalogi 755, pliki 644:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chmod 640 wp-config.php

Zapobieganie: jak uniknąć błędu 500 w przyszłości

  • Testuj aktualizacje na stagingu — nigdy nie aktualizuj wtyczek bezpośrednio na produkcji bez wcześniejszego testu.
  • Rób backupy przed każdą zmianą — UpdraftPlus lub WP CLI: wp db export backup_$(date +%F).sql
  • Monitoruj uptime — narzędzia jak UptimeRobot (bezpłatny) natychmiast powiadomią o błędzie 500.
  • Ustaw odpowiednie limity PHP od razu — minimum 256M pamięci, 60s execution_time dla WooCommerce.
  • Loguj błędy PHP na stałe — ustaw log_errors = On w php.ini, żeby mieć historię błędów.
  • Aktualizuj PHP regularnie — nieaktualne wersje mają luki bezpieczeństwa i słabszą kompatybilność.

Masz sklep WooCommerce i błąd 500 nie daje się naprawić? Skontaktuj się z nami — diagnozujemy i naprawiamy błędy 500 w WooCommerce w trybie ekspresowym.

Często zadawane pytania

Jak włączyć tryb debugowania WordPress? +
Dodaj do wp-config.php: define(
Czy błąd 500 może dotyczyć tylko jednej strony w WooCommerce? +
Tak, błąd 500 może być zlokalizowany — np. dotykać tylko strony kasy lub koszyka. Przyczyną jest często specyficzna wtyczka (bramka płatności) lub hook podpięty do konkretnego szablonu WooCommerce.
Co zrobić gdy nie mam dostępu do wp-admin przez błąd 500? +
Użyj dostępu FTP lub SSH. Zmień nazwę folderu wp-content/plugins na plugins_disabled przez FTP — to wyłączy wszystkie wtyczki bez potrzeby logowania do panelu. Następnie spróbuj zalogować się do wp-admin.
Jak długo trwa naprawa błędu 500 w WooCommerce? +
Przy systematycznym podejściu (WP_DEBUG + logi) lokalizacja przyczyny zajmuje zazwyczaj 5-15 minut. Sama naprawa to kolejne 2-5 minut. Tylko w przypadku uszkodzonej bazy danych czas może wzrosnąć do 30-60 minut.

Masz podobny problem do rozwiązania?

Napisz — wycenię i powiem szczerze czy warto.

Skontaktuj się →