
🔧 Come risolvere l'errore di caricamento delle immagini in WordPress
Un errore di caricamento immagini in WordPress colpisce sempre nel momento peggiore. Stai preparando un articolo, selezioni un'immagine, clicchi su "Carica" e WordPress mostra silenziosamente "HTTP Error" o si rifiuta di salvare il file senza alcuna spiegazione. Se capitasse una volta sola sarebbe accettabile, ma per alcuni amministratori i caricamenti falliscono sistematicamente ogni pochi giorni.
La causa è raramente ovvia. Il colpevole può essere qualunque cosa: permessi corrotti dopo una migrazione, un conflitto con un plugin di sicurezza, un limite di memoria restrittivo su un hosting condiviso economico, o ModSecurity che interpreta la tua immagine come un attacco. La buona notizia: quasi tutte le cause si possono risolvere senza uno sviluppatore e senza chiamare l'assistenza dell'hosting.
In questa guida troverai la catena completa di diagnosi e correzione per gli errori di caricamento immagini. Da quelle semplici (cambiare browser, rinominare i file) a quelle a livello server (modificare php.ini, .htaccess e wp-config.php). Seguila e risolvi; la maggior parte dei casi si chiude in 5-10 minuti.
💡 Panoramica rapida:
- Verifica i permessi della cartella
/wp-content/uploads/via FTP o File Manager di cPanel: 744 per le cartelle e 644 per i file. - Per gli errori HTTP, segui la catena: svuota la cache del browser → rinomina il file → comprimilo → disattiva i plugin → aumenta la memoria PHP → cambia versione PHP.
- Per gli errori "Manca una cartella temporanea" e problemi di limite dimensione file, saranno d'aiuto un paio di righe in
wp-config.phpe.htaccess. - Gli utenti GoDaddy e DreamHost troveranno soluzioni specifiche alla fine.
Perché si verificano gli errori di caricamento immagini
WordPress archivia tutti i file media in /wp-content/uploads/. Per scrivere un'immagine lì, il processo PHP ha bisogno dei permessi di scrittura. Se i permessi sono corrotti (cosa che succede durante aggiornamenti del server, migrazioni, cambi di hosting o persino dopo patch automatiche di PHP), i caricamenti falliscono silenziosamente.

Il secondo gruppo di cause riguarda la configurazione PHP: il limite di memoria, i parametri upload_max_filesize e post_max_size, e il percorso della cartella temporanea. Se uno qualsiasi di questi parametri è insufficiente, WordPress non accetterà il file. Sui piani condivisi economici, gli host spesso tagliano i buffer in modo più aggressivo di quanto mostrato da phpinfo(), e vedrai "HTTP Error" senza alcun indizio sulla causa reale.

Infine, ci sono i conflitti. Un plugin di sicurezza intercetta la richiesta POST, un tema sovrascrive la gestione dei media, o ModSecurity a livello di server web considera il caricamento una minaccia. La diagnostica è trattata nella prossima sezione.
1. Verifica i permessi della cartella uploads
La causa più comune sono i permessi errati su /wp-content/uploads/. WordPress non può scrivere nella cartella e rifiuta silenziosamente il caricamento. La soluzione: impostare il CHMOD corretto via FTP.
Collegati al tuo sito tramite un client FTP come FileZilla. Vai a /wp-content/, trova la cartella uploads, clicca col tasto destro e seleziona "Permessi file":

Nella finestra che si apre, inserisci 744 nel campo del valore numerico. Spunta "Ricorsione nelle sottocartelle" e "Applica solo alle cartelle". Clicca OK.

Se 744 non risolve il problema, prova con 755: il proprietario ottiene lettura, scrittura ed esecuzione, mentre gruppo e altri ottengono lettura ed esecuzione.
Ora imposta i permessi per i file dentro uploads. Clicca col tasto destro sulla cartella uploads di nuovo → "Permessi file". Inserisci 644, spunta "Ricorsione nelle sottocartelle" e "Applica solo ai file". Clicca OK.

Prova a caricare di nuovo un'immagine. Nella maggior parte dei casi, l'errore scompare immediatamente dopo questa procedura. Se non aiuta, prosegui con il passo successivo.
2. Segui la catena di soluzioni per l'errore HTTP
Gli errori HTTP durante il caricamento sono i più frustranti perché WordPress non lascia tracce nei log. Solo "HTTP Error" e nient'altro. Devi procedere per esclusione. Qui sotto trovi una catena dal semplice al complesso: percorrila in ordine finché i caricamenti non riprendono a funzionare.
2.1. Aggiorna la pagina o cambia browser
Sembra banale, ma funziona più spesso di quanto si pensi. A volte la sessione di WordPress scade e, dopo aver rifatto il login, l'errore scompare. Aggiorna la pagina con un reset forzato della cache: Ctrl+F5 su Windows, Cmd+Shift+R su Mac. Se non aiuta, apri il sito in un browser diverso. Se c'è un errore in Chrome ma non in Firefox, il problema risiede nelle estensioni o nella cache specifica di quel browser.
2.2. Svuota la cache del browser
La cache memorizza script e stili obsoleti che possono entrare in conflitto con il caricatore media di WordPress. Scorciatoie da tastiera per un reset completo:

- Windows (Chrome, Firefox, Edge):
Ctrl + Shift + Delete→ "Cancella dati di navigazione" - Mac (Chrome, Firefox):
Cmd + Shift + Delete - Safari:
Shift + click the reload button
In alternativa, vai nelle impostazioni del browser e cancella la cache manualmente. Il percorso varia a seconda del browser ma si trova sempre nella sezione "Cronologia" o "Privacy".
2.3. Rinomina il file immagine
WordPress aggiunge automaticamente numeri ai nomi duplicati (image-1.png, image-2.png), ma a volte questo meccanismo si inceppa. Rinomina il file prima di caricarlo: evita caratteri speciali, spazi e caratteri non ASCII nel nome. Un buon formato: product-banner-01.jpg.
2.4. Comprimi l'immagine
Le dimensioni del file potrebbero raggiungere il limite dell'host. Anche se upload_max_filesize è impostato in modo generoso, alcuni host troncano i buffer a valori più bassi. Comprimi l'immagine: per JPEG, usa Imagify o TinyPNG; per PNG, usa Squoosh.

Verifica anche il formato: se stai caricando un .png, prova a convertirlo in .jpg e viceversa. A volte il problema è legato a un formato specifico e alla versione della libreria PHP (GD o Imagick).
2.5. Disattiva plugin e cambia tema
I plugin di sicurezza (Wordfence, Solid Security, Sucuri) e i plugin di ottimizzazione immagini possono intercettare i caricamenti e causare conflitti. Disattiva temporaneamente TUTTI i plugin e passa a un tema predefinito (Twenty Twenty-Five o qualsiasi altro tema standard). Prova il caricamento. Se funziona, riattiva i plugin uno per uno per individuare il responsabile.
2.6. Aumenta il limite di memoria PHP
Il processo di elaborazione delle immagini in PHP consuma memoria. Uno screenshot in Full HD in formato JPEG potrebbe non bastare nemmeno con 64 MB. Aggiungi quanto segue a wp-config.php prima della riga /* That's all, stop editing! */:
1 define( 'WP_MEMORY_LIMIT', '256M' );
2.7. Aggiorna la versione PHP
Nel 2026, WordPress raccomanda PHP 8.3 come versione minima, con PHP 8.4 o 8.5 come ottimali. Sulle versioni 7.4 e precedenti, la funzionalità di caricamento media non è garantita. Il percorso in cPanel: sezione "Software" → "Select PHP Version" → passa a 8.4 o 8.5.

2.8. Disattiva ModSecurity
ModSecurity è un firewall a livello di server web che a volte tratta i caricamenti di immagini come attacchi. Aggiungi quanto segue a .htaccess (nella root del sito):
1 <IfModule mod_security.c> 2 SecFilterEngine Off 3 SecFilterScanPOST Off 4 </IfModule>
Se questo non risolve, rimuovi queste righe: il problema non è ModSecurity.
2.9. Passa WordPress da Imagick a GD Library
WordPress usa Imagick (se il modulo è installato sul server) o GD Library per l'elaborazione delle immagini. Imagick offre una qualità superiore ma consuma più memoria. Se WP_MEMORY_LIMIT non ha aiutato, forza WordPress a usare GD. Aggiungi quanto segue al functions.php del tuo tema attivo:
1 function wpb_image_editor_default_to_gd( $editors ) { 2 $gd_editor = 'WP_Image_Editor_GD'; 3 $editors = array_diff( $editors, array( $gd_editor ) ); 4 array_unshift( $editors, $gd_editor ); 5 return $editors; 6 } 7 add_filter( 'wp_image_editors', 'wpb_image_editor_default_to_gd' );
Dopo questa modifica, WordPress mette GD Library in prima posizione nella catena e usa Imagick come fallback.
2.10. Installare Add From Server come metodo di caricamento alternativo
Se l'errore HTTP persiste e devi caricare un file con urgenza, caricalo sul server via FTP in una cartella qualsiasi e importalo nella libreria media usando Add From Server. Il plugin preleva i file direttamente dal file system, bypassando il caricatore standard di WordPress. Funzionano file di qualsiasi dimensione, limitati solo dallo spazio disco del tuo piano.
2.11. Contattare il provider di hosting
Se hai provato tutto, scrivi all'assistenza dell'hosting. Descrivi l'errore, allega uno screenshot e specifica le versioni di PHP e WordPress in uso. Spesso il problema si risolve lato server: l'assistenza può modificare php.ini, rimuovere un blocco di ModSecurity o riavviare PHP-FPM.
3. Correggere l'errore "Missing a temporary folder"
L'errore "Missing a temporary folder" blocca non solo il caricamento delle immagini, ma anche l'installazione dei plugin e gli aggiornamenti di WordPress. La causa: PHP non riesce a trovare o a scrivere nella directory temporanea.
La soluzione è indicare esplicitamente a WordPress il percorso della cartella temporanea. Apri wp-config.php e aggiungi prima della riga finale:
1 define( 'WP_TEMP_DIR', dirname( __FILE__ ) . '/wp-content/temp/' );
Salva il file. Poi, via FTP o tramite File Manager di cPanel, crea una cartella temp dentro /wp-content/ (se non esiste). Imposta i permessi della cartella a 755. Torna al pannello di amministrazione e prova di nuovo il caricamento.
4. Aumentare il limite di dimensione per i file caricati
L'errore "Uploaded file exceeds the upload_max_filesize directive" significa che il file è troppo grande per le attuali impostazioni PHP. Tre modi per risolverlo, dal più semplice al livello server.
4.1. Via.htaccess
Aggiungi quanto segue al file .htaccess (nella root del sito):
1 php_value upload_max_filesize 256M
Se l'errore si ripete, aggiungi queste righe:
1 php_value post_max_size 256M 2 php_value memory_limit 512M 3 php_value max_input_time 180 4 php_value max_execution_time 180
4.2. Via wp-config.php
Aggiungi quanto segue a wp-config.php prima della riga finale:
1 @ini_set( 'upload_max_filesize', '256M' ); 2 @ini_set( 'post_max_size', '256M' );
4.3. Via php.ini
Trova il file php.ini sul server. Il percorso dipende dall'host; tipicamente /etc/php/8.4/cli/php.ini o configurabile in cPanel ("Seleziona versione PHP" → "Passa alle opzioni PHP"). Aprilo, cerca la direttiva upload_max_filesize e modifica il valore:
1 upload_max_filesize = 256M 2 post_max_size = 256M
Salva e riavvia PHP tramite cPanel o con un comando SSH. Se non hai accesso a php.ini, contatta l'assistenza del tuo hosting.
5. Soluzioni specifiche per GoDaddy e DreamHost
GoDaddy
Sugli hosting condivisi GoDaddy, gli errori HTTP sono spesso legati all'ordine delle librerie di elaborazione delle immagini. Aggiungi quanto segue al file functions.php del tuo tema attivo:
1 add_filter( 'wp_image_editors', 'change_graphic_lib' ); 2 function change_graphic_lib( $array ) { 3 return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' ); 4 }
Questo codice forza la libreria GD come prima scelta, risolvendo la maggior parte dei casi di errore HTTP specifici di GoDaddy.
DreamHost
Su DreamHost, gli errori sono solitamente legati a conflitti tra plugin o temi. Per prima cosa, disattiva tutti i plugin e passa a un tema predefinito. Elimina temi e plugin inutilizzati, perché possono lasciare hook inattivi che interferiscono con il caricatore. Se questo non aiuta, contatta l'assistenza DreamHost: hanno configurazioni server personalizzate e il loro team di supporto conosce le specificità.
Cosa fare se l'errore continua a ripresentarsi
Se hai seguito tutta la procedura e i caricamenti falliscono ancora una volta a settimana, il problema è più profondo dei permessi o dei limiti PHP. Molto probabilmente il colpevole è un hosting con rigide restrizioni server (piano condiviso economico) o un plugin scritto male che sovrascrive le impostazioni del caricatore multimediale a ogni aggiornamento.
Per prima cosa, escludi i plugin: disattiva tutto per 24 ore e monitora il comportamento del caricatore. Se non ci sono fallimenti nell'arco delle 24 ore, riattiva i plugin uno per uno con un intervallo di un giorno finché non trovi il colpevole.
Se non riesci a trovarlo, cambia hosting. Sul serio. I piani condivisi economici risparmiano sulla memoria PHP e tagliano i buffer in modo così aggressivo che nessuna modifica a .htaccess potrà aiutare. Per una gestione stabile dei file multimediali di WordPress, hai bisogno di un VPS o di un hosting gestito di qualità con memory_limit di almeno 256M e max_execution_time di almeno 120 secondi.
Una soluzione alternativa: carica le immagini via FTP e importale tramite Add From Server. Più lento del caricatore nativo, ma funziona su qualsiasi hosting e non dipende dai limiti PHP.
⁉️🤔 Domande frequenti
Perché gli errori di caricamento si verificano senza una ragione apparente?
I provider di hosting aggiornano regolarmente il software del server: patch minori di PHP, aggiornamenti di Apache, modifiche alla configurazione di ModSecurity. Percorsi, versioni e impostazioni cambiano, e i permessi su
/wp-content/uploads/si rompono. Non hai toccato nulla, ma i caricamenti hanno smesso di funzionare. La soluzione: reimposta i permessi a 744/755 per la cartella e a 644 per i file dentro/wp-content/uploads/, e verifica i limiti PHP.
Cosa devo fare se nulla in questo articolo ha aiutato?
Attiva
WP_DEBUGinwp-config.php:define( 'WP_DEBUG', true );e ripeti il caricamento. WordPress scriverà l'errore specifico in/wp-content/debug.log. Vedrai l'esatto errore fatale o avviso PHP: il più delle volte si tratta di esaurimento della memoria (allowed memory size exhausted), cartella temporanea inaccessibile (failed to open dir) o un conflitto specifico con un plugin. Con queste informazioni, l'assistenza dell'hosting può risolvere il problema molto più velocemente.
Come posso caricare un file molto grande se il mio hosting non mi permette di alzare il limite?
Usa FTP + il plugin Add From Server. Carica il file sul server manualmente via FTP in
/wp-content/uploads/import/(o qualsiasi altra cartella), poi importalo nella libreria multimediale tramite il plugin. Add From Server preleva i file direttamente dal file system del server, bypassando il caricatore HTTP e tutti i suoi limiti. Funziona per file di qualsiasi dimensione; l'unica limitazione è lo spazio su disco del tuo piano. Per caricamenti in blocco, crea una cartella/wp-content/uploads/bulk-import/e carica tutto lì via FTP in una volta sola.
Gli errori di caricamento delle immagini possono essere prevenuti in modo permanente?
Non possono essere eliminati completamente, ma il rischio può essere ridotto al minimo. Mantieni PHP su una versione corrente (8.4 o 8.5 nel 2026), con
memory_limitnon inferiore a 256M. Non installare plugin di sicurezza con impostazioni predefinite aggressive. Controlla i permessi su/wp-content/uploads/ogni sei mesi. Dopo ogni aggiornamento del core di WordPress o di PHP, fai un test di caricamento di un'immagine. Se hai configurato backup automatici, il rollback richiede 5 minuti. E tieni a portata di mano l'accesso FTP: senza, metà delle soluzioni in questo articolo non sono disponibili.
È obbligatorio l'FTP per correggere i permessi?
No. L'alternativa è File Manager in cPanel (o l'equivalente del tuo host). Vai su File Manager →
/wp-content/→ clic destro sulla cartellauploads→ Cambia permessi → imposta 744. La logica è la stessa; l'interfaccia è leggermente diversa. File Manager di cPanel lavora con i permessi esattamente come un client FTP: tutto si fa nel browser senza bisogno di software aggiuntivo. Per gli utenti che trovano complicati i client FTP, questo è il modo più accessibile per correggere i permessi in due minuti.
Errore di caricamento risolto, e ora?
Hai seguito tutta la procedura e i caricamenti funzionano. Ora è il momento della prevenzione, per non tornare su questo problema tra un mese. Tre cose che vale la pena fare subito:
- Registra le tue impostazioni funzionanti. Quei permessi (744/755), i limiti PHP (256M), la versione PHP (8.4+): salvale nei tuoi appunti. Durante la prossima migrazione o aggiornamento del server, le ripristinerai in un minuto invece di un'ora di tentativi ed errori.
- Imposta il monitoraggio dello spazio su disco. Metà degli errori di caricamento "improvvisi" sono causati dall'esaurimento dello spazio su disco. WordPress smette silenziosamente di scrivere, e tu rimani a chiederti cosa sia successo. Plugin gratuiti come WP Health controllano lo spazio disponibile e inviano una notifica alla tua email prima che il disco si riempia.
- Controlla i log una volta al mese.
/wp-content/debug.log(se hai attivatoWP_DEBUG) mostrerà un problema emergente molto prima che diventi bloccante. Pochi minuti al mese fanno risparmiare ore di riparazioni non pianificate.
Hai ancora domande o hai incontrato un caso insolito? Descrivi la situazione nei commenti e lo risolveremo insieme.



