166 27/03/2026 07/04/2026 6 min

Diagnosi probabile

Quando immagini e media non si caricano in WordPress, la causa più frequente è una combinazione di permessi errati nella cartella wp-content/uploads, URL dei file non coerenti con il dominio attuale, oppure blocchi lato server come hotlink protection, regole nel file .htaccess, cache aggressiva o limiti di PHP che interrompono l’upload.

In produzione, il problema può anche dipendere da uno storage pieno, da una migrazione incompleta del sito, da un plugin di ottimizzazione immagini che ha alterato i percorsi, o da un CDN che sta servendo contenuti vecchi o non raggiungibili. Se le miniature sono assenti ma i file esistono, spesso è un tema di rigenerazione delle dimensioni o di librerie grafiche non disponibili.

Verifiche immediate

  1. Apri una pagina con immagini mancanti e verifica il comportamento nel browser: tasto destro sull’immagine rotta, copia indirizzo e prova ad aprire l’URL in una nuova scheda. Se compare 404, 403 o un timeout, hai già un’indicazione utile sulla causa.
  2. Dal pannello hosting o via FTP/SFTP controlla che la cartella wp-content/uploads esista e che i file siano realmente presenti nel percorso indicato dall’URL. Se il file manca, il problema è di caricamento o migrazione; se esiste ma non si apre, il problema è di permessi, rewrite o regole del server.
  3. Se hai accesso al server, verifica spazio disco e inode. Su Linux il controllo minimo è:
df -h
find /path/del/sito -xdev -type f | wc -l

Lo spazio deve essere sufficiente e non deve risultare una partizione al 100%. Se il disco è pieno, WordPress può salvare i file a metà o fallire senza messaggi chiari.

  • Controlla se il problema riguarda tutte le immagini o solo alcune. Se solo le immagini nuove non si caricano, il problema è spesso sul caricamento o sui permessi. Se invece le immagini vecchie spariscono dopo una migrazione, il problema è quasi sempre negli URL salvati nel database o nella configurazione del dominio.
  • Se usi un CDN o una cache esterna, svuota temporaneamente la cache e riprova. Un file che esiste ma continua a risultare rotto può essere servito da una copia obsoleta o da una regola di cache sbagliata.
  • Soluzione consigliata passo-passo

    1. Ripristina i permessi corretti. La soluzione più sicura è riportare directory e file ai valori standard di WordPress: cartelle a 755, file a 644. Se gestisci il sito da SSH, esegui prima un backup del contenuto e poi verifica i permessi della sola cartella interessata. Un esempio, da adattare al percorso reale del sito, è:
    chmod -R u=rwX,go=rX /percorso/del/sito/wp-content/uploads

    Dopo la modifica, ricarica una pagina con immagini mancanti. Se l’errore era 403, spesso il problema si risolve subito.

    1. Controlla i limiti di upload di PHP. Dal pannello hosting o in php.ini/.user.ini verifica almeno upload_max_filesize, post_max_size e memory_limit. Per immagini grandi o gallery pesanti, valori troppo bassi causano upload interrotti o file incompleti. Un assetto comune e prudente è: upload_max_filesize uguale o superiore alla dimensione massima dei file che carichi, post_max_size maggiore di upload_max_filesize, e memory_limit adeguato al tema e ai plugin. Dopo la modifica, prova a caricare un file di test di dimensione nota.
    2. Verifica gli URL dei media dopo migrazione o cambio dominio. Se il sito è stato spostato, controlla che nel database non siano rimasti vecchi riferimenti a dominio, protocollo o sottocartella. In WordPress, gli URL errati nelle tabelle dei post e dei metadati causano immagini rotte anche se i file sono presenti. Il fix più sicuro è usare uno strumento di search and replace affidabile, preferibilmente dal plugin di manutenzione o da un tool specifico del pannello hosting, evitando sostituzioni manuali approssimative. Dopo l’operazione, svuota la cache e ricarica una pagina campione.
    3. Rivedi il file .htaccess e le regole di protezione. Se trovi regole che negano l’accesso alla cartella uploads, o un blocco aggressivo contro alcuni tipi di file, prova a disattivarle temporaneamente rinominando il file e testando il sito. Prima di toccarlo, fai un backup:
    cp .htaccess .htaccess.bak

    Se il problema rientra dopo la rinomina, la causa è quasi certamente in una regola specifica. Ripristina il backup e correggi solo la direttiva responsabile, invece di lasciare il sito senza protezioni.

    1. Ricrea le miniature se le immagini esistono ma non si vedono correttamente. Se i file originali sono presenti ma mancano le varie dimensioni generate da WordPress, il tema può mostrare spazi vuoti o immagini distorte. In questo caso usa un plugin affidabile per rigenerare le miniature e verifica prima su un numero limitato di contenuti. Il controllo successivo è semplice: apri un articolo con più formati immagine e conferma che anteprime, thumbnail e immagini grandi siano coerenti.
    2. Disattiva temporaneamente i plugin che toccano media e ottimizzazione. Plugin di compressione, lazy load, WebP, CDN o sicurezza possono riscrivere gli URL o bloccare l’accesso ai file. Procedi in modo reversibile: disattiva un plugin per volta, svuota la cache e verifica la pagina. Se il problema sparisce dopo la disattivazione di un plugin, hai trovato il punto di intervento. A quel punto aggiorna il plugin, controlla le sue impostazioni e riattivalo solo dopo aver corretto la configurazione.
    3. Controlla i log del server e di WordPress. Se il caricamento fallisce senza messaggi visibili, i log sono spesso l’unica fonte affidabile. Cerca errori come permission denied, file too large, mod_security, disk quota exceeded o errori di librerie grafiche. Se usi WordPress, attiva temporaneamente il debug solo per la diagnosi e disattivalo subito dopo. Un errore ricorrente nei log conferma la causa e evita tentativi casuali.

    Controlli finali / rollback

    1. Verifica tre casi reali: una immagine già esistente, un nuovo upload e una pagina con miniature. Se tutti e tre funzionano, la correzione è stabile. Se fallisce solo l’upload nuovo, il problema è ancora lato PHP, quota o permessi.
    2. Controlla che il browser apra direttamente l’URL di un media senza errori 403 o 404. L’esito atteso è la visualizzazione del file oppure una risposta HTTP corretta con contenuto immagine.
    3. Se hai modificato .htaccess, plugin o parametri PHP e qualcosa peggiora, esegui il rollback più semplice: ripristina il backup del file, riattiva un solo plugin alla volta oppure rimetti i valori precedenti in .user.ini/php.ini. Il rollback è appropriato se, dopo il fix, compaiono nuovi errori o se i media tornano a rompersi su più pagine.
    4. Se il sito usa CDN o cache, svuota la cache finale e verifica da una finestra anonima e da un dispositivo diverso. In questo modo escludi che la vecchia versione sia ancora servita a livello esterno.

    Assunzione: il problema riguarda un sito WordPress standard con accesso almeno al pannello hosting o a FTP/SFTP, senza necessità di interventi distruttivi sul database.

    Checklist rapida: controlla file presenti, permessi corretti, spazio disco, URL coerenti dopo eventuale migrazione e regole di cache o sicurezza che bloccano gli allegati.