Rendimiento Front-End 2021: Pruebas y Monitoreo

Publicado: 2022-03-10
Resumen rápido ↬ ¡Hagamos el 2021... rápido! Una lista de verificación anual de rendimiento de front-end con todo lo que necesita saber para crear experiencias rápidas en la web hoy, desde métricas hasta herramientas y técnicas de front-end. Actualizado desde 2016.

Tabla de contenido

  1. Preparándose: planificación y métricas
  2. Establecer metas realistas
  3. Definición del entorno
  4. Optimizaciones de activos
  5. Optimizaciones de compilación
  6. Optimizaciones de entrega
  7. Redes, HTTP/2, HTTP/3
  8. Pruebas y monitoreo
  9. Triunfos rápidos
  10. Todo en una página
  11. Descargar la lista de verificación (PDF, Apple Pages, MS Word)
  12. Suscríbase a nuestro boletín de correo electrónico para no perderse las próximas guías.

Pruebas y monitoreo

  1. ¿Ha optimizado su flujo de trabajo de auditoría?
    Puede que no suene como un gran problema, pero tener la configuración correcta al alcance de su mano puede ahorrarle bastante tiempo en las pruebas. Considere usar Alfred Workflow de Tim Kadlec para WebPageTest para enviar una prueba a la instancia pública de WebPageTest. De hecho, WebPageTest tiene muchas características oscuras, así que tómese el tiempo para aprender a leer un gráfico de vista en cascada de WebPageTest y cómo leer un gráfico de vista de conexión de WebPageTest para diagnosticar y resolver problemas de rendimiento más rápido.

    También puede ejecutar WebPageTest desde una hoja de cálculo de Google e incorporar puntajes de accesibilidad, rendimiento y SEO en su configuración de Travis con Lighthouse CI o directamente en Webpack.

    Eche un vistazo a la recientemente lanzada AutoWebPerf, una herramienta modular que permite la recopilación automática de datos de rendimiento de múltiples fuentes. Por ejemplo, podríamos establecer una prueba diaria en sus páginas críticas para capturar los datos de campo de la API CrUX y los datos de laboratorio de un informe Lighthouse de PageSpeed ​​Insights.

    Y si necesita depurar algo rápidamente pero su proceso de compilación parece ser notablemente lento, tenga en cuenta que "la eliminación de espacios en blanco y la manipulación de símbolos representa el 95% de la reducción de tamaño en el código minificado para la mayoría de JavaScript, no las transformaciones de código elaboradas". simplemente deshabilite la compresión para acelerar las compilaciones de Uglify de 3 a 4 veces".

Una captura de pantalla de la notificación de solicitud de extracción de GitHub que indica que se requiere una revisión y que la fusión está bloqueada hasta que las comprobaciones se hayan resuelto con éxito
La integración de la accesibilidad, el rendimiento y las puntuaciones de SEO en su configuración de Travis con Lighthouse CI resaltará el impacto en el rendimiento de una nueva función para todos los desarrolladores que contribuyen. (Fuente de la imagen) (Vista previa grande)
  1. ¿Has probado en navegadores proxy y navegadores heredados?
    Probar en Chrome y Firefox no es suficiente. Mire cómo funciona su sitio web en navegadores proxy y navegadores heredados. UC Browser y Opera Mini, por ejemplo, tienen una cuota de mercado significativa en Asia (hasta un 35 % en Asia). Mida la velocidad promedio de Internet en sus países de interés para evitar grandes sorpresas en el futuro. Pruebe con limitación de red y emule un dispositivo de alto DPI. BrowserStack es fantástico para realizar pruebas en dispositivos reales remotos y complementarlo con al menos algunos dispositivos reales en su oficina también; vale la pena.
  1. ¿Has probado el rendimiento de tus 404 páginas?
    Normalmente no lo pensamos dos veces cuando se trata de 404 páginas. Después de todo, cuando un cliente solicita una página que no existe en el servidor, el servidor responderá con un código de estado 404 y la página 404 asociada. No hay mucho de eso, ¿no?

    Un aspecto importante de las respuestas 404 es el tamaño real del cuerpo de la respuesta que se envía al navegador. Según la investigación de 404 páginas realizada por Matt Hobbs, la gran mayoría de las respuestas 404 provienen de favicons faltantes, solicitudes de carga de WordPress, solicitudes de JavaScript rotas, archivos de manifiesto, así como archivos CSS y de fuentes. Cada vez que un cliente solicita un activo que no existe, recibirá una respuesta 404 y, a menudo, esa respuesta es enorme.

    Asegúrese de examinar y optimizar la estrategia de almacenamiento en caché para sus páginas 404. Nuestro objetivo es servir HTML al navegador solo cuando espera una respuesta HTML y devolver una pequeña carga útil de error para todas las demás respuestas. Según Matt, "si colocamos una CDN frente a nuestro origen, tenemos la posibilidad de almacenar en caché la respuesta de la página 404 en la CDN. Eso es útil porque sin ella, golpear una página 404 podría usarse como un vector de ataque DoS, al obligando al servidor de origen a responder a cada solicitud 404 en lugar de permitir que la CDN responda con una versión en caché".

    Los errores 404 no solo pueden perjudicar su rendimiento, sino que también pueden costar tráfico, por lo que es una buena idea incluir una página de error 404 en su conjunto de pruebas de Lighthouse y realizar un seguimiento de su puntaje a lo largo del tiempo.

  2. ¿Ha probado el rendimiento de sus solicitudes de consentimiento de GDPR?
    En tiempos de GDPR y CCPA, se ha vuelto común confiar en terceros para brindar opciones para que los clientes de la UE opten por participar o no en el seguimiento. Sin embargo, al igual que con cualquier otro script de terceros, su rendimiento puede tener un impacto bastante devastador en todo el esfuerzo de rendimiento.

    Por supuesto, es probable que el consentimiento real cambie el impacto de los scripts en el rendimiento general, por lo que, como señaló Boris Schapira, es posible que deseemos estudiar algunos perfiles de rendimiento web diferentes:

    • El consentimiento fue completamente denegado,
    • El consentimiento fue denegado parcialmente,
    • El consentimiento se dio en su totalidad.
    • El usuario no ha respondido a la solicitud de consentimiento (o la solicitud fue bloqueada por un bloqueador de contenido),

    Normalmente, las solicitudes de consentimiento de cookies no deberían tener un impacto en CLS, pero a veces lo hacen, así que considere usar las opciones gratuitas y de código abierto Osano o cookie-consent-box.

    En general, vale la pena analizar el rendimiento de la ventana emergente, ya que deberá determinar el desplazamiento horizontal o vertical del evento del mouse y colocar correctamente la ventana emergente en relación con el ancla. Noam Rosenthal comparte los aprendizajes del equipo de Wikimedia en el artículo Estudio de caso de rendimiento web: vistas previas de páginas de Wikipedia (también disponible como video y minutos).

  3. ¿Mantiene un CSS de diagnóstico de rendimiento?
    Si bien podemos incluir todo tipo de controles para garantizar que se implemente el código que no funciona, a menudo es útil tener una idea rápida de algunas de las frutas más fáciles de resolver que podrían resolverse fácilmente. Para eso, podríamos usar el brillante CSS de diagnóstico de rendimiento de Tim Kadlec (inspirado en el fragmento de código de Harry Roberts que destaca imágenes con carga diferida, imágenes sin tamaño, imágenes de formato heredado y secuencias de comandos síncronas.

    Por ejemplo, es posible que desee asegurarse de que ninguna imagen de la parte superior de la página se cargue de forma diferida. Puede personalizar el fragmento según sus necesidades, por ejemplo, para resaltar fuentes web que no se utilizan o detectar fuentes de iconos. Una pequeña gran herramienta para garantizar que los errores sean visibles durante la depuración, o simplemente para auditar el proyecto actual muy rápidamente.

    /* Performance Diagnostics CSS */ /* via Harry Roberts. https://twitter.com/csswizardry/status/1346477682544951296 */ img[loading=lazy] { outline: 10px solid red; }
  1. ¿Has probado el impacto en la accesibilidad?
    Cuando el navegador comienza a cargar una página, crea un DOM y, si hay una tecnología de asistencia, como un lector de pantalla en ejecución, también crea un árbol de accesibilidad. Luego, el lector de pantalla tiene que consultar el árbol de accesibilidad para recuperar la información y ponerla a disposición del usuario, a veces de forma predeterminada y otras a pedido. Y a veces lleva tiempo.

    Cuando hablamos de tiempo rápido para interactuar, por lo general nos referimos a un indicador de qué tan pronto un usuario puede interactuar con la página haciendo clic o tocando enlaces y botones. El contexto es ligeramente diferente con los lectores de pantalla. En ese caso, Tiempo rápido para interactuar significa cuánto tiempo pasa hasta que el lector de pantalla puede anunciar la navegación en una página determinada y un usuario del lector de pantalla puede presionar el teclado para interactuar.

    Leonie Watson ha dado una charla reveladora sobre el rendimiento de la accesibilidad y, específicamente, el impacto que tiene la carga lenta en los retrasos en los anuncios de los lectores de pantalla. Los lectores de pantalla están acostumbrados a los anuncios rápidos y a la navegación rápida y, por lo tanto, podrían ser incluso menos pacientes que los usuarios videntes.

    Las páginas grandes y las manipulaciones de DOM con JavaScript provocarán retrasos en los anuncios del lector de pantalla. Un área bastante inexplorada que podría necesitar algo de atención y pruebas, ya que los lectores de pantalla están disponibles literalmente en todas las plataformas (Jaws, NVDA, Voiceover, Narrator, Orca).

  2. ¿Está establecido el monitoreo continuo?
    Tener una instancia privada de WebPagetest siempre es beneficioso para realizar pruebas rápidas e ilimitadas. Sin embargo, una herramienta de monitoreo continuo, como Sitespeed, Calibre y SpeedCurve, con alertas automáticas le brindará una imagen más detallada de su desempeño. Establezca sus propias marcas de tiempo de usuario para medir y monitorear métricas específicas del negocio. Además, considere agregar alertas de regresión de rendimiento automatizadas para monitorear los cambios a lo largo del tiempo.

    Considere el uso de soluciones RUM para monitorear los cambios en el rendimiento a lo largo del tiempo. Para herramientas de prueba de carga similares a pruebas unitarias automatizadas, puede usar k6 con su API de secuencias de comandos. Además, consulte SpeedTracker, Lighthouse y Calibre.

Tabla de contenido

  1. Preparándose: planificación y métricas
  2. Establecer metas realistas
  3. Definición del entorno
  4. Optimizaciones de activos
  5. Optimizaciones de compilación
  6. Optimizaciones de entrega
  7. Redes, HTTP/2, HTTP/3
  8. Pruebas y monitoreo
  9. Triunfos rápidos
  10. Todo en una página
  11. Descargar la lista de verificación (PDF, Apple Pages, MS Word)
  12. Suscríbase a nuestro boletín de correo electrónico para no perderse las próximas guías.