La optimización de un activo digital se basa en la ejecución de experimentos mediante herramientas que permiten la modificación de la página, mostrando diferentes versiones de la misma para posteriormente comparar la conversión resultante de cada una de ellas.
Más allá de las funcionalidades concretas que ofrece cada una de estas herramientas, debemos tener en cuenta también las grandes diferencias en cuanto a la tecnología en la que se basan.
Herramientas Client-Side
Este tipo de aplicaciones (la mayoría en el mercado actual) crean variaciones de nuestra página en nuestro navegador. Es decir, que el servidor de nuestra web devolverá siempre la versión “original” y, una vez entregada en el navegador, se realizarán las modificaciones de cada versión alternativa (mediante código JavaScript).
Algunas herramientas client-side: Optimizely X, Google Optimize, Adobe Target, AB Tasty, Maxymiser
Herramientas Server-Side
Las herramientas server-side se ejecutan directamente en el servidor web, devolviendo a nuestro navegador una versión ya modificada de la página.
El recorrido de este tipo de herramientas en el mercado es mucho menor, de hecho, no todos los fabricantes ofrecen aún herramientas de este tipo.
Algunos como Optimizely, una de las herramientas client-side más usadas, han dado el paso hacia una alternativa server-side de manera reciente con su Optimizely X Full Stack (lanzada a finales de 2016).
Algunas herramientas server-side: Optimizely X Full Stack, SiteSpect, Conductrics

Fuente: Optimizely blog
Con estos datos sobre la mesa, parece claro que las herramientas server-side son la solución más consistente si queremos comenzar o mejorar nuestra estrategia de Optimización pero, ¿son todo ventajas?
Implantación
La implantación de herramientas client-side suele requerir la inclusión de un sencillo Script en nuestro site. Esto puede suponer la intervención de un equipo de IT, aunque si contamos con un Tag Manager, seremos independientes para incluirlo nosotros mismos.
Lógicamente, las herramientas server-side requieren, también, la implementación de las librerías, en este caso en el servidor, por lo que la intervención de un equipo de IT es imprescindible. Dependiendo de la complejidad de la tecnología usada en nuestro servidor y en nuestra web, esta implantación puede ser más o menos compleja.
Desarrollo
Las herramientas client-side permiten configurar un experimento a cualquier usuario, ya sea un desarrollador o un usuario sin conocimientos técnicos (de hecho, en realidad, están orientadas a este último tipo de perfiles).
Al ejecutarse tras la carga inicial, permiten mostrar la página en un editor visual, desde el que podremos realizar modificaciones sin escribir ni una sola línea de código.

Editor visual (Optimizely)
Sin embargo, si ejecutamos experimentos del lado servidor, no podremos apoyarnos en este tipo de editores y, cada experimento que realicemos, necesitará el desarrollo de código “ad-hoc” para cada una de las versiones alternativas.
También será necesaria la puesta en producción de este código, con lo todo lo que ello conlleva (implicación de equipos de IT, despliegues, procesos de validación…).
Flickering
Un efecto inevitable de las herramientas client-side es el efecto “flickering”. Este efecto provoca que la versión original de una página web se muestre antes que la versión alternativa durante un breve periodo de tiempo (seguro que, sin saberlo, te has encontrado con ese efecto en alguno de los sitios que visitas).
En la mayoría de los casos no notarás nada, pero si el sitio web tarda mucho en cargar, utiliza muchos recursos de servidores externos o hay deficiencias en la instalación de las herramientas de optimización, las modificaciones tardarán más tiempo en mostrarse, generando una experiencia de usuario un tanto “extraña”.
Existen varios métodos para minimizar este efecto, pero al tratarse de aplicaciones que modifican el contenido de la página una vez entregada, no nos será posible eliminarlo por completo. Esto solo será posible mediante herramientas server-side.
Rendimiento
Al entregar la página con todas las modificaciones incluidas, las aplicaciones server-side tienen un rendimiento mucho mayor que las herramientas client-side, al menos esto percibirán nuestros usuarios, ya que se elimina el efecto “flickering” y se reduce el número de operaciones que debe realizar el navegador.
Limitaciones
Desde el lado de cliente, y puesto que el servidor ya ha ejecutado toda la lógica, “solo” seremos capaces de modificar aspectos visuales del mismo (limitados a ejecución de código JavaScript).
Incluir el código en el propio servidor nos permitiría modificar, casi por completo, tanto la apariencia como las funcionalidades de nuestro site (en muchos casos podremos realizar las modificaciones en el mismo lenguaje de programación utilizado en nuestra web).
Metodología de trabajo
Todas estas diferencias suponen, también, un gran cambio en la metodología de trabajo dentro de una estrategia de optimización.
El cambio de mayor impacto es el relacionado con la implantación. Cuando usamos aplicaciones client-side, podremos poner en marcha nuestro experimento, analizar los resultados, sacar conclusiones y, solo en caso de que una de nuestras versiones alternativas mejore la conversión, implementarla de manera definitiva.

Fuente: Optimizely blog
En el caso de aplicaciones server-side, deberemos asumir el esfuerzo de implementar todas nuestras variaciones antes de poner en marcha el experimento. Ante la victoria de una de las versiones alternativas, la mantendremos en nuestro site y descartaremos las variaciones perdedoras.
Conclusión
Ambas tecnologías tienen ventajas e inconvenientes, y quizás la decisión final deba basarse en los aspectos que más impacto puedan tener en tu organización.
Si en un futuro las aplicaciones server-side consiguen superar la complejidad en la implantación y en su uso, probablemente desbancarán, definitivamente, a las aplicaciones client-side.
Por el momento, el uso de herramientas client-side está mucho más extendido, pero eso no quiere decir que ambas herramientas no puedan coexistir. Puede que no sea siempre posible, pero la estrategia más completa que puedas poner en marcha incluirá herramientas de ambos tipos.
Cada experimento que plantees tendrá unas necesidades y, tener la opción de llevarlo a cabo con cualquiera de estas herramientas, te permitirá cubrir todas tus necesidades.
Ahora que conoces las principales diferencias entre ellas, ¿cuál elegirías?