Vai al contenuto
Immagini e media

Perché la cartella uploads di WordPress è così grande

La cartella uploads di WordPress è grande perché WordPress non salva mai un solo file per immagine. Ogni caricamento genera una serie fissa di copie ridimensionate accanto

Pubblicato

La cartella uploads di WordPress è grande perché WordPress non salva mai un solo file per immagine. Ogni caricamento genera una serie fissa di copie ridimensionate accanto all’originale: sette copie per una tipica foto da fotocamera, prima ancora che un tema o un plugin ne aggiunga altre. Non c’è niente di corrotto; stai semplicemente vedendo la moltiplicazione che avviene a ogni singolo caricamento. La soluzione è smettere di generare le misure che non servi mai, poi rigenerare in modo che le vecchie copie vengano eliminate dal disco.

Fai i conti

Carica un JPEG da 4000×3000 e guarda dentro /wp-content/uploads/2026/07/. Non troverai un solo file. Troverai questi:

  • photo.jpg — l’originale, intatto
  • photo-scaled.jpg — una copia da 2560px che WordPress serve al posto dell’originale
  • photo-150x150.jpgthumbnail
  • photo-300x225.jpgmedium
  • photo-768x576.jpgmedium_large
  • photo-1024x768.jpglarge
  • photo-1536x1152.jpg — il 2× di medium_large
  • photo-2048x1536.jpg — il 2× di large

Cioè l’originale più sette derivate, dal solo core. Un caricamento da 3 MB può occupare 5–6 MB su disco prima ancora che un solo plugin entri in gioco. Ora aggiungi un tema che registra quattro misure proprie e WooCommerce (altre tre), e un caricamento diventa quattordici o quindici file. Moltiplica per una libreria di qualche migliaio di immagini e la dimensione della cartella smette di essere un mistero.

Se vuoi il numero esatto per le tue dimensioni e le misure registrate, il calcolatore di spazio immagini fa la moltiplicazione per te.

Perché succede

Quando carichi, wp_generate_attachment_metadata() chiama wp_create_image_subsizes(), che scorre ogni misura restituita da get_intermediate_image_sizes() e scrive un file per ognuna che l’originale è abbastanza grande da produrre. Il core registra thumbnail, medium, medium_large, large, più le misure retina 1536x1536 e 2048x2048 aggiunte in WP 5.3. Qualsiasi tema o plugin che chiama add_image_size() si aggiunge a quello stesso ciclo — in modo permanente, per ogni caricamento futuro.

Il file -scaled deriva da un meccanismo separato: il filtro big_image_size_threshold, con valore predefinito 2560px. Tutto ciò che è più largo ottiene una copia ridimensionata che diventa l’immagine “full” servita, mentre l’originale resta su disco. Così un caricamento grande tiene sia l’originale enorme sia la versione da 2560px.

Puoi vedere esattamente cosa genera la tua configurazione per una data immagine con l’ispettore delle dimensioni immagini.

Come risolverlo, nell’ordine giusto

1. Misura prima di toccare qualsiasi cosa. Tirare a indovinare fa perdere tempo. Dalla radice del sito:

du -sh wp-content/uploads
find wp-content/uploads -type f \( -name '*.jpg' -o -name '*.webp' -o -name '*.png' \) | wc -l
du -ah wp-content/uploads | sort -rh | head -20

2. Deregistra le misure che non servi. La maggior parte dei temi non genera mai le misure 1536 e 2048, e molti non usano mai medium_large. Eliminale:

// functions.php — stop generating sizes this site never outputs
add_action( 'init', function () {
    remove_image_size( '1536x1536' );
    remove_image_size( '2048x2048' );
} );

// Drop medium_large too, if your theme doesn't use the 768px size
add_filter( 'intermediate_image_sizes_advanced', function ( $sizes ) {
    unset( $sizes['medium_large'] );
    return $sizes;
} );

3. Rigenera per eliminare le vecchie copie. Deregistrare ferma solo la generazione futura — i file già su disco restano finché non rigeneri:

wp media regenerate --yes

Le versioni recenti di WP-CLI eliminano i file delle misure non più registrate man mano che procedono. Se invece usi il plugin Regenerate Thumbnails, spunta la sua opzione “delete unregistered sizes” — senza quella casella selezionata, i vecchi file rimangono.

4. Dai la caccia ai file orfani. Cambiare tema non ripulisce mai le misure registrate dal vecchio tema. Nemmeno eliminare gli articoli rimuove sempre le loro derivate. Dopo il passaggio 3, se du -sh è ancora molto più alto di quanto previsto dal calcolatore, hai dei file orfani — file su disco a cui nessun allegato fa riferimento.

Cosa non fare

Non disattivare le immagini scaled per “risparmiare spazio”. Il file -scaled è più piccolo del tuo originale. Disattivare big_image_size_threshold non elimina nulla — fa solo servire a WordPress l’originale da diversi megabyte a ogni visitatore. È una decisione di banda e qualità, non una pulizia dello spazio, e di solito peggiora il peso della pagina. Il tool per disabilitare il ridimensionamento immagini spiega quando è davvero la scelta giusta; ridurre la cartella uploads non è uno di quei casi.

Non eliminare file direttamente da uploads via SFTP. L’elenco delle misure di ogni allegato vive nel suo _wp_attachment_metadata. Eliminare file a mano lascia riferimenti rotti, e la rigenerazione non può ricostruire una misura se hai rimosso l’originale da cui deriva. Elimina l’originale e quell’immagine è persa per sempre.

Non impostare thumbnail/medium/large a 0 in Impostazioni → Media aspettandoti che la cartella si riduca. Azzerare una misura ferma la generazione futura ma non tocca nulla di ciò che è già su disco, e l’interfaccia non può raggiungere medium_large, 1536, 2048, né alcuna misura di tema/plugin — quelle non sono lì.

Non dare la colpa al database. Una cartella uploads pesante è fatta di file immagine, quasi mai del DB. Ottimizzare le tabelle non sposterà il numero.

Ancora bloccato?

Se dopo la rigenerazione la cartella è ancora più grande del previsto, inserisci le tue reali dimensioni immagine e le misure registrate nel calcolatore di spazio e confronta il suo dato con du -sh wp-content/uploads. Un grande divario significa file orfani da un vecchio tema o da articoli eliminati — non il core, e non qualcosa che rigenerare ancora risolverà. Un piccolo divario significa che la matematica è semplicemente questa: sette e più file per caricamento, che funzionano esattamente come previsto.