L’errore 500 WordPress (Internal Server Error) blocca il sito e crea panico. In questa guida pratica scopri le cause reali, come diagnosticarle in pochi minuti e le soluzioni pronte all’uso. Alla fine trovi una checklist di emergenza e consigli per prevenire i più comuni errori WordPress.
Cos’è l’errore 500 in WordPress
È una risposta generica del server che indica un problema lato hosting o applicazione. Spesso è legato a configurazioni errate, limiti di risorse o codice difettoso di plugin/tema.
Cause reali più comuni
1) File .htaccess corrotto
Regole riscrittura danneggiate o direttive non supportate dal server.
2) PHP memory limit insufficiente
Operazioni pesanti o plugin esigenti superano il limite (es. 128M).
3) Conflitto plugin o tema
Aggiornamenti o componenti mal codificati causano errori fatali.
4) Versione PHP o estensioni non compatibili
Core, tema o plugin richiedono una versione o estensioni diverse (es. intl, mbstring).
5) Permessi e proprietà file errati
Permessi troppo permissivi o utente proprietario non corretto.
6) Limiti/timeout del server
Processi che superano max_execution_time, limiti di I/O o di processi su hosting condiviso.
7) Database e cache
Tabelle corrotte, cache opcode o pagina danneggiate.
Diagnosi rapida (10 minuti)
- Attiva il debug in wp-config.php subito prima della riga “/* That’s all, stop editing! */”:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);Ricarica una pagina del sito, poi apri
wp-content/debug.log. - Controlla i log del server dal pannello hosting (error log) oppure via SSH:
tail -n 100 -f logs/error.log # oppure journalctl -u php-fpm --no-pager -n 100 - Verifica versione PHP e estensioni attive nel pannello hosting o con:
php -v php -m - Escludi plugin/tema rapidamente con WP-CLI:
wp plugin deactivate --all wp theme activate twentytwentyfour - Controlla permessi (da eseguire con cautela):
find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;
Soluzioni rapide per causa
Ripristina .htaccess
Rinomina il file corrente (.htaccess.bak) e crea un nuovo .htaccess con le regole di base WordPress:
# WordPress base
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Salva e svuota eventuali cache server/applicative.
Aumenta PHP memory limit
In wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Se disponibile, aumenta anche nel pannello hosting (memory_limit) e riavvia PHP-FPM.
Isola conflitti plugin/tema
- Disattiva tutti i plugin e riattivali a gruppi per individuare il colpevole.
- Cambia tema a uno di default. Se il problema sparisce, verifica funzioni e template del tema.
- WP-CLI utile in emergenza:
wp plugin deactivate --all wp plugin activate classic-editor woocommerce wp theme activate twentytwentyfour
Allinea versione PHP ed estensioni
- Imposta una versione PHP supportata da core e plugin (es. 8.1/8.2).
- Abilita estensioni comuni: intl, mbstring, xml, gd, imagick, zip, mysqli.
Permessi e proprietà
Regola permessi standard e, se necessario, proprietà utente/gruppo:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
# Esempio proprietà (adatta user:group al tuo ambiente)
chown -R user:group /percorso/del/sito
Database e riparazioni
- Controllo/riparazione via WP-CLI:
wp db check wp db repair - In alternativa, abilita la pagina di riparazione (disattiva dopo l’uso):
define('WP_ALLOW_REPAIR', true);
Pulisci cache opcode e applicativa
Svuota cache plugin, cache a livello server (Varnish/NGINX) e riavvia PHP-FPM se disponibile.
Ripristino backup WordPress
- Esegui un backup attuale dei file e del DB prima di ogni intervento.
- Ripristina solo il necessario (file core, wp-content o singole tabelle) per isolare il problema.
- Verifica l’accesso al back-end e controlla log errori dopo il ripristino.
Hosting condiviso vs VPS: cosa cambia per l’errore 500
Hosting condiviso
- Pro: costi bassi, gestione semplificata.
- Contro: limiti di memoria/CPU/IO, meno controllo su PHP/estensioni, log ridotti, limitazioni su moduli e direttive .htaccess.
- Impatto: più probabili errori 500 da limiti o da regole .htaccess non consentite.
VPS (Managed/Unmanaged)
- Pro: risorse dedicate, pieno controllo su PHP-FPM/NGINX/Apache, log dettagliati, possibilità di tuning.
- Contro: richiede competenze o un piano managed.
- Impatto: errori 500 più spesso legati a configurazioni custom; risolvibili con accesso root e tuning.
Checklist finale “copia e incolla”
# 1) Debug WordPress
sed -i "/That's all/i define('WP_DEBUG', true);\ndefine('WP_DEBUG_LOG', true);\ndefine('WP_DEBUG_DISPLAY', false);" wp-config.php
# 2) .htaccess base
cat > .htaccess <<'EOF'
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
EOF
# 3) Aumenta memoria
wp option update blog_public 1 # comando innocuo per testare WP-CLI
php -r "echo ini_get('memory_limit'), PHP_EOL;"
# 4) Disattiva plugin/tema
wp plugin deactivate --all || true
wp theme activate twentytwentyfour || true
# 5) Permessi standard
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
# 6) Log server
tail -n 200 logs/error.log || tail -n 200 /var/log/apache2/error.log || tail -n 200 /var/log/php*-fpm.log
Prevenzione: evita il prossimo Internal Server Error
- Staging per testare aggiornamenti di core, plugin e tema.
- Monitoraggio uptime e log errori WordPress.
- Backup automatici versionati e ripristino rapido.
- Versione PHP aggiornata e compatibile; rimuovi plugin obsoleti.
- Hardening sicurezza e controllo permessi.
Hai fretta? Ti aiutiamo noi
Se l’errore 500 WordPress persiste o il sito è mission-critical, il team Costruzione Siti Web offre diagnosi e ripristino prioritari, ottimizzazione server (condiviso o VPS) e messa in sicurezza. Contattaci per un intervento urgente.


