Γιατί ο φάκελος uploads του WordPress είναι τόσο μεγάλος
Ο φάκελος uploads του WordPress είναι μεγάλος επειδή το WordPress δεν αποθηκεύει ποτέ ένα μόνο αρχείο ανά εικόνα. Κάθε μεταφόρτωση δημιουργεί ένα σταθερό σύνολο αντιγράφων σε διαφορετικές διαστάσεις δίπλα στο
Δημοσιεύτηκε
Ο φάκελος uploads του WordPress είναι μεγάλος επειδή το WordPress δεν αποθηκεύει ποτέ ένα μόνο αρχείο ανά εικόνα. Κάθε μεταφόρτωση δημιουργεί ένα σταθερό σύνολο αντιγράφων σε διαφορετικές διαστάσεις δίπλα στο πρωτότυπο — επτά από αυτά για μια τυπική φωτογραφία σε μέγεθος κάμερας, πριν ακόμη προσθέσει κι άλλα κάποιο θέμα ή πρόσθετο. Τίποτα δεν είναι κατεστραμμένο· απλώς βλέπετε τον πολλαπλασιασμό που συμβαίνει σε κάθε μία μεταφόρτωση. Η λύση είναι να σταματήσετε να παράγετε τα μεγέθη που δεν σερβίρετε ποτέ και μετά να κάνετε αναδημιουργία, ώστε τα παλιά αντίγραφα να διαγραφούν από τον δίσκο.
Κάντε τα μαθηματικά
Ανεβάστε ένα JPEG 4000×3000 και δείτε μέσα στο /wp-content/uploads/2026/07/. Δεν θα βρείτε ένα αρχείο. Θα βρείτε αυτά:
photo.jpg— το πρωτότυπο, ανέγγιχτοphoto-scaled.jpg— ένα αντίγραφο 2560px που το WordPress σερβίρει αντί για το πρωτότυποphoto-150x150.jpg—thumbnailphoto-300x225.jpg—mediumphoto-768x576.jpg—medium_largephoto-1024x768.jpg—largephoto-1536x1152.jpg— το 2×medium_largephoto-2048x1536.jpg— το 2×large
Δηλαδή το πρωτότυπο συν επτά παράγωγα, μόνο από τον πυρήνα. Μια μεταφόρτωση 3 MB μπορεί να καταλήξει σε 5–6 MB στον δίσκο πριν καν τρέξει ένα μόνο πρόσθετο. Τώρα προσθέστε ένα θέμα που καταχωρεί τέσσερα δικά του μεγέθη και το WooCommerce (άλλα τρία), και μία μεταφόρτωση γίνεται δεκατέσσερα ή δεκαπέντε αρχεία. Πολλαπλασιάστε επί μια βιβλιοθήκη μερικών χιλιάδων εικόνων και το μέγεθος του φακέλου παύει να είναι μυστήριο.
Αν θέλετε τον ακριβή αριθμό για τις δικές σας διαστάσεις και τα καταχωρημένα μεγέθη, ο υπολογιστής αποθήκευσης εικόνων κάνει τον πολλαπλασιασμό για εσάς.
Γιατί συμβαίνει
Όταν κάνετε μεταφόρτωση, η wp_generate_attachment_metadata() καλεί την wp_create_image_subsizes(), η οποία διατρέχει κάθε μέγεθος που επιστρέφει η get_intermediate_image_sizes() και γράφει ένα αρχείο για καθένα που το πρωτότυπο είναι αρκετά μεγάλο για να παραγάγει. Ο πυρήνας καταχωρεί τα thumbnail, medium, medium_large, large, συν τα retina μεγέθη 1536x1536 και 2048x2048 που προστέθηκαν στο WP 5.3. Οποιοδήποτε θέμα ή πρόσθετο καλεί την add_image_size() προσθέτει στον ίδιο αυτόν βρόχο — μόνιμα, για κάθε μελλοντική μεταφόρτωση.
Το αρχείο -scaled προέρχεται από έναν ξεχωριστό μηχανισμό: το φίλτρο big_image_size_threshold, με προεπιλογή 2560px. Οτιδήποτε πλατύτερο αποκτά ένα κλιμακωμένο αντίγραφο που γίνεται η “πλήρης” εικόνα που σερβίρεται, ενώ το πρωτότυπο παραμένει στον δίσκο. Έτσι μια μεγάλη μεταφόρτωση κρατά και τα δύο: το τεράστιο πρωτότυπο και την έκδοση των 2560px.
Μπορείτε να δείτε ακριβώς τι παράγει η δική σας εγκατάσταση για μια δεδομένη εικόνα με τον επιθεωρητή μεγεθών εικόνας.
Πώς να το διορθώσετε, με τη σειρά
1. Μετρήστε πριν αγγίξετε οτιδήποτε. Οι εικασίες σπαταλούν χρόνο. Από τη ρίζα του site:
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. Καταργήστε την καταχώρηση των μεγεθών που δεν σερβίρετε. Τα περισσότερα θέματα δεν εμφανίζουν ποτέ τα μεγέθη 1536 και 2048, και πολλά δεν χρησιμοποιούν ποτέ το medium_large. Πετάξτε τα:
// 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. Κάντε αναδημιουργία για να διαγραφούν τα παλιά αντίγραφα. Η κατάργηση της καταχώρησης σταματά μόνο τη μελλοντική παραγωγή — τα αρχεία που βρίσκονται ήδη στον δίσκο παραμένουν μέχρι να κάνετε αναδημιουργία:
wp media regenerate --yes
Οι πρόσφατες εκδόσεις του WP-CLI διαγράφουν, καθώς προχωρούν, τα αρχεία για μεγέθη που δεν είναι πλέον καταχωρημένα. Αν αντ’ αυτού χρησιμοποιείτε το πρόσθετο Regenerate Thumbnails, επιλέξτε την επιλογή του “delete unregistered sizes” — χωρίς τσεκαρισμένο αυτό το κουτί, τα παλιά αρχεία παραμένουν.
4. Κυνηγήστε τα ορφανά αρχεία. Η αλλαγή θέματος δεν καθαρίζει ποτέ τα μεγέθη που είχε καταχωρήσει το παλιό θέμα. Η διαγραφή δημοσιεύσεων επίσης δεν αφαιρεί πάντα τα παράγωγά τους. Μετά το βήμα 3, αν το du -sh είναι ακόμη πολύ πάνω από αυτό που προβλέπει ο υπολογιστής, έχετε ορφανά — αρχεία στον δίσκο που δεν αναφέρει κανένα συνημμένο.
Τι να μην κάνετε
Μην απενεργοποιείτε τις κλιμακωμένες εικόνες για να “εξοικονομήσετε χώρο”. Το αρχείο -scaled είναι μικρότερο από το πρωτότυπό σας. Η απενεργοποίηση του big_image_size_threshold δεν διαγράφει τίποτα — απλώς κάνει το WordPress να σερβίρει το πλήρες πρωτότυπο πολλών megabyte σε κάθε επισκέπτη. Αυτή είναι απόφαση εύρους ζώνης και ποιότητας, όχι καθαρισμός αποθήκευσης, και συνήθως χειροτερεύει το βάρος της σελίδας. Το εργαλείο απενεργοποίησης κλιμακωμένων εικόνων εξηγεί πότε είναι πραγματικά η σωστή επιλογή· το να μικρύνει ο φάκελος uploads δεν είναι μία από αυτές.
Μη διαγράφετε αρχεία απευθείας από το uploads μέσω SFTP. Η λίστα υπομεγεθών κάθε συνημμένου βρίσκεται στο _wp_attachment_metadata του. Η διαγραφή αρχείων με το χέρι αφήνει σπασμένες αναφορές, και η αναδημιουργία δεν μπορεί να ξαναφτιάξει ένα μέγεθος αν έχετε αφαιρέσει το πρωτότυπο από το οποίο προέρχεται. Διαγράψτε το πρωτότυπο και αυτή η εικόνα χάθηκε οριστικά.
Μη βάζετε το thumbnail/medium/large στο 0 στις Ρυθμίσεις → Πολυμέσα περιμένοντας να μικρύνει ο φάκελος. Ο μηδενισμός ενός μεγέθους σταματά τη μελλοντική παραγωγή, αλλά δεν αγγίζει τίποτα από όσα υπάρχουν ήδη στον δίσκο, και το περιβάλλον δεν μπορεί να φτάσει στα medium_large, 1536, 2048, ή σε οποιοδήποτε μέγεθος θέματος/προσθέτου — αυτά δεν βρίσκονται εκεί.
Μην κατηγορείτε τη βάση δεδομένων. Ένας βαρύς φάκελος uploads είναι αρχεία εικόνων, ουσιαστικά ποτέ η βάση. Η βελτιστοποίηση των πινάκων δεν θα μετακινήσει τον αριθμό.
Ακόμη κολλημένοι;
Αν ο φάκελος είναι ακόμη μεγαλύτερος από το αναμενόμενο μετά την αναδημιουργία, περάστε τις πραγματικές διαστάσεις των εικόνων σας και τα καταχωρημένα μεγέθη από τον υπολογιστή αποθήκευσης και συγκρίνετε το νούμερό του με το du -sh wp-content/uploads. Ένα μεγάλο χάσμα σημαίνει ορφανά αρχεία από ένα παλιό θέμα ή διαγραμμένες δημοσιεύσεις — όχι ο πυρήνας, και όχι κάτι που θα διορθώσει περισσότερη αναδημιουργία. Ένα μικρό χάσμα σημαίνει ότι τα μαθηματικά είναι απλώς έτσι όπως είναι: επτά και πλέον αρχεία ανά μεταφόρτωση, δουλεύοντας ακριβώς όπως σχεδιάστηκε.