Optimiza Imágenes en WordPress desde la Terminal sin Plugins

Optimiza Imágenes en WordPress desde la Terminal sin Plugins

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

  1. Guarda el script en tu servidor:
nano optimizar_imagenes.sh

Pega el código, guarda (CTRL + X, Y, ENTER).

  1. Dale permisos de ejecución:
chmod +x optimizar_imagenes.sh
  1. Ejecuta el script:
./optimizar_imagenes.sh
  1. (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.