De WordPress y VPS a Sitio Estático: Mantenimiento Cero y Paz Mental
25 Jan, 2026 • 4 min de lectura
Durante años mantuve este blog (y otros proyectos) en un servidor VPS propio con Ubuntu y WordPress. Si has administrado servidores, sabes lo que eso significa: una constante lucha contra la entropía.
El Ciclo Sin Fin del Mantenimiento
Tener tu propio VPS te da control total, pero también responsabilidad total. Mi rutina incluía:
- Actualizaciones del Sistema Operativo:
apt update && apt upgradecada semana, vigilando que ninguna librería rompiera PHP o MySQL. - Seguridad: Configurar firewalls (UFW), Fail2Ban para los intentos de login por SSH, y preocuparse por cada vulnerabilidad de Linux (como Dirty COW o similares).
- WordPress: El núcleo de WP se actualiza, los plugins se actualizan, el tema se actualiza. Y a veces, una actualización de un plugin rompe el sitio.
- Base de Datos: Backups de MySQL, optimización de tablas, y el miedo constante a una inyección SQL.
Era funcional, sí. Pero requería “cariño” constante. Si me iba de vacaciones dos semanas, volvía rezando para que el servidor no hubiera caído o hubiera sido hackeado por no aplicar un parche de seguridad crítico del día anterior.
El Cambio de Paradigma: Static Site Generator
Cansado de administrar infraestructura para un sitio que es esencialmente contenido de lectura, decidí migrar a una arquitectura moderna, “espartana” pero indestructible: Generador de Sitios Estáticos (Jekyll).
La Nueva Arquitectura
- Código Fuente: Todo el contenido está en archivos Markdown en un repositorio de GitHub.
- Motor: Usamos Jekyll para transformar ese Markdown en HTML puro.
- Hosting: Cloudflare Pages.
- CMS: Sveltia CMS (para escribir cómodamente desde el navegador sin tocar código si no quiero).
¿Por qué el cambio?
1. Mantenimiento Cero: Esta es la clave. Ya no hay servidor que actualizar. No hay base de datos que mantener. No hay PHP que parchear. Cloudflare se encarga de servir el HTML. El sitio podría estar ahí 10 años sin que yo toque una tecla, y seguiría funcionando igual de rápido y seguro.
2. Velocidad y Seguridad: Al servir HTML estático desde la CDN de Cloudflare, la velocidad de carga es instantánea en cualquier parte del mundo. Y la superficie de ataque es prácticamente nula: no puedes hackear una base de datos que no existe.
3. Versionado: Todo cambio queda registrado en Git. Si rompo algo, puedo volver atrás en segundos. Tengo un historial perfecto de cada coma que he cambiado en el blog.
Detalles Técnicos: Bajo el Capó
Para los curiosos, este es el stack tecnológico que sustituye al viejo LAMP (Linux, Apache, MySQL, PHP):
- Generador:
Jekyll 4.2. Elegido por su madurez y simplicidad. - Estilos:
Tailwind CSS+DaisyUI. Adiós a los estilos en cascada inmanejables; ahora el diseño es atómico y mantenible. - Hosting:
Cloudflare Pages. Se encarga del SSL, la CDN global y los deploys atómicos. - CMS:
Sveltia CMS. Un panel de administración ligero que vive en el propio repo y hace commits directos a GitHub. - Formularios:
Resend API+Cloudflare Functions. Serverless real, sin servidores SMTP que configurar.
El flujo de publicación es ahora 100% GitOps:
- Escribo un post (en local o vía CMS).
git push.- Cloudflare detecta el cambio, compila el sitio en segundos y lo despliega.
Conclusión
La migración no fue trivial (convertir base de datos a Markdown tiene su miga), pero el resultado es liberador. He pasado de ser un SysAdmin de mi propio blog a simplemente ser un Editor.
El sitio es más simple, sí. Pero esa simplicidad es su mayor fortaleza.
Te podría interesar
-
Docker Swarm contenedor php-fpm infectado 100% CPU
Cómo Arreglar Docker Swarm Infectado con Malware PHP-FPM
-
Google reCaptcha se migra a Google Cloud, gratis hasta 10000 peticiones, pero hay que proporcionar datos bancarios, como migrar WordPress pluguin reCaptcha a CloudFlare Turnstile
De reCAPTCHA a CloudFlare Turnstile: ¡Una migración sencilla! ¿Usas reCAPTCHA de Google en tu sitio web de WordPress? ¡Genial! Google está cambiando reCAPTCHA a Google...
-
Illuminate \ Database \ QueryException PHP SQLSTATE[HY000] [2002] No such file or directory select * from sessions where id = B9e limit 1
¡Arregla el error de Database No such file or directory select! ¿Alguna vez has visto un mensaje de error como este? Illuminate \ Database \ QueryException PHP SQLSTATE[HY000] [2002]...
-
Wordpress: The uploaded file could not be moved to wp-content/uploads/ year month
Wordpress: The uploaded file could not be moved to wp-content/uploads/ year month. Para corregir el error de permisos al subir imágenes en WordPress, necesitas ajustar...
-
Depurar PHP servidor web en Docker con VScode debug
La configuración de Xdebug en el contenedor Docker puede realizarse en el archivo Dockerfile o en el archivo docker-compose.yml, dependiendo de cómo esté estructurado tu...
Becommerce.es