Sari la conținut
Imagini și media

De ce este atât de mare folderul de uploads din WordPress

Folderul de uploads din WordPress este mare pentru că WordPress nu stochează niciodată un singur fișier per imagine. Fiecare încărcare declanșează un set fix de copii redimensionate alături de

Publicat

Folderul de uploads din WordPress este mare pentru că WordPress nu stochează niciodată un singur fișier per imagine. Fiecare încărcare declanșează un set fix de copii redimensionate alături de original — șapte pentru o fotografie de dimensiune tipică de aparat foto, înainte ca vreo temă sau vreun plugin să mai adauge altele. Nimic nu este corupt; vezi pur și simplu multiplicarea care se produce la fiecare încărcare. Soluția este să oprești generarea dimensiunilor pe care nu le servești niciodată, apoi să regenerezi, astfel încât copiile vechi să fie șterse de pe disc.

Fă calculul

Încarcă un JPEG de 4000×3000 și uită-te în /wp-content/uploads/2026/07/. Nu vei găsi un singur fișier. Vei găsi acestea:

  • photo.jpg — originalul, neatins
  • photo-scaled.jpg — o copie de 2560px pe care WordPress o servește în locul originalului
  • photo-150x150.jpgthumbnail
  • photo-300x225.jpgmedium
  • photo-768x576.jpgmedium_large
  • photo-1024x768.jpglarge
  • photo-1536x1152.jpg — varianta 2× a medium_large
  • photo-2048x1536.jpg — varianta 2× a large

Adică originalul plus șapte derivate, doar din nucleu. O încărcare de 3 MB poate ajunge la 5–6 MB pe disc înainte ca vreun plugin să ruleze. Adaugă acum o temă care înregistrează patru dimensiuni proprii și WooCommerce (încă trei), și o singură încărcare devine paisprezece sau cincisprezece fișiere. Înmulțește cu o bibliotecă de câteva mii de imagini și dimensiunea folderului încetează să mai fie un mister.

Dacă vrei numărul exact pentru propriile dimensiuni și dimensiunile înregistrate, calculatorul de spațiu de stocare pentru imagini face calculul în locul tău.

De ce se întâmplă

Când încarci, wp_generate_attachment_metadata() apelează wp_create_image_subsizes(), care parcurge fiecare dimensiune returnată de get_intermediate_image_sizes() și scrie un fișier pentru fiecare dimensiune pe care originalul este suficient de mare să o producă. Nucleul înregistrează thumbnail, medium, medium_large, large, plus dimensiunile retina 1536x1536 și 2048x2048 adăugate în WP 5.3. Orice temă sau plugin care apelează add_image_size() se adaugă la aceeași buclă — permanent, pentru fiecare încărcare viitoare.

Fișierul -scaled provine dintr-un mecanism separat: filtrul big_image_size_threshold, implicit 2560px. Orice imagine mai lată primește o copie scalată care devine imaginea “full” servită, în timp ce originalul rămâne pe disc. Așadar o încărcare mare păstrează ambele — atât originalul uriaș, cât și versiunea de 2560px.

Poți vedea exact ce generează configurația ta pentru o anumită imagine cu inspectorul de dimensiuni de imagine.

Cum rezolvi problema, pas cu pas

1. Măsoară înainte să atingi ceva. Ghicitul înseamnă timp pierdut. Din rădăcina site-ului:

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. Anulează înregistrarea dimensiunilor pe care nu le servești. Majoritatea temelor nu afișează niciodată dimensiunile 1536 și 2048, iar multe nu folosesc niciodată medium_large. Elimină-le:

// 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. Regenerează pentru a șterge copiile vechi. Anularea înregistrării oprește doar generarea viitoare — fișierele deja aflate pe disc rămân până când regenerezi:

wp media regenerate --yes

Versiunile recente de WP-CLI șterg din mers fișierele pentru dimensiunile care nu mai sunt înregistrate. Dacă folosești în schimb pluginul Regenerate Thumbnails, bifează opțiunea “delete unregistered sizes” — fără această căsuță bifată, fișierele vechi rămân.

4. Vânează fișierele orfane. Schimbarea temelor nu curăță niciodată dimensiunile pe care le-a înregistrat tema veche. Ștergerea articolelor nu elimină nici ea întotdeauna derivatele lor. După pasul 3, dacă du -sh este în continuare mult peste ce prezice calculatorul, ai fișiere orfane — fișiere pe disc pe care niciun atașament nu le referențiază.

Ce să nu faci

Nu dezactiva imaginile scalate ca să “economisești spațiu”. Fișierul -scaled este mai mic decât originalul tău. Dezactivarea big_image_size_threshold nu șterge nimic — pur și simplu face ca WordPress să servească originalul de mai multe megaocteți fiecărui vizitator. Aceasta este o decizie legată de lățimea de bandă și de calitate, nu o curățare a spațiului de stocare, și de obicei înrăutățește greutatea paginii. Instrumentul disable-scaled-images explică atunci când chiar este alegerea potrivită; micșorarea folderului de uploads nu este unul dintre acele cazuri.

Nu șterge fișiere direct din uploads prin SFTP. Lista de subdimensiuni a fiecărui atașament se află în _wp_attachment_metadata. Ștergerea manuală a fișierelor lasă referințe rupte, iar regenerarea nu poate reconstrui o dimensiune dacă ai eliminat originalul din care este derivată. Șterge originalul și imaginea aceea este pierdută pentru totdeauna.

Nu seta thumbnail/medium/large la 0 în Setări → Media așteptându-te ca folderul să se micșoreze. Setarea unei dimensiuni la zero oprește generarea viitoare, dar nu atinge nimic deja aflat pe disc, iar interfața nu poate ajunge la medium_large, 1536, 2048 sau la vreo dimensiune de temă/plugin — acelea nu sunt acolo.

Nu da vina pe baza de date. Un folder uploads greu înseamnă fișiere de imagine, aproape niciodată baza de date. Optimizarea tabelelor nu va mișca cifra.

Tot blocat?

Dacă folderul este în continuare mai mare decât te așteptai după regenerare, rulează dimensiunile reale ale imaginilor tale și dimensiunile înregistrate prin calculatorul de spațiu de stocare și compară cifra acestuia cu du -sh wp-content/uploads. O diferență mare înseamnă fișiere orfane de la o temă veche sau de la articole șterse — nu nucleul și nu ceva ce încă o regenerare va rezolva. O diferență mică înseamnă că matematica este pur și simplu ceea ce este: șapte sau mai multe fișiere per încărcare, funcționând exact așa cum a fost proiectat.