« C'è stato un errore critico
su questo sito WordPress » ?
lo rimettiamo online oggi.
Diagnosi e risoluzione di errore critico WordPress
Messaggio visto da tutti i tuoi visitatori, mail « recovery mode » di WordPress mai ricevuta, plugin colpevole sconosciuto : nessun dato è perso, solo codice da neutralizzare. Attiviamo il debug, isoliamo il responsabile, ripristiniamo il tuo WordPress. Diagnosi gratuita, preventivo entro 24 h lavorative.
Ciò che WordPress mostra ai tuoi visitatori
Da WordPress 5.2 (maggio 2019), è questo che vedono i tuoi visitatori quando si verifica un errore PHP fatale.
C'è stato un errore critico su questo sito.
Controlla la casella di posta dell'amministratore del sito per istruzioni.
↑ Il messaggio WordPress predefinito. In inglese : « There has been a critical error on this website. ».
La mail « recovery mode » che WordPress dice di aver inviato ? In 7 casi su 10, non arriva mai
— perché wp_mail() non è configurato (SMTP assente, IP server in blacklist, mail filtrata come spam).
Aggiriamo il problema accedendo a WordPress via FTP/SSH : il risultato è lo stesso, senza dipendere dall'email.
Le 6 cause più frequenti
Su 40 interventi WordPress effettuati nel 2025-2026. Una sola può essere presente, oppure più cumulate.
≈ 40% dei casi. Passi da PHP 7.4 a PHP 8.1 (forzato dal tuo hosting), e un plugin vecchio usa una funzione rimossa o una sintassi deprecata. Errore tipico : Fatal error: Uncaught TypeError: ... must be of type string, null given. Soluzione : disattivazione del plugin, ricerca di un'alternativa mantenuta, o patch locale se il plugin è critico.
≈ 25%. Due plugin dichiarano una stessa funzione globale, o si agganciano a uno stesso hook con priorità che si contraddicono. Errore tipico : Cannot redeclare function o Call to undefined function. Soluzione : identificazione per bisezione (disattivazione per metà successive), scelta del plugin da conservare, rimozione pulita del secondo.
≈ 12%. Usi un tema figlio che sovrascrive una funzione del genitore. Il tema genitore viene aggiornato, la funzione genitore cambia firma, il tuo functions.php figlio va in crash. Soluzione : adattamento del functions.php, o rollback temporaneo alla versione precedente del tema genitore.
wp-config.php modificato male
≈ 8%. Hai aggiunto una riga per attivare il debug, ma dimenticato il ; finale. Oppure copia-incollato uno snippet da un blog con virgolette tipografiche al posto di ". WordPress non riesce più a caricare la sua config e va in crash al bootstrap. Soluzione : confronto con wp-config-sample.php, ripristino della sintassi, validazione PHP da riga di comando (php -l wp-config.php).
≈ 8%. Su siti WooCommerce con grande catalogo + plugin di cache + plugin di sicurezza, la memoria PHP di 128 MB predefinita esplode nell'admin. Errore : Allowed memory size of X bytes exhausted. Soluzione : aumentare WP_MEMORY_LIMIT e WP_MAX_MEMORY_LIMIT in wp-config.php, audit del plugin colpevole.
≈ 7%. Migrazione FTP brusca, trasferimento interrotto, ripristino di un backup parziale. File del core mancanti o troncati. Soluzione : download di una copia pulita di WordPress, riscrittura di /wp-includes/ e /wp-admin/ senza toccare /wp-content/ né wp-config.php.
Errore critico risolto in 38 min
Caso reale · Sito vetrina di una PMI di servizi + WooCommerce · WordPress 6.4 + 32 plugin · Marzo 2026.
/wp-content/plugins/ in plugins_OFF/. Accesso admin ripristinato immediatamente.
WP_DEBUG_LOG
Modifica di wp-config.php : define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);. Ripristino della cartella plugin, refresh.
/wp-content/debug.log : PHP Fatal error: Uncaught Error: Class "WC_Geolocation" not found in /wp-content/plugins/x-shipping/includes/Calculator.php:88. Il plugin x-shipping dipendeva da una classe WooCommerce rimossa in WC 8.3.
WC_Geolocation_Loader al suo posto. Test checkout : OK.
(38 min × 60 €/h + IVA)
Tariffe comunicate in anticipo
Diagnosi offerta. Per l'intervento, sai esattamente quanto costa prima che tocchi il codice.
Diagnosi
- WP_DEBUG_LOG attivato + lettura
debug.log - Plugin o tema responsabile identificato
- Preventivo dettagliato inviato immediatamente
- Decidi tu se proseguire
Intervento mirato
- Backup file + DB prima dell'intervento
- Neutralizzazione del plugin / tema responsabile
- Sostituzione o patch locale se necessario
- Report scritto causa + correttivo applicato
- Garanzia 30 giorni sul correttivo
Manutenzione mensile
- Audit mensile dei plugin WordPress
- Backup automatici giornalieri esternalizzati
- Aggiornamenti testati in pre-prod prima del deploy
- Intervento prioritario in caso di errore critico
Errore critico, non è un...
Sito defacciato, redirect verso una pagina sospetta, popup di farmacia ? Non è un errore critico, è un attacco hacker. Il protocollo è molto diverso (isolamento, pulizia, hardening).
Scheda WordPress hackerato →Il messaggio « Error establishing a database connection » è diverso : indica che WP non riesce a raggiungere MySQL (credenziali errate in wp-config.php, server MySQL down). Non è un errore critico PHP.
Se il tuo sito restituisce HTTP ERROR 500 al posto del messaggio WordPress, significa che WordPress non è nemmeno riuscito a eseguire il suo gestore di errori. Diagnosi diversa.
Errore critico WordPress — domande frequenti
wp_mail() non è configurato (SMTP assente, IP server in blacklist).wp_options (opzione recovery_mode_token) in SSH o phpMyAdmin. (2) Il più rapido : aggirare la modalità recovery disattivando i plugin via FTP : rinominare /wp-content/plugins/ in plugins_OFF/ rende inattivi tutti i plugin e libera l'accesso admin.WP_DEBUG_LOG in wp-config.php, ricaricare, leggere /wp-content/debug.log — il file e la riga responsabile sono indicati. (2) Disattivazione per bisezione (per metà successive). (3) Leggere direttamente php-fpm.log o error_log — lo stack trace indica il file .php. Il metodo (1) è il più rapido con accesso FTP.Evita il prossimo errore critico prima che accada
Audit mensile dei plugin, aggiornamento testato in pre-prod, monitoraggio uptime ogni 5 min : un contratto di manutenzione WordPress ripaga ampiamente un solo intervento di emergenza evitato.
Errore critico in questo momento ?
Diagnosi gratuita, preventivo entro 24 h lavorative, intervento a partire da 60 €/h + IVA su preventivo.