I have been using the Avada theme quite happily for a few of my sites, up until I noticed what it was doing to the uploads folder!

I kid you not, the theme was creating an additional 13 intermediate image sizes, in the class-avada-init.php file. This is in addition to the three sizes created by WooCommerce and another three created by WordPress.

If you are the kind of person who uploads image at the size you intend to use them, you really don’t need WordPress creating an extra 19 images per uploaded image, and chewing through your account’s inodes.

WordPress additional image sizes

To stop WordPress creating additional images: Go to Settings -> Media and set all image sizes to 0, 0.

WooCommerce additional image sizes

To stop WooCommerce creating additional images: WooCommerce -> Settings -> Products -> Display, and set any unused sizes to 0, 0.

Theme additional image sizes

To deal with your theme’s additional image sizes, I found this tutorial from tutsplus.com extremely helpful. I am going to paste in the code needed for Avada, but it is easily customised for your own bloaty theme.

Warning: it is best to do this in your child theme, not directly in the theme.

Add the following to the functions.php file of your child theme. The first few lines should already be there, but I’m leaving them in just in case you are new to child themes. You need to know what the theme has called the additional image sizes. If you don’t know, you could do a text search through the theme files for  add_image_size

<?php 
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
 wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
add_filter( 'intermediate_image_sizes_advanced', 'remove_parent_image_sizes' );
 
function remove_parent_image_sizes( $sizes ) {
 unset( $sizes['blog-large'] );
 unset( $sizes['blog-medium'] );
 unset( $sizes['tabs-img'] );
 unset( $sizes['related-img'] );
 unset( $sizes['portfolio-full'] );
 unset( $sizes['portfolio-one'] );
 unset( $sizes['portfolio-two'] );
 unset( $sizes['portfolio-three'] );
 unset( $sizes['portfolio-four'] );
 unset( $sizes['portfolio-five'] );
 unset( $sizes['portfolio-six'] );
 unset( $sizes['recent-posts'] );
 unset( $sizes['recent-works-thumbnail'] );
 return $sizes;
}
?>

After you have saved that to functions.php, and activated your child theme, you will need to run the wonderful Force Regenerate Thumbnails plugin, to remove all the additional sizes and clean up your media folder.