Plugin de conversión automática de imágenes a WebP

Contexto

La idea de este plugin nació cuando comencé a subir imágenes destacadas para las entradas del blog de esta web. Al principio, las publicaciones no tenían imágenes destacadas, pero después me pareció una buena opción incorporarlas para hacer los posts más atractivos y mejorar el diseño general. Las imágenes destacadas ayudaron a que cada entrada tuviera una identidad visual más clara y aportaron un toque más profesional al blog.

Como las entradas consistían principalmente en texto, en especial en la parte superior (above the fold), la velocidad de carga era bastante alta. No quería sacrificar ese rendimiento al añadir elementos visuales, así que opté por trabajar con imágenes en formato webP. Para lograrlo, comencé convirtiendo cada archivo manualmente mediante servicios en la web. Aunque el proceso no era especialmente lento, sí se volvía repetitivo y tedioso cuando necesitaba subir varias imágenes o actualizar contenido con frecuencia. Además, interrumpía el flujo natural de trabajo porque implicaba salir del editor, realizar la conversión en un intermediario y luego regresar a WordPress.

A medida que el blog crecía, también lo hacía la cantidad de imágenes destacadas que necesitaba preparar, y quedó claro que seguir haciéndolo manualmente no era sostenible a largo plazo.

Solución

Como ya tenía conocimiento acerca de Imagick y su uso con PHP, surgió la idea de crear un plugin personalizado que aprovechara este complemento para realizar la conversión en algún punto del proceso de subida de archivos. Aunque existen plugins que automatizan esta tarea, no quería depender de servicios externos ni instalar complementos de terceros que añadieran funciones innecesarias o que pudieran dejar de actualizarse con el tiempo.

A partir de eso desarrollé una solución que se integra directamente con el flujo nativo de subida de WordPress. El plugin convierte imágenes en formato JPG o PNG a WebP antes de que WordPress las mueva a su ubicación final, generalmente en el directorio temporal del sistema (/tmp). Esto ocurre también antes de que se generen las distintas versiones de tamaño y antes de registrar el adjunto en la biblioteca de medios, lo que asegura que todo el proceso posterior use la imagen optimizada desde el inicio.

Cabe resaltar que esta solución funciona solo con Imagick, por ahora, debido a que consideré los recursos de mi hosting actual.

El resultado es un plugin ligero, eficiente y completamente adaptado a mis necesidades. Gracias a esta implementación mantengo una excelente velocidad de carga en las entradas, con un flujo de trabajo mucho más cómodo y sin depender de herramientas externas. Esta solución se ha convertido en una parte importante de mi proceso de publicación y un paso más hacia un sitio optimizado y fácil de mantener.