5 consejos esenciales para mejorar tu TTFB de Magento
Publicado: 2019-01-08Esta es una publicación invitada de Vasili Nikolaev.
El tiempo hasta el primer byte (TTFB) es una de las métricas de velocidad más importantes de un sitio web. Indica cuánto tiempo pasará después de que un usuario ingrese a la URL de su tienda Magento y el tiempo que recibe una respuesta, incluso tan pequeña como 1 byte (de ahí el nombre, "tiempo hasta el primer byte").
El tiempo hasta el primer byte es vital tanto para los humanos (no les gusta esperar) como para los robots de los motores de búsqueda (Google odia los sitios web lentos y los clasifica más abajo; haga clic aquí para obtener más información sobre la solución Magento 2 SEO de primera clase de MageWorx).
Pero al mismo tiempo, hay pruebas convincentes de John Mueller, uno de los líderes parlantes de Google, de que Google no usa TTFB para las clasificaciones:
Por lo tanto, nuestro consejo es no obsesionarse demasiado con TTFB para el SEO, sino centrarse en la experiencia del usuario y el rendimiento de la tienda.
¿Por qué TTFB es más importante que la carga completa de la página (llamado "tiempo hasta el último byte")? Bueno, porque cuanto antes cargues el primer byte, más rápido los usuarios comenzarán a leer tu contenido. No importa que no puedan ver todas las imágenes de la página al instante. Es más importante ofrecer a los usuarios algo que hacer mientras su servidor web está ocupado cargando el resto del contenido.
Tabla de contenido
- 1. Comprenda sus cuellos de botella para eliminarlos
- ¿Qué es un buen TTFB?
- 2. Migrar a un motor de base de datos más adecuado
- 3. Haga coincidir la configuración del servidor con sus necesidades actuales de tráfico
- 4. Configure una mejor solución de almacenamiento en caché
- 5. Deshazte de las extensiones inútiles
- Sugerencia adicional: ajuste la configuración de registro de la tienda y del cliente
- Una batalla constante por el rendimiento
1. Comprenda sus cuellos de botella para eliminarlos
¿Qué es un buen TTFB?
Google afirma que el objetivo es un TTFB inferior a 200 ms. Por debajo de 200 ms, el motor de búsqueda lo ubicará en la posición más alta. Una vez que supere este valor, Google aplicará sanciones a su sitio web. 600 ms o más significa que ni siquiera puede pasar la prueba TTFB de Google.
Hay muchos factores que afectarán su TTFB. Sin ningún orden en particular:
- configuración y recursos del servidor web,
- velocidad de resolución del servidor de nombres,
- tiempos de ejecución del código en la página,
- implementó soluciones de almacenamiento en caché de back-end,
- conjetura de red
Verifique su valor TTFB con un servicio de terceros o usando la prueba TTFB de Google. También puede comparar sus resultados con sitios web populares o con su competencia aquí para obtener una perspectiva única de cómo se carga su tienda para los usuarios móviles.
Otra gran herramienta de diagnóstico es Magento 2 Profiler . Con él, puede dividir fácilmente cada solicitud de página en bloques más pequeños que son rápidos de visualizar y analizar.
En la tabla, preste especial atención a 2 valores importantes, Tiempo y Conteo. El tiempo se explica por sí mismo. Es el retraso real entre la solicitud del usuario y la respuesta del servidor. La fila Cnt corresponde a cuántas veces se llamó a este elemento antes de crear la salida.
Vale la pena usar el Perfilador de base de datos junto con el perfilador predeterminado de Magento 2 para analizar las consultas de la base de datos.
Este es el primer paso que debe tomar: habilite Magento Profiler y observe las páginas que tienen los mayores problemas con TTFB. Si bien puede usar el perfilador predeterminado, le recomendamos que configure Profiler SQL. Es gratis y ofrece una cómoda visión general del número de consultas por sesión.
Profiler dividirá todas las solicitudes en partes más pequeñas para que pueda ver de inmediato qué secciones lo arrastran hacia abajo.
2. Migrar a un motor de base de datos más adecuado
La base de datos de la tienda Magento 2 puede convertirse fácilmente en el mayor cuello de botella de rendimiento si es ineficiente, lenta o utiliza un motor de almacenamiento que no es la mejor opción para manejar Magento.
¿Porque es esto importante? Hay una amplia variedad de varios motores de almacenamiento para MySQL. Hemos contado al menos 10 soluciones compatibles en la documentación oficial de MySQL y hay aún más por ahí.
Si bien puede usar Magento con el motor MyISAM MySQL predeterminado, los motores de bases de datos alternativos, como MariaDB Ari , un motor de almacenamiento o el motor Percona XtraDB, pueden hacer que su tienda sea más estable y (a veces) más rápida en comparación con la configuración predeterminada.
Por ejemplo, el motor Aria utiliza un enfoque más inteligente en los casos en que Magento obliga al motor de almacenamiento a usar muchas tablas temporales.
Percona es otra bifurcación de MySQL que ha integrado con el tiempo una serie de ajustes de rendimiento para acelerar las consultas a la base de datos. En comparación con MyISAM , funciona mucho más rápido con muchas consultas paralelas y se especializa en el procesamiento de transacciones.
Aunque la mejor recomendación para la optimización de la base de datos sería examinar detenidamente tus necesidades y elegir el motor que mejor se adapte a ti, tenemos algunos consejos que serán útiles para todos:
- evite MySQL predeterminado para la búsqueda de tiendas. Instale Elasticsearch para acelerar todas las consultas de búsqueda en su sitio web,
- seleccione el motor de base de datos que funcione mejor para usted.
3. Haga coincidir la configuración del servidor con sus necesidades actuales de tráfico
Abaratar la infraestructura no es una buena idea. Con el tiempo, un negocio en constante crecimiento verá más clientes, más transacciones y más pedidos. Por lo tanto, es saludable mantener su configuración al 80 % de su capacidad para ajustarse a picos de uso aleatorio y tráfico peatonal generado por eventos. Ese 20 % puede contribuir en gran medida a mantener un nivel de rendimiento decente en todas las situaciones.
Un equipo de alojamiento que se precie le dirá qué requisitos del sistema necesita para operar sin problemas. Pero si ha crecido rápidamente durante un período de tiempo, se convierte en su propia responsabilidad delinear una hoja de ruta para actualizar.
Hay una serie de puntos críticos en su tienda Magento que influirán en gran medida en los requisitos de su sistema:
- tamaño de la tienda (número de visitas a la tienda),
- categorías y SKU en el catálogo (con atributos y conjuntos de atributos),
- números de tráfico promedio (vistas de página promedio y picos históricos),
- transacciones por día (descargas digitales, pagos y operaciones similares).
En general, su tráfico promedio influirá directamente en la cantidad de potencia de CPU que necesita. Entonces, después de descubrir la configuración óptima de la CPU, haga coincidir su RAM con los requisitos de su CPU para crear un perfil de servidor web equilibrado.
El tamaño de almacenamiento de la base de datos depende de su RAM actual, por lo que debe recoger lo suficiente para cubrir todas las necesidades actuales. Cree también un cojín de rendimiento para un respiro. Su objetivo es mantener siempre al menos un 20-25 % de CPU y RAM de repuesto para hacer frente a los picos de tráfico ocasionales.
4. Configure una mejor solución de almacenamiento en caché
El almacenamiento en caché de sitios web es la siguiente mejor opción después de la invención de las papas fritas. El caché del servidor mejora la agilidad del sitio web y lo hace sentir mucho más rápido. El almacenamiento en caché funciona moviendo datos de uso frecuente desde SSD o un disco duro a RAM.
Mientras que los HDD pueden leer secuencialmente datos hasta 200 MB/s y los SSD hasta 3200, los módulos DRAM pueden llegar hasta los 20 GB/s. Lo que nos da la diferencia de x10 o al menos un orden de magnitud.
Tanto Redis como Varnish son una de las actualizaciones más populares para las tiendas Magento. Es una opción de almacenamiento en caché recomendada para Magento 2. Ambas soluciones también funcionan muy bien con Magento 1.
Varnish es una herramienta difícil de configurar, pero cuando se hace correctamente ofrece valores TTFB en 100-200 ms. Para configuraciones de caché de página completa, TTFB tendrá un rango de 250 ms.
Otra ventaja distintiva de Varnish: funciona en más páginas web. Si bien FPC no funciona para páginas con mucho contenido dinámico, Varnish ofrece un mejor rendimiento incluso para estos casos de uso desafiantes.
5. Deshazte de las extensiones inútiles
Para ser honesto, deshabilitar las extensiones no utilizadas es el consejo número 1 para cualquier tienda Magento 2, pero a menudo se pasa por alto. Cada extensión que se ejecuta en su sitio web consumirá algunos de sus recursos. Si están mal configurados, también podrían ralentizar su TTFB.
Recuerde: el servidor debe ejecutar este código antes de enviar comentarios al usuario.
Limpiar tu lista de extensiones también acelerará Magento. Incluso si no puede deshabilitar ninguno de ellos, mantenga actualizadas tanto su tienda Magento como sus extensiones de terceros para beneficiarse de las correcciones de errores y optimizaciones que sin duda mejorarán el rendimiento de su sitio .
Sugerencia adicional: ajuste la configuración de registro de la tienda y del cliente
Asegúrese de desactivar el registro de clientes de Magento. Esto le ayudará a reducir el tiempo dedicado a las consultas de la base de datos. No es un gran impacto ya que el registro de clientes es una actividad relativamente menor. El aumento del rendimiento dependerá de la cantidad de clientes que visitan actualmente su tienda.
No te recomendamos que desactives el registro de la tienda. Es una herramienta valiosa que ayuda en la resolución de problemas de Magento. Pero en lugar de dejar que los registros de la tienda ocupen tiempo del servidor, puede moverlos a un servicio de terceros, como Papertrail.
Una batalla constante por el rendimiento
No hay dos tiendas Magento iguales. Cada uno de ellos enfrentará diferentes desafíos para optimizar sus escaparates para la velocidad. Esto puede ser especialmente cierto para los sitios web de Magento más antiguos (y más grandes) que tienen muchas extensiones complejas de terceros, grandes bases de datos y múltiples tiendas.
Y aunque nunca podremos “ganar” esta batalla por el rendimiento, nuestro objetivo común es hacer que las tiendas Magento sean las mejores de su clase en cuanto a velocidad, experiencia del usuario y seguridad entre todos los sitios web de comercio electrónico.
Vasili Nikolaev está en una búsqueda permanente del tesoro para desenterrar los consejos más efectivos para facilitar un poco la vida de los propietarios de las tiendas. No hay nada más satisfactorio que encontrar una gran solución a un problema desafiante para él.