NO unifiques ni minimices tus archvos CSS o de Javascript

Publicado en Optimización web / WPO hace 7 meses y 2 semanas. Leído 636 veces.

imagen destacada

Imagínate esta situación: Tienes una oficina con un gran escritorio. En la misma oficina hay un pequeño despacho que usas como sala de reuniones cuando te visita algún cliente. Esta sala de reuniones sólo cuenta con una gran mesa y una pizarra blanca. Cada vez que viene un cliente y os vais a la sala de reuniones, te ves que tienes que estar yendo y viniendo a tu escritorio para coger determinado materiales. Esto crea una situación incómoda con tu cliente además de los inconvenientes derivados de cortar el diálogo. Como tu siempre tratas de mejorar tu negocio, preguntas a un especialista de Sevilla en el mundo de los negocios. Su respuesta a dicha pregunta es: mete en una caja todo lo que tengas en el escritorio cuando venga tu cliente y te la llevas a la sala de reuniones contigo. Así, siempre tendrás contigo aquello que necesites sin dar traslados innecesarios.

Una página web se parece mucho al caso expuesto. Cada vez que escribes en el navegador una dirección web es como si el navegador tuviera que estar yendo y viniendo al lugar dónde está tu web para traerse todo lo necesario( imágenes, archivos de estilo o CSS, archivos JS o javascript, fuentes, ... ). La solución que te dará un experto WPO es meter todo en "cajas" por tipo. Así el navegador sólo tendrá que ir en su búsqueda una vez.

Una solución eficaz, como en nuestro simil del principio, pero no deja de ser grotesca. Sobretodo si pensamos que en esa saca dónde vamos a meter todos los archivos, puede haber muchos que no se estén utilizando para la página que está visualizando el visitante, o puede pasar que ocasionen conflictos entre los archivos unidos.

Pensemos una solución para el simil del principio. ¿ No sería más adecuado primero hacer un inventario de todo lo que se tiene y ver que es lo que se necesita en cada ocasión y llevar sólo eso a la reunión con tu cliente ?. En el mundo de la web, lo mismo. Es necesario hacer una evaluación de los recursos del sistema que se cargan. También saber en que lugar son verdaderamente necesarios. Sòlo entonces, decidir una estrategia para unificar archivos.

Es curioso ver el caso de personas que han leído, o que le han hecho caso a un "especialista" WPO. Ellos supercontentos porque creen que ahora su web va a ir más rápido y se encuentran lo contrario. Les pasa como una frase muy conocida: preocuparse es como ir con el paragua a todo sitio, y en todo momento, por si algún día llueve. En este caso, le han unificado los archivos de estilos y Javascript, resultando un archivo de cada tipo de más de 500kb porque tiene todos los CSS y JS que pueden usarse en algún momento en la web. Sea que se use o no.

Algo parecido pasa en la minimización de archivos. Se minimiza porque alguien dijo que era bueno para hacer las webs más rápidas y se hace sin pensar. Sin embargo, si los archivos de un plugin o un tema no están minimizados puede ser por dos motivos: dejadez del desarrollador o porque no está preparado para ello( variante del primero ). En el primer caso, minimizar el archivo puede ser adecuado. En el segundo caso, al minimizar pueden producirse errores en tu página o que ciertas funcionalidades no se realicen nunca. También, da igual si es del primer o segundo caso, pueden producirse errores en minimizadores de sintaxis.

Con esta entrada sólo trato de hacer ver los inconvenientes que puede traer si unificas y minificas archivos en tu página web sin conocimientos de optimización web. La más de las veces, si no se hacen razonadamente, puede ser peor el remedio que la enfermedad.

Como bonus, por lo mismo no recomiendo los plugins de caché en WordPress. Son tantas las páginas webs que lo recomiendan...y, tantos los que luego sufren las consecuencias de usarlos sin conocimientos...

¿ Mi consejo ?, si tu web es tu negocio, no te automediques, contrata a profesionales o actúa bajo supervisión de alguno( pero que lo sea de verdad ) .

2 comentarios

El hecho de que muchos usuarios no sepan trabajar correctamente con Minificación o Sistemas de cache, no significa que sea una mala idea, por ejemplo en cuanto a minificar, hay plugins que tienen la flexibilidad para excluir ciertos archivos js de la minificación, colocarlos al inicio o cargarlos al final, incluso definir la prioridad de carga, lo cual solventaría los problemas de posibles conflictos.

Jhon, yo rechazo estas acciones sólo cuando se hacen sin conocimiento. Por otra parte, el ponerlos al principio o al final no resuelve los conflictos, incluso puede intensificarlos. Me explico:

  • En el caso de CSS, las reglas tienen una prioridad según los estilos se definan antes o después. Por ejemplo, puedes definir un color para todos los h1. Ahora bien, si durante la unificación se ha concatenado otro archivo CSS después que también da un color a los h1, se superpondrá a tu estilo. Lo mismo si lo pones en el pie. Puede pasar que, por ejemplo, los estilos estaban para ser complementarios( en una página un color y en otra, otro ), pero al unificarlos has roto con dicha complementaridad.

  • En el caso de JS es más grave, porque puede ser que hagas uso de funciones o variables definidas anteriormente. Al cruzar scripts, aunque uses namespaces basados en objetos en javascripts, la posibilidad de conflictos está ahí.

Deja un comentario

Puedes usar Markdown para formatear tu comentario.

Este sitio utiliza cookies propias y de terceros para mejorar tu experiencia con el sitio web. Al continuar con la navegación consideramos que acepta su uso.