La sección "Humor en Apuros" se ha reformado. Visítala

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Visitas: 4.272
 
Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Cuando una instalación de WordPress tiene más años que un bosque y su contenido se actualiza con cierta regularidad, como es el caso de este que usted lee ahora, la acumulación de imágenes puede convertirse en un problema gordo, nunca mejor dicho.

Dejar que se amontonen las imágenes con el paso del tiempo, a la larga tiene consecuencias.

Los inodes o inodos

Esos desconocidos. Un inode es cualquier archivo o carpeta que está en el servidor. Esto incluye las imágenes, correos, logs, scripts, hojas de estilo, etc. Todo cuenta como 1, pese lo que pese.

La inmensa mayoría de alojamientos, a pesar de anunciar "espacio ilimitado", siempre tienen un límite para el número de inodes. Aunque los hay muy generosos, LucusHost, por ejemplo los limita a la más que sobrada cantidad de un millón, pero en otros alojamientos esta cantidad puede bajar considerablemente.

Puede que un día necesites migrar y no puedas si no te deshaces de una cantidad enorme de esos inodes, a mí me largaron de malas maneras de un alojamiento por este motivo.

Desperdicio de recursos

Alojar montañas de imágenes sin uso es desperdiciar el espacio en disco que podrías usar para algo necesario y además contribuye a que no rule tan ligero como debiera.

También es muy probable que, si te has desentendido de ellas durante años, muchas no estén optimizadas o, por lo que sea (un cambio de plantilla o restos de un plugin por ejemplo), se han roto añadiendo más peticiones eternas y más consumo de recursos.

Lo importante es tener un plan

Y antes que un plan, una copia de seguridad reciente de todo tu blog, incluyendo la base de datos. Eso siempre.

El objetivo es reducir la cantidad de imágenes a dos. La original subida (con tamaño suficiente y en una plantilla que permita mostrarla escalable en cualquier parte) más una miniatura.

Además de tener un plan, hay que saber identificar qué imágenes están uso y de cuales podemos deshacernos sin problemas. Para ello es vital saber qué las crea.

Lo primero y más importante es repasar todos los tamaños en uso y descubrir dónde se genera cada uno. En muchos casos se crean desde la plantilla a partir de un código que suele estar en el archivo functions.php y suele ser más o menos así (depende de cada plantilla y puede incluso no estar ahí o ni siquiera existir, como en el caso de GeneratePress).

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 223, 137, true );
add_image_size( 'schema-featured', 680, 350, true ); // Featured.
add_image_size( 'schema-featured2', 1360, 700, true ); // Featured x 2.
add_image_size( 'schema-related', 211, 150, true ); // Related.
add_image_size( 'schema-related2', 422, 300, true ); // Related x 2.
add_image_size( 'schema-widgetthumb', 70, 60, true ); // Widget.
add_image_size( 'schema-widgetthumb2', 140, 120, true ); // Widget x 2.
add_image_size( 'schema-widgetfull', 300, 200, true ); // Sidebar full width.
add_image_size( 'schema-slider', 772, 350, false ); // Slider.
add_image_size( 'schema-slider2', 1544, 700, false ); // Slider x 2.

Este ejemplo es del functions.php de la plantilla Schema que usé antes de la que uso ahora.

Aquí resultaba fácil, bastaba cambiar true por false (o eliminar la línea) para evitar que se generara un tamaño al subir una nueva. Además te indicaba para qué se usaba. Antes de "capar" un tamaño asegúrate de que no vas a usar la función para la que se genera.

Esto se aplicará sólo a las nuevas imágenes que subas, no a las que ya tienes subidas. Más adelante hablaremos de cómo deshacernos de ellas.

Ten en cuenta que algunos de tus plugins y widgets también pueden estar creando copias en otros tamaños para un uso concreto. Ahí tendrás que consultar la documentación de cada cosa y echarle un ojo a la ruta de las imágenes hasta localizar su origen y destino.

Antes de seguir, doy por hecho que ya has conseguido saber de dónde viene cada imagen y que sabes que puedes prescindir de la que has decidido eliminar

Las miniaturas que crea WordPress

Aquí suele estar lo magro. Las siguen llamando miniaturas, pero la cuestión es que también crea otros tamaños mucho más gordacos.

Desde la versión 5.3, WordPress genera siete imágenes adicionales para cada imagen que se carga a través de la biblioteca de medios y/o desde el editor visual. Así que cada vez que subes una imagen sumas ocho al total.

Si añadimos otras posibles de la plantilla, plugins y widgets, puede llegar llegar incluso a 12 o más.

Estas son las que crea WordPress:

Miniatura (150x150px)
Tamaño medio (300x300px)
Tamaño grande (1024x1024px)

Medium large 768px
2x Medium large 1536px
2x large 2048px
Scaled 2560px

De las tres primeras podemos prescindir de la de 300 y de la de 1024 y rebajar la miniatura de 150x150 a 100x100. Para esto basta ir a Ajustes/medios y cambiar las medidas y poner 0 (cero) en las que queremos que no se generen.

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Ahora, en mi caso, la miniatura de 100x100 será la que se muestre en la biblioteca de medios. Ya hemos ahorrado unos cientos, puede que miles de imágenes, y un capazo de Kb o Mb reduciendo la cantidad y tamaño.

Para las otras cuatro podemos "desregistrar" la creación de cada una de ellas por separado añadiendo estos snippets en el functions.php de nuestra plantilla o bien a través del plugin Code Snippets.

Desactivar 768px de ancho, proporcional

function shapeSpace_disable_medium_large_images($sizes) {
	
	unset($sizes['medium_large']); // disable 768px size images
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_large_images');

Desactivar 1536px de ancho, proporcional

function shapeSpace_disable_2x_medium_large_images($sizes) {
	
	unset($sizes['1536x1536']); // disable 2x medium-large size
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_medium_large_images');

Desactivar 2048px de ancho, proporcional

function shapeSpace_disable_2x_large_images($sizes) {
	
	unset($sizes['2048x2048']); // disable 2x large size
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_large_images');

Desactivar imagen escalada (2560px)

add_filter('big_image_size_threshold', '__return_false');

Si prefieres usar un único código para todas los tamaños que se generen que quieres desactivar, incluyendo las de otros posibles tamaños, puedes tirar de este y quitar las líneas de las que desees conservar o controlar desde el ajuste de medios de WordPress como en el caso de los tres primeros.

Desactivar todos los tamaños

// Deshabilitar los tamaños de imagen generados
function shapeSpace_disable_image_sizes($sizes) {
	
	unset($sizes['thumbnail']);    // disable thumbnail size
	unset($sizes['medium']);       // disable medium size
	unset($sizes['large']);        // disable large size
	unset($sizes['medium_large']); // disable medium-large size
	unset($sizes['1536x1536']);    // disable 2x medium-large size
	unset($sizes['2048x2048']);    // disable 2x large size
	
	return $sizes;
	
}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_image_sizes');

// Deshabilitar el tamaño de la imagen escalada
add_filter('big_image_size_threshold', '__return_false');

// Deshabilitar otros tamaños de imagen
function shapeSpace_disable_other_image_sizes() {
	
	remove_image_size('post-thumbnail'); // Deshabilita imágenes agregadas con set_post_thumbnail_size ()
	remove_image_size('another-size');   // Deshabilita cualquier otro tamaño de imagen agregado
	
}
add_action('init', 'shapeSpace_disable_other_image_sizes');

Fuente: blog de Jeff Starr. How to Disable WordPress Automatically Generated Images – Complete Guide. Te aconsejo que copies los código de ese post, muy recomendable, por si algo se ha pegado mal aquí.

Jeff Starr, además, es el creador de distintos plugins y uno de ellos hace esto mismo (no lo he probado) por si eres de los que prefiere no complicarse la vida.

A cargarnos las imágenes sobrantes

Bien, se supone que ya hemos desactivado la creación de todos esos tamaños adicionales que no necesitamos que se crean cuando cargamos una imagen.

Ahora subimos una imagen de prueba y verificamos que no se generan esos tamaños adicionales. En mi caso quedó así:

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

¿Pero cómo eliminamos todas esas imágenes subidas y que ahora están sobrando y sin uso?

Hay al menos dos opciones no demasiado complicadas.

A mano. Algo más tedioso y lento. Puedes buscarlas desde el administrador de archivos de Cpanel o desde tu cliente de FTP por sus cadenas únicas del nombre de archivo, como 300x300, 768x, 1536x, etc. e ir borrándolas.

En el caso de que sean muchas imágenes, puedes recurrir al plugin Regenerate Thumbnails que sigue cumpliendo bien con esta misión.

Lo que hace este plugin, un clásico de Alex Mills, es regenerar las miniaturas de las imágenes subidas. Puedes hacerlo una a una desde la biblioteca de medios o de una tacada si no son demasiadas.

Una vez instalado y activado, al abrirlo desde "Herramientas/Regenerar las miniaturas" verás esto:

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Ahí aparecerá la lista de casi todos los tamaños que usa WordPress, pero como ya hemos "desregistrado" la creación de la mayoría de ellos, lo recomendable es probar con una sola imagen de prueba marcando también la opción "Borra los archivos de miniatura de tamaños antiguos sin registrar..."

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Si todo ha salido bien con esa prueba de una imagen, ya puedes regenerar de forma masiva las miniaturas para todos los XXXX adjuntos (primer botón). Con esto estarás eliminando de una tacada todos los tamaños sobrantes.

Yo lo hice hace poco y recuerdo que la regeneración masiva falló, supongo que porque eran muchísimas imágenes (más de 20K) y el proceso se interrumpió en algunos momentos, así que opté por hacerlo a ratos por bloques de 200 imágenes desde la biblioteca de medios.

Cómo deshabilitar los distintos tamaños de imágenes creadas automáticamente por WordPress

Una vez que has terminado con la tarea puedes desinstalar el plugin.

Una buena idea, ahora que seguro que has ganado espacio suficiente, es aprovechar para crear copias optimizadas de tus .jpg en formato .webp sin coste alguno con el plugin Litespeed Cache si tu hosting corre bajo Litespeed.

Servicio de optimización de WordPress


Suscríbete por email para recibir las viñetas y los artículos completos y sin publicidad

Artículos relacionados
 

Repositorio de documentales sobre dibujantes de cómic y humor gráfico.

Tontolares. Los titulares más gilipollas de la prensa. Envía los tuyos

Este blog se aloja en LucusHost

LucusHost, el mejor hosting

Tu WordPress puede volar

Servicio de optimización