Por qué moví mi sitio de WordPress a Hugo y Cloudflare Pages

May 7, 2025 • By Eduardo Cuervo

Durante mucho tiempo, mi sitio web personal funcionó en WordPress. Es una plataforma poderosa con un vasto ecosistema, pero con el tiempo, me encontré deseando algo más simple, más rápido y más alineado con mi forma preferida de trabajar como ingeniero de software. Eso me llevó a migrar el sitio a una nueva pila de tecnologías: Hugo como generador de sitios estáticos y Cloudflare Pages para el alojamiento.

¿Por qué migrar desde WordPress?

WordPress me ayudó a lograr un aspecto y diseño atractivos y contenido dinámico como presentar videos de YouTube de mi canal o administrar mis publicaciones, pero encontré algunos inconvenientes para mi sitio personal:

  1. Rendimiento: Los sitios dinámicos inherentemente tienen más sobrecarga. Generar páginas sobre la marcha implica consultas a bases de datos y procesamiento del lado del servidor, lo que puede afectar la velocidad de carga.
  2. Mantenimiento: Mantener actualizados WordPress, los temas y los complementos requiere un esfuerzo continuo para garantizar la seguridad y la compatibilidad. Mi sitio a menudo se rompía cuando un complemento necesitaba una actualización.
  3. Costo: Nada supera lo gratuito cuando se trata de costos. Para un sitio personal, el nivel gratuito de proveedores como CloudFlare es suficiente. Alojar sitios web de WordPress es barato, pero no gratuito.
  4. Control y Flujo de Trabajo: Como desarrollador, prefiero trabajar directamente con código y archivos de texto en un repositorio de Git. A menudo me hacía sentir incómodo no tener un control estricto sobre el código en WordPress.

Por qué elegí Hugo

Quería un generador de sitios estáticos. Consideré algunas opciones de generadores de sitios estáticos como Astro y Eleventy, y probablemente también habrían funcionado bien. Comencé con Hugo debido a su dependencia de YAML y Markdown, que encuentro convenientes. Encontré estas ventajas generales de Hugo, y probablemente de otros SSGs, convincentes:

  • Velocidad: Hugo es muy rápido. Tarda menos de un segundo en regenerar todo el sitio, lo que hace que el desarrollo local y las vistas previas sean instantáneos.
  • Simplicidad: El contenido está escrito en archivos markdown, y la estructura del sitio está definida por plantillas simples. ¡No se necesita base de datos! Una vez que tengo el diseño, agregar/actualizar contenido es muy fácil.
  • Flexibilidad: No tuvo problemas para manejar mi galería de videos, publicaciones filtradas por etiquetas e incluso este blog. De nuevo, no hay necesidad de una base de datos para algo de esta escala.
  • Amigable para el Desarrollador: Administrar contenido en Markdown y plantillas dentro de un repositorio de Git se adapta perfectamente a mi flujo de trabajo. Puedo probar los cambios en mi máquina local muy fácilmente. VS Code para la victoria.

Alojamiento en Cloudflare Pages

Generar archivos HTML estáticos es solo la mitad de la batalla; necesitas un lugar para alojarlos. Cloudflare Pages surgió como la solución perfecta:

  • Nivel Gratuito Generoso: Para sitios personales y muchos otros proyectos, el nivel gratuito ofrece un ancho de banda y compilaciones más que suficientes.
  • CDN Global: Garantiza tiempos de carga rápidos para los visitantes en cualquier lugar.
  • Integración con Git: Las implementaciones son automáticas. Enviar cambios a mi repositorio de GitHub desencadena una nueva compilación e implementación en Cloudflare Pages sin problemas. Parece magia.
  • Simplicidad: No hay servidores que administrar, solo conecte el repositorio y listo.

El Resultado

La migración implicó recrear el aspecto del sitio utilizando el sistema de plantillas de Hugo y Tailwind CSS, y convertir el contenido a Markdown o archivos de datos (como YAML para publicaciones y videos). Usé Gemini para empezar. Ni siquiera necesité usar un tema. Solo me tomó un par de horas por la noche durante unos días y me puse al día. Tomó un poco de tiempo optimizar Tailwind, pero ahora el sitio es en general más rápido, más barato y más fácil de trabajar.