Reducir el peso de las imágenes en WordPress es clave para mejorar la velocidad de carga y el LCP (Largest Contentful Paint), un factor importante para el SEO y la experiencia del usuario. En este artículo, aprenderás a optimizar todas las imágenes de tu WordPress usando la terminal de Linux, sin necesidad de plugins.
NOTA IMPORTANTE: Antes de comenzar a ejecutar este script te recomiendo que hagas un backup de todos tus datos.
Instalación de los Programas Necesarios
Para ejecutar el script de optimización, necesitas instalar los siguientes paquetes:
- jpegoptim: Comprime archivos JPG/JPEG.
- optipng: Optimiza PNG sin pérdida de calidad.
- gifsicle: Reduce el peso de los GIFs.
Instalación en Debian/Ubuntu
sudo apt update && sudo apt install jpegoptim optipng gifsicle -y
Instalación en CentOS/RHEL
sudo yum install epel-release -y
sudo yum install jpegoptim optipng gifsicle -y
Instalación en Arch Linux
sudo pacman -S jpegoptim optipng gifsicle
Script para Optimizar Imágenes en WordPress
El siguiente script optimiza JPG, PNG y GIF dentro de la carpeta /wp-content/uploads/ sin cambiar el nombre de los archivos ni afectar las referencias en WordPress. Además, evita volver a optimizar imágenes que ya han sido comprimidas.
Código del Script
#!/bin/bash
IMAGES_DIR="/var/www/html/wp-content/uploads"
LOG_FILE="/var/log/optimizacion_imagenes.log"
echo "Iniciando optimización de imágenes..." | tee -a "$LOG_FILE"
# Optimizar JPG/JPEG solo si no han sido optimizados antes
find "$IMAGES_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) | while read -r img; do
before_size=$(stat -c %s "$img") # Obtener tamaño antes
jpegoptim --strip-all --max=85 --quiet "$img"
after_size=$(stat -c %s "$img") # Obtener tamaño después
if [ "$before_size" -ne "$after_size" ]; then
echo "Optimizado: $img ($before_size → $after_size bytes)" | tee -a "$LOG_FILE"
else
echo "Ya optimizado: $img" | tee -a "$LOG_FILE"
fi
done
# Optimizar PNG (optipng no vuelve a comprimir imágenes ya optimizadas)
find "$IMAGES_DIR" -type f -iname "*.png" | while read -r img; do
before_size=$(stat -c %s "$img")
optipng -o7 -quiet "$img"
after_size=$(stat -c %s "$img")
if [ "$before_size" -ne "$after_size" ]; then
echo "Optimizado: $img ($before_size → $after_size bytes)" | tee -a "$LOG_FILE"
else
echo "Ya optimizado: $img" | tee -a "$LOG_FILE"
fi
done
# Optimizar GIF (comprobar tamaño antes y después)
find "$IMAGES_DIR" -type f -iname "*.gif" | while read -r img; do
before_size=$(stat -c %s "$img")
gifsicle -b -O3 "$img"
after_size=$(stat -c %s "$img")
if [ "$before_size" -ne "$after_size" ]; then
echo "Optimizado: $img ($before_size → $after_size bytes)" | tee -a "$LOG_FILE"
else
echo "Ya optimizado: $img" | tee -a "$LOG_FILE"
fi
done
echo "Optimización completada." | tee -a "$LOG_FILE"
Cómo Usar el Script
- Guarda el script en tu servidor:
nano optimizar_imagenes.sh
Pega el código, guarda (CTRL + X, Y, ENTER).
- Dale permisos de ejecución:
chmod +x optimizar_imagenes.sh
- Ejecuta el script:
./optimizar_imagenes.sh
- (Opcional) Automatizar con cron: Si deseas que el script se ejecute automáticamente cada semana, agrégalo a cron:
crontab -e
Añade esta línea al final:
0 3 * * 0 /ruta/del/script/optimizar_imagenes.sh
Esto ejecutará la optimización todos los domingos a las 3:00 AM.
Beneficios de Este Método
- No cambia los nombres de las imágenes (WordPress seguirá funcionando sin problemas).
- Evita optimizar imágenes ya procesadas (ahorra recursos).
- Reduce tiempos de carga y mejora la puntuación en PageSpeed.
- No requiere plugins adicionales.
- Seguro y reversible (hace cambios solo si es necesario).
Conclusión
Este script te permite optimizar las imágenes de WordPress de manera eficiente sin necesidad de plugins. La mejora en la velocidad de carga beneficiará tanto la experiencia del usuario como el SEO de tu sitio.
Implementa este método hoy mismo y haz que tu WordPress sea más rápido.