some image

Noticias &Posts

Optimización WPO en Prestashop

, , WPO Escribir un comentario

No vamos a enumerar los beneficios de un sitio web más rápido, porque probablemente los conozcas. Vamos a bucear más allá, comenzando con la configuración básica.

Prestashop: opciones de rendimiento

CCC (Combinar, Comprimir y Caché). Estas opciones son, simplemente, impresionantes. Tienes todo tu CSS en una sola línea de código. Lo mismo ocurre con JS y HTML. De esta manera, el tamaño de los archivos es más pequeño y cada página web se carga más rápido. Es una de las primeras cosas que notamos en Prestashop, y es una de las primeras razones por las que nos enamora.

Presta atención al mover JavaScript a la parte inferior. Podría decirse que es el mejor lugar para ello, pero debes verificar que todo funcione sin problema después de marcar esta opción. Hemos encontrado un problema con el script de retargeting dinámico de Google. Dejó de funcionar después de mover JS en línea en la parte inferior de la página.

Es genial que tengas todos los CSS/JS/HTML en líneas individuales, pero esto está poniendo tensión en el servidor. La página será más ágil, pero el servidor necesitará un poco más para responder.

La mejor manera de hacer la minimización es en el lado del servidor. Google tenía un excelente servicio llamado PageSpeed ​​que se cerró en agosto de 2015. Sin embargo, todavía puedes instalar sus módulos en tu servidor. ¡Tanto los complementos Apache como Nginx harán el trabajo!

También resulta útil usar Rijndael con mcrypt (es más rápido) y no pierdas tiempo en aceleradores de PHP como Xcache o APC (no debes confundirlo con APCu). Puedes usar OPcache para acelerar la entrega de PHP.

 Lo que no debes hacer  

  • No actives el caché incorporado en el sistema de archivos. Aunque puede parecer una buena idea al principio, el sitio web se volverá más lento a medida que agregues más páginas al caché.
  • No utilices los módulos de estadísticas de Prestashop. Llenan tu base de datos bastante rápido.
  • Debes confiar en Google Analytics para hacer las estadísticas por ti.
  • Asegúrate de tener un módulo que integre los datos de comercio electrónico.
  • No utilices demasiados archivos de fuentes externas (fuentes, archivos CSS/JS). No tienes control sobre ellos, y Prestashop no puede incluirlos en el motor de Minify.
  • No utilices demasiados scripts de seguimiento externos.
  • Si deseas alcanzar 100/100 en los resultados de las pruebas de Pagespeed (o Google o GTmetrix), tendrás que descargar cada script externo localmente. Incluso Google Analytics.
  • Aunque Google no lo recomienda, aquí hay una manerade actualizarlo cada 12 horas.

Hosting

Una alternativa única, es un servicio llamado Segmento. Conecta todos los tipos de servicios de seguimiento diferentes en un solo lugar (todos sus scripts externos desaparecerán, la API enviará datos a todos ellos).

Recuerda verificar los indicadores de velocidad para cada tipo de página principal (categoría, productos, CMS, etc.). Lo más probable es que los listados y las páginas de productos reciban la mayor cantidad de tráfico.

Módulo de caché 

¿Cómo de importante es un módulo de caché? Hagamos una prueba con LoadImpact para un sitio Prestashop sin un módulo de caché. ¡Increíble! El tiempo de carga de la página de inicio no ha descendido por debajo de los cuatro segundos. Al menos no hubo tiempo de inactividad.

Si el sitio web hubiera estado en un plan de alojamiento compartido o incluso en un VPS de bajo rendimiento, se habría estrellado antes de llegar a 25 usuarios. Así es cómo se ve con un módulo de caché de página activo. ¡Gran diferencia! El tiempo de carga es inferior a un segundo. Más cerca de 500 ms con 50 usuarios presentes. Y lo mejor de todo es que la carga del servidor será casi inexistente.

Aquí hay tres buenas opciones para el caché Prestashop:

  • JPresta Page Cache.
  • Presta-Module Cache Manager.
  • xtendify Express Cache(más barato que los anteriores).

Trata de mantenerte alejado de los módulos gratuitos. Esto no es algo en lo que debas ahorrar dinero.

Consejo avanzado: calentando el caché 

Para que el caché esté activo en una página individual, alguien tiene que visitarlo primero. Esa primera persona no tendrá la oportunidad de experimentar la versión de carga rápida. No sería el fin del mundo, pero cada visitante cuenta. Si tu objetivo principal es ofrecer lo mejor al cliente, entonces, ¿cómo podemos ofrecer la versión en caché desde el principio? ¿Tenemos que visitarlo nosotros mismos? No del todo.

Creamos un trabajo para simular una visita a cada página. El mejor momento para hacerlo es durante la noche, cuando el tráfico está en el nivel más bajo. En primer lugar, necesitas una lista de todas las URL de tu sitio, para lo que puedes usar sitemap real. En segundo lugar, necesitas un script de bash que pase por cada página. Si tienes más de un mapa del sitio, asegúrate de incluirlos.

Por último, tienes que configurar los trabajos de cron, en el siguiente orden:

  1. Borra la memoria caché de tu módulo.
  2. Regenera el mapa del sitio. Puedes ejecutar los dos primeros desde el módulo “Administrador de tareas de Cron” de Prestashop.
  3. Ejecuta el calentador de caché. Se recomienda llevarlo a cabo a nivel de servidor.

Una configuración de servidor del futuro 

La mayoría de la gente piensa que cuanto más grande sea el servidor, más rápido será el sitio web. Es una trampa y quienquiera que diga eso, no tiene experiencia o quiere que pagues más por un servidor que no necesitas. Así que, si no es el tamaño, ¿entonces qué? Se trata de la configuración. 

Tu base de datos diaria 

No vamos a entrar en detalles muy técnicos, solo algunas buenas prácticas. El uso de Percona Server o MariaDB en lugar del MySQL estándar (ahora propiedad de Oracle) podría ofrecer mejores resultados.

Ambos son bifurcaciones mejoradas de MySQL, diseñadas para una mejor escalabilidad. Utilizan un motor de almacenamiento mejorado llamado XtraDB.

Optimización de la base de datos

Si estas utilizando una base de datos MyISAM, la modificación principal que necesita tu base de datos es el caché de consultas. El almacenamiento en caché de las consultas es una buena manera de aliviar la presión del servidor en los sitios web de Prestashop.

Utilizando Memcache o Redis

Piensa en Memcache como una capa adicional entre el sitio web y tu base de datos. Memcache (abreviatura de memoria caché) almacena datos y objetos en la memoria RAM del servidor.

De esta manera, liberas mucha presión de la base de datos. Redis es una buena alternativa a Memcache, considerado más potente.  Es un poco más difícil de configurar en Prestashop, lo más probable es que necesites un módulo personalizado para poder integrarlo.

Una solución más liviana para el caché de usuario es APCu (no debe confundirse con APC). Algo difícil de instalar a veces, pero una solución sólida para sitios de un solo servidor.

Consejos útiles

  • Presta atención a la tabla ps_connections (tiende a llenarse rápidamente).
  • Usar un servidor/VPS separado para tu MySQL, podría ser una buena idea si tienes una gran cantidad de tráfico.
  • Optimiza la base de datos de vez en cuando con el módulo gratuito Database Cleaner (ten cuidado de no borrar sus pedidos o datos de catálogo).

El servidor web

Los dos más populares son Apache y Nginx. Justin Ellingwood, de DigitalOcean, recomienda usar ambos al mismo tiempo. De esta manera, haces uso de la velocidad de Nginx y evitas sus limitaciones utilizando Apache. 

La versión de PHP. ¿Por qué importa?

Es importante por seguridad y velocidad. Si estás leyendo este artículo, lo más probable es que estés interesado en la velocidad. Pero la seguridad también es indispensable.

Las versiones anteriores de PHP no admiten las funciones más actualizadas que tu sitio pueda necesitar, tienen errores y son terriblemente lentas.

¿Cuáles son las mejores versiones de PHP?

Las versiones 5.5 y 5.6 son muy sólidas. Cualquier otra cosa se volverá obsoleta en breve. El nuevo Magento (2.0) ha eliminado el soporte para versiones de PHP inferiores a 5.5.22.

El nuevo PHP (7) es un gran avance en cuanto a velocidad.  Es mucho más rápido que cualquiera de las versiones anteriores. Pero, para aprovechar toda su capacidad, las aplicaciones web deben hacer uso de sus nuevas funcionalidades.

La mayoría de las plataformas de código abierto como WordPress, Prestashop, Magento, lo que sea que esté construido para los PHP más antiguos. Para que sucedan grandes cosas, cada aplicación web debe mejorar su código para PHP 7.

Una gran alternativa desde Facebook 

¡Si, has leído bien! Facebook no es solo un lugar para mantenerte en contacto con tus amigos, también crea software de código abierto. Como sabrás, Facebook usa PHP (entre otros) como lenguaje de programación. Siendo uno de los sitios web más visitados del mundo, necesitaba un PHP más rápido. Uno capaz de atender más solicitudes a la vez sin usar cantidades insanas de CPU. Así que construyeron HHVM (Hip-Hop Virtual Machine).

Fundamentalmente, toma el código PHP y lo convierte en código de máquina. El rendimiento de Prestashop en HHVM es excelente, es rápido y puede atender muchas solicitudes con precisión, pero necesita memoria. Por lo tanto, si solo tienes 1 GB de RAM en tu host, podrías considerar aumentarlo.

Lo bueno es que siempre puedes tener PHP configurado como respaldo en caso de que algo suceda. Truco avanzado: utiliza un script que reinicie el proceso HHVM cada vez que consume mucha memoria.

Acelerador de Varnish

Varnish es un acelerador de aplicaciones web increíble. Lo que lo hace extremadamente rápido es usar la memoria RAM real para almacenar la memoria caché HTML. Lo que más nos gusta de esto es que Varnish parece averiguar por sí mismo dónde están las páginas más vistas en el sitio web.

De alguna manera, prioriza el contenido más demandado y lo hace increíblemente rápido. Aunque está diseñado para funcionar mejor para aplicaciones con una gran cantidad de solicitudes, podría funcionar para sitios web pequeños y medianos.

Varnish aporta el mayor valor a los sitios web de alto tráfico. El principal inconveniente es que no es tan fácil de configurar. Especialmente en Prestashop. Ya que transforma los elementos en piezas estáticas, debes tener mucho cuidado de no almacenar objetos dinámicos en la página, como carritos de la compra, listas de deseos, bloques de cuentas, páginas de pago, etc.

¿Utilizar un servicio gestionado?

Cloud Hosting es más fácil de escalar y solo pagas por lo que usas. Si hay algo peor que perder el tiempo, es perder dinero. Estas son algunas opciones recomendadas:

DigitalOcean, Vultr o Linode para los más expertos.

  • Puedes configurar todo por ti mismo
  • Están muy bien de precio.
  • Son muy escalables.

Cloudways

  • Es un servicio administrado que utiliza los grandes proveedores de alojamiento en la nube, simplemente configurando todo para ti.
  • Tiene una interfaz fácil de usar desde donde puedes iniciar o detener servicios, borrar caché, etc.
  • Puedes implementar su aplicación con unos cuantos clics (WordPress, Prestashop, Magento, Drupal, Joomla, etc.)
  • La desventaja es que no puedes perder el tiempo con la configuración del servidor, lo que en algunos casos podría no ser tan malo.

Acciones rápidas que proporcionan gran valor

Configurando un CDN

  • Es especialmente valioso para los sitios web con visitantes procedentes de todo el mundo.
  • Los tipos de archivo habituales que deberían estar en una CDN son imágenes, videos, CSS y JS (los archivos más grandes)
  • Amazon CloudFront es gratuito en el primer año de uso.

Gzip y caché del navegador

Pequeñas correcciones como gzip y vencimientos de encabezados son cruciales para Google. PrestaShop generalmente proporciona esto fuera de la caja. Algunos módulos de almacenamiento en caché proporcionan la funcionalidad de caché del navegador fuera de ella (PageCache por JPresta).

Cambiar a un módulo de navegación en capas

Las tiendas que usan muchos filtros de productos se volverán más lentas a medida que crezcan. Hay algunas alternativas, como el filtro Ajax por Presto Changeo. Los sistemas de filtrado avanzados son admirables porque son más inteligentes a la hora de indexar atributos de productos. 

Optimización de la imagen sin perder calidad.

Prestashop genera imágenes de productos comprimidas. Pero, las imágenes temáticas a menudo no están optimizadas.

¿Qué pasaría si hubiese una manera de comprimir imágenes sin perder calidad? Para eso es la compresión sin pérdida. Las aplicaciones gratuitas como ImageOptim (para Mac) o FileOptimizer (para Windows) son impresionantes al hacer que los tamaños de los archivos de imagen sean más pequeños.

Si crees que estas herramientas están sobrecargando tu ordenador, Kraken.io es un servicio impresionante, que puede ser una buena alternativa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Acepto la política de privacidad y las condiciones generales

seven − two =