Errori comuni di WordPress e come risolverli

Prima o poi capita a tutti: apri il sito e trovi una schermata bianca, un errore 500 o un messaggio sul database. La buona notizia è che la maggior parte degli errori di WordPress ha cause note e soluzioni collaudate. Vediamo i più frequenti e come affrontarli con metodo.

La maggior parte degli errori di WordPress nasce da poche cause ricorrenti: un conflitto tra plugin, un limite di memoria PHP troppo basso, un file .htaccess danneggiato o un problema con il database. Conoscere questi schemi rende molto più semplice capire cosa è successo, anche quando il messaggio sullo schermo è poco chiaro.

Prima di iniziare: un backup e qualche regola generale

Prima di mettere mano a qualsiasi cosa, se il sito è ancora accessibile, fai un backup: intervenire su file o database senza una copia di sicurezza è il modo più rapido per trasformare un problema piccolo in uno grande.

Tre azioni risolvono o circoscrivono la maggior parte degli errori, ed è bene provarle per prime: svuotare la cache, assicurarsi che WordPress, temi e plugin siano aggiornati, e disattivare l’ultimo plugin installato se il problema è comparso subito dopo. Se non bastano, si passa ai casi specifici qui sotto.

La schermata bianca (White Screen of Death)

La temuta schermata bianca, senza alcun messaggio, è quasi sempre causata da un errore nel codice PHP, dall’esaurimento della memoria o da un conflitto tra plugin o temi.

Il modo più efficace per affrontarla è procedere per esclusione. Se riesci ancora ad accedere alla bacheca, disattiva tutti i plugin e poi riattivali uno alla volta, controllando dopo ognuno: quando il problema riappare, hai trovato il colpevole. Se invece non accedi più, collegati via FTP e rinomina la cartella wp-content/plugins in plugins_oldQuesto disattiva tutti i plugin in un colpo solo. Se il sito torna a funzionare, la causa era un plugin. Lo stesso ragionamento vale per il tema: passare temporaneamente a un tema predefinito di WordPress aiuta a capire se il problema è lì. Attivare la modalità debug permette infine di vedere l’errore esatto invece della pagina vuota.

L’errore critico: “Si è verificato un errore critico”

Sulle versioni recenti di WordPress, al posto della schermata bianca compare spesso un messaggio più esplicito: “Si è verificato un errore critico sul tuo sito web” (in inglese “There has been a critical error on this website”), di solito con l’invito a controllare la casella email dell’amministratore.

Ed è proprio quell’email il primo posto da guardare: WordPress invia all’indirizzo dell’amministratore i dettagli dell’errore, cioè il file e la riga che lo hanno causato, e soprattutto un link per accedere in “modalità di recupero”. Questa modalità permette di entrare nella bacheca anche con il sito in errore e di disattivare il plugin o il tema responsabile.

Se l’email non arriva (ad esempio perché il sito non riesce a inviare posta), la via alternativa è attivare la modalità debug e leggere il file wp-content/debug.log, dove troverai la stessa informazione: quale componente ha generato l’errore. Le cause più comuni sono quelle che ritroviamo in tutta questa pagina: un conflitto tra plugin, un tema non compatibile, una versione di PHP troppo vecchia, il limite di memoria raggiunto o file di WordPress danneggiati.

L’errore 500 (Internal Server Error)

L’errore “500 Internal Server Error” è generico: indica che qualcosa non va, ma il server non riesce a dire cosa. Le cause più comuni sono un file .htaccess danneggiato, un limite di memoria PHP raggiunto o un conflitto di plugin o tema.

La soluzione che risolve la maggior parte dei casi è rigenerare il file .htaccess: rinominalo via FTP in .htaccess_old, poi entra in Impostazioni → Permalink e clicca su Salva le modifiche, così WordPress ne crea uno nuovo e pulito. Se non basta, può aiutare aumentare la memoria PHP aggiungendo in wp-config.php la riga define( 'WP_MEMORY_LIMIT', '256M' );. Se anche questo non risolve, si torna al metodo per esclusione su plugin e tema, e si controllano i log degli errori del server (spesso disponibili dal pannello dell’hosting).

Errore nello stabilire una connessione al database

Questo errore significa che WordPress non riesce più a comunicare con il suo database, e di conseguenza l’intero sito va offline. Le cause tipiche sono credenziali errate nel file wp-config.php, un database danneggiato o un server sovraccarico.

Il primo controllo è proprio sul file wp-config.php: nome del database, utente, password e host devono essere corretti. Se le credenziali sono giuste, è probabile che il server del database sia momentaneamente down o sovraccarico, ed è il caso di contattare il proprio hosting. WordPress mette anche a disposizione uno strumento di riparazione del database, attivabile aggiungendo temporaneamente define( 'WP_ALLOW_REPAIR', true ); in wp-config.php e visitando la pagina tuosito.it/wp-admin/maint/repair.php (ricordandosi di rimuovere la riga al termine).

L’errore 404 sugli articoli

Capita che la home funzioni ma i singoli articoli restituiscano un errore 404 “pagina non trovata”. Nella stragrande maggioranza dei casi non è un problema di contenuti, ma di permalink: la struttura degli indirizzi si è “persa”, spesso dopo una migrazione o una modifica al server.

La soluzione è quasi sempre immediata: vai in Impostazioni → Permalink e clicca su Salva le modifiche senza cambiare nulla. Questo rigenera le regole di riscrittura degli indirizzi e, nella maggior parte dei casi, riporta gli articoli online.

Altri messaggi che spaventano (ma si risolvono)

Alcuni errori sembrano gravi ma hanno soluzioni rapide. Il messaggio “Memoria esaurita” (allowed memory size exhausted) si risolve di solito alzando il limite con WP_MEMORY_LIMIT, come visto sopra. Il messaggio “Brevemente non disponibile per manutenzione programmata”, che a volte resta bloccato dopo un aggiornamento interrotto, si risolve collegandosi via FTP ed eliminando il file nascosto .maintenance nella cartella principale del sito. I problemi di contenuti misti (il lucchetto che non compare in HTTPS) dipendono invece da risorse caricate in http:// su un sito servito in HTTPS, e si correggono aggiornando quei riferimenti.

Il metodo generale per qualsiasi errore

Al di là del singolo messaggio, quasi tutti gli errori di WordPress si affrontano con la stessa sequenza logica: fai un backup, svuota la cache, controlla se il problema è comparso dopo un aggiornamento o un nuovo plugin, disattiva i plugin (e prova un tema predefinito) per isolare la causa, rigenera il .htaccess se l’errore è 500 o 404, e attiva la modalità debug per leggere il messaggio esatto. Nove volte su dieci, uno di questi passaggi individua il problema.

Quando chiedere aiuto

Se hai seguito questi passaggi e l’errore persiste, o se la soluzione richiede di toccare il database o file di sistema con cui non hai dimestichezza, è il momento di rivolgersi al supporto dell’hosting o a uno sviluppatore. Non è una sconfitta: su un sito che conta, un’ora di un professionista vale molto più di un pomeriggio di tentativi a rischio.

Prossimi passi

Molti di questi errori si prevengono con le stesse buone abitudini di cui parliamo nella sezione sicurezza: aggiornamenti regolari, backup automatici e attenzione a cosa si installa. E quando un errore si presenta davvero, lo strumento che fa la differenza è la modalità debug, che vediamo in un articolo dedicato. Negli altri articoli di questa sezione affrontiamo due casi particolarmente frequenti: i problemi di login e le modifiche che non si vedono.

Dennis Ploetner@realloc

Senior Web Engineer presso Syde GmbH

  • Lodì, Italia
  • Membro della community WordPress da Aprile 2010

Dennis è uno sviluppatore Open Source appassionato di WordPress, con esperienza in soluzioni enterprise e plugin personalizzati. Vive in Italia, è madrelingua tedesco e parla fluentemente italiano, un ponte naturale tra culture e community diverse. Contribuisce attivamente a progetti Open Source e co-organizza il WordPress Meetup di Milano.