WordPress vs. Generadores de sitios estáticos

Hola, si me conoces de hace un tiempo sabrás que WordPress, aunque se autodenomine un CMS, es mi framework de cabecera. Y por “framework” me refiero a que es la herramienta principal en la que me he basado para desarrollar casi todo, admito que en algunos casos el resultado no fue el mas indicado por diferentes variables pero eso no quita su plasticidad.
Entiendo que existan detractores de este tipo de pensamiento con puntos muy validos al respecto pero la verdad es que la mayoría siquiera han conocen el Codex de WordPress.

Esto ultimo no lo comento como un tiro al aire esperado herir a alguien del montón sino que creo es uno de los puntos mas importantes. Admito que existen diferentes herramientas y conforme pasa el tiempo existirán mas que se enfoquen en solucionar características puntuales que para las ya existentes son un problema pero si hablamos de comparar no podemos decir que “X” es mejor que “Y” por ser una herramienta mas moderna. De igual forma también es absurdo decir que “Y” es mejor que “X” por ser la herramienta mas utilizada para construir sitios.

En términos generales WordPress es un CMS (gestor de contenidos) de código abierto gratuito en su versión self-hosted y que existe desde 2003 como una adaptación de “b2/cafelog”. Así mismo cuenta con una versión hospedada popularmente llamada WordPress.com la cual maneja diferentes planes y precios según conveniencia. Es importante aclarar que WordPress es desarrollado por una comunidad de código abierto, lo cual es posible porque WordPress es publicado bajo GPL (Licencia Pública General, por sus siglas en inglés). En pocas palabras, GPL convierte a WordPress en un software abierto que se puede distribuir, modificar, compartir, etc; todo de forma gratuita. La GPL aplica estas cuatro libertades esenciales:

  • Libertad para utilizar el software para cualquier propósito.
  • Libertad para aprender cómo funciona el software y hacer modificaciones al mismo.
  • Libertad para distribuir el software.
  • Libertad para corregir errores, realizar mejoras, generar trucos y distribuir todo esto a las comunidades para que todos los usuarios puedan tener los mismos beneficios.

El caso de servicios como WordPress.com y otros se empaqueta la herramienta WordPress junto con otros servicios como ser el hosting, soporte, mantenimiento, etc y es por estos servicios que se fija un costo.

Uno de los principales problemas de WordPress es justamente una de sus mayores fortalezas y se trata de su propia comunidad. Es común que la misma comunidad de WordPress aporte utilidades ya sea en modo de plantillas o plugins y lamentablemente no siempre se les da un mantenimiento o soporte adecuado lo que lamentablemente deja abierta una puerta a vulnerabilidades y errores. Este problema se puede evitar de manera muy simple conociendo la biblioteca de plugins y themes de WordPress, validando la fecha de la ultima actualización de los plugins a utilizar y evitando utilizar complementos pirata los cuales aparte de su dudosa procedencia pocas veces se pueden actualizar.

Comentado lo anterior podes decir que existen 2 formas de llevar un sitio en WordPress, la primera es pagando a terceros para que se ocupen de dar mantenimiento y soporte al sitio, la segunda es siendo responsables de nuestro propio sitio y realizando las tareas requeridas sin pagar a un tercero. Lamentablemente la mayoría de las veces sucede que se opta por una opción intermedia en la que no se paga a un tercero pero tampoco se le da mantenimiento alguno a la plataforma y cuando el sitio ya deja de funcionar solo se finge no saber que pudo haber pasado. En pocas palabras se estima que un promedio de el 75% de las fallas en sitios basados en WordPress self-hosted se deben a errores de capa 8, es decir a errores por parte de los usuarios.

En definitiva podemos decir que WordPress es una tecnología que esta próxima a cumplir 20 años desde su lanzamiento, es utilizada en multitud de sitios a nivel personal y profesional, cuenta con una comunidad que constantemente aporta nuevas funciones para la misma permitiendo así tener un sitio estático, un blog, una tienda en línea, una red social, y otras tantas variantes. Así mismo el hecho de que este en continuo crecimiento implica que requiere de actualizaciones frecuentes y otras labores de mantenimiento que lamentablemente suelen ser ignoradas.

Por otra parte tenemos a los Generadores de sitios estáticos, de estos existen varios pero podemos mencionar a Gatsby el generador de sitios estáticos de ReactJs (del cual ya hemos hablado en este sitio varias veces), Sapper el generador de sitios estáticos de Svelte por comentar algunos.

En pocas palabras un generador de sitio estático hace tres cosas básicas para crear una página web:

  • Lee contenido, a menudo en un formato de marcado simplificado, desde archivos. Esos archivos se pueden colocar en una estructura de directorio que coincida con el output, o esa estructura se puede crear a partir de un archivo de descripción.
  • Reproduce ese contenido a HTML, de acuerdo con las plantillas.
  • Guarda los resultados en un nuevo directorio, ya sea para que coincida con el diseño de los archivos de origen o según un patrón predefinido.

En palabras simples un generador de sitios estáticos genera una serie de archivos html, js y css que componen el sitio web. Estos archivos se generan en función de una entrada de datos que pueden ser archivos de marcado simplificado o una API. Una de las principales ventajas que presentan es que el código generado suele estar optimizado para lograr una buena performace del sitio.

En comparación con WordPress existen ventajas al no requerir mantenimiento constante y una amplia ventaja respecto a la seguridad dado que el sitio resultante no esta directamente vinculado a la fuente de datos original. En contrapartida el publicar un sitio con un generador de sitios estáticos suele tomar mas tiempo del que podría tomar implementar un sitio con WordPress y suele requerir un conocimiento técnico mayor. De igual forma modificar la forma en que se muestran los datos o incorporar datos nuevos requiere de mas labor que simplemente instalar un plugin. Por otra parte es valido declarar que los sitios estáticos tienen la ventaja de permitir trabajar con múltiples fuentes de datos.

Una de las formas mas simples de cargar contenido al sitio es generando archivos en un lenguaje de marcado ligero como ser Markdown y cargándolos directamente en el desarrollo. Para esto se requiere primero que nada que la persona que redacta conozca dicho lenguaje y que estos archivos sean cargados en el repositorio de forma adecuada, tarea que una vez que se aprende es mucho mas simple de lo que suena pero en tanto no puede generar múltiples problemas.

Otra opción es mediante el uso de los llamados Headless CMS, herramientas que podríamos comparar con el Dashboard de WordPress (mas o menos) que entregan los datos de nuestro contenido por el uso de una API. En este caso dependerá de la herramienta a utilizar (pudiendo incluso utilizar WordPress como fuente de datos) las opciones, funcionalidades y costos que tengamos.

En definitiva existen ventajas y desventajas de ambos lados, el caso de WordPress tenemos la ventaja de la gran cantidad de desarrollos que existen en relación a este CMS y las facilidades que estos nos brindan permitiendo a usuarios de niveles mas o menos técnicos poder tener un sitio web en línea con contenido manejable. Así mismo tenemos la desventaja de el mal uso de la plataforma la complejidad para usuarios menos preparados o inexpertos de dar mantenimiento a su sitio y las fallas en seguridad que esto pueda provocar.

Por otra parte un Generador de sitios estáticos nos brinda una mayor seguridad, y permite evitar el estrés de dar mantenimiento al poder utilizar servicios de terceros como fuentes de datos. Por otra parte se requiere de un conocimiento mayor para poder realizar toda la configuración necesaria para que el sitio este en línea y por diferentes tareas es recomendable siempre tener a mano el contacto de alguien con conocimiento suficiente para hacer reparaciones o modificaciones. El resultado suele tener un código mucho mas optimizado lo que se traduce en mejores métricas, lamentablemente para funciones que pueden ser básicas para un sitio como ser un formulario de contacto (o casi cualquier formulario) o similares se requiere la contratación de servicios de terceros los cuales en su mayoría son pagos.

Mi opinión:

Como persona que comenzó en el mundo web cuando en lugar de CSS 3 y HTML 5 solo existía CSS y HTML y que vio el inicio de la muerte anunciada de los sitios en Flash puedo decir que soy cociente que ninguna tecnología es eterna. WordPress sin lugar a dudas es una herramienta de gran importancia para mi ya que me abrió muchas puertas y a la fecha sigue siendo mi principal fuente de ingresos. Lamentablemente de un tiempo a la fecha es innegable que el convertirse en una herramienta tan accesible que cualquiera con un poco de ganas puede montar un sitio ha le ha jugado en contra. El priorizar la facilidad de uso al resultado (casos como Elementor, Divi, y casi cualquier editor vidual) han dado como resultado sitios lentos, poco optimizados y en algunos casos estéticamente deprimentes. Espero no ser malinterpretado pero la realidad es que la herramienta no hace al experto, no por comprar un cuchillo Masamoto son maestros culinarios y de igual forma no por comprar una licencia pro de un plugin son diseñadores o desarrolladores web.

Por lo dicho anteriormente y la actual falta de cordura de muchos al momento de cotizar un desarrollo, y la prioridad que esta tomando hoy día el contratar al mas barato sin importar sus aptitudes es que desde hace un tiempo he comenzado a inclinarme mas al uso de generadores de sitios estáticos principalmente utilizando Sapper de Svelte.

Con lo anterior no estoy diciendo que dejare de realizar desarrollos con WordPress, o que dejare de dar mantenimiento y servicio a mis actuales clientes, solo que me enfocare en ofrecer un servicio mas competitivo, profesional y de mayor calidad entendiendo que para eso la respuesta no siempre será WordPress.