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:
- Zmień nazwę katalogu
wp-content/pluginsnaplugins_disabledprzez FTP. - Sprawdź czy strona działa — jeśli tak, przyczyną jest wtyczka.
- 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ął:
- Włącz WP_DEBUG:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - Sprawdź log PHP:
cat wp-content/debug.log | tail -50 - Sprawdź logi serwera:
tail -100 /var/log/apache2/error.log - Dezaktywuj wszystkie wtyczki (zmień nazwę folderu plugins/).
- Przełącz na motyw domyślny przez WP-CLI lub bezpośrednią edycję wp_options w bazie.
- Sprawdź .htaccess — zrób kopię i usuń plik, wygeneruj nowy.
- Zweryfikuj limity PHP:
php -i | grep memory_limit - 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 = Onw 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.