Webs falsamente rápidos: cómo se hackea la puntuación de Lighthouse

La comunidad de velocidad web vive en un ciclo falso. La gente confunde la puntuación de Lighthouse con la velocidad real del sitio. Esto es aprovechado por los desarrolladores de plugins que se enfocan en mejorar esta métrica sin realmente mejorar la velocidad del sitio.
En el mercado, hay numerosos plugins que ofrecen acelerar el sitio con solo un clic. Tomemos por ejemplo WP-Optimize, WP Rocket o Website Speedy. Su impacto a menudo se traduce simplemente en una mejora de la puntuación de Lighthouse.
Suelen lograr esto posponiendo la carga de todo el JavaScript. Esto puede mejorar una métrica, pero deteriorar otras métricas de velocidad y perjudicar tu análisis.
Estudiamos más a fondo el Website Speedy para este artículo y, mediante un experimento con un cliente, descubrimos que desactivar el plugin sí devuelve la puntuación de Lighthouse a valores normales, pero no afecta la velocidad del sitio.
Además, observamos una detección de pruebas bastante sospechosa, por lo que un sitio evaluado con Lighthouse puede comportarse de manera diferente que con usuarios reales.
Puntuación de Lighthouse. Una métrica defectuosa que sin embargo interesa a todos
Durante la integración de clientes en PageSpeed.ONE, varias veces al mes hablo con alguien que quiere «mejorar la puntuación en PageSpeed Insights». Ese número en el círculo de abajo. Ya saben, la puntuación de Lighthouse.
Lo entendemos. Es un número, colorido y fácil de enviar a los colegas por Slack… Pero la puntuación de Lighthouse es el resultado de un test sintético de una sola página, en un solo ambiente, con una sola configuración. Su composición y ponderación pueden cambiar entre versiones de Lighthouse. Del mismo modo, Lighthouse en tu computadora puede mostrar un número diferente al de PageSpeed Insights.
Vamos a repetirlo:
La puntuación de Lighthouse no es una métrica de velocidad del sitio. Es un indicador técnico de diagnóstico.
¿También miras el lugar equivocado en PageSpeed Insights?
La velocidad del sitio no nace en Lighthouse. Nace en los teléfonos de tus visitantes, en el wifi de un bar, en un smartphone chino antiguo con tres barras de señal, con diez pestañas abiertas y al hacer clic en la barra de cookies.
Lighthouse no ve esto. No es un usuario. Lighthouse no hace scroll, no hace clic, no inicia sesión, no abre filtros de productos ni llega al checkout.
La verdadera velocidad la miden las métricas Core Web Vitals de la base de datos Chrome UX Report. (Las diferencias entre el laboratorio y los datos de usuarios se resumen en synth vs. CrUX vs. RUM.)
Un economista diría: «Claro, la ley de Goodhart»
El economista Charles Goodhart escribió una vez una frase que hoy se enseña en las universidades:
«Cuando una métrica se convierte en un objetivo, deja de ser una buena métrica.»
Aquí encaja perfectamente. Eso es precisamente lo que ha pasado con la puntuación de Lighthouse.
La gente quiere un número simple. Google lo muestra (en mi opinión, erróneamente) en PageSpeed Insights de forma prominente y colorida.
Los clientes preguntan a las agencias sobre la puntuación de Lighthouse. Algunas agencias prometen mejorarla. Y luego vienen los plugins que prometen lo mismo, pero más rápido y sin esfuerzo.
Cuando un número de diagnóstico se convierte en un argumento comercial, surge un mercado para mejorar ese número. Y una vez que el cálculo es predecible, alguien empieza a hackear la métrica en lugar de optimizar el sitio.
Retrasar el JavaScript no es optimización, sino trasladar el problema
Una gran cantidad de plugins de «aceleración» de hoy en día tiene una casilla que puede aumentar la puntuación de Lighthouse en decenas de puntos con solo cinco segundos de trabajo. Retrasan la ejecución de todo el JavaScript hasta la primera interacción del usuario. Scroll, clic, toque de pantalla.
¿Por qué funciona esto tan eficazmente para hackear la puntuación de Lighthouse? Lighthouse carga y mide la página. No hace scroll, no hace clic, no toca la pantalla. Por lo tanto, el JavaScript diferido nunca se ejecuta en la prueba. Por ejemplo, el Tiempo Total de Bloqueo (TBT), una métrica con gran peso en la puntuación de Lighthouse, desaparece de la medición. También mejora el tiempo de carga (LCP).
La puntuación de Lighthouse se dispara, aunque en realidad no se ha acelerado nada en el sitio. Para el usuario real, nada ha cambiado. Solo se ha pospuesto. Y a menudo en el peor momento posible.
Ilustración de la postergación del JavaScript. Los scripts se cargan solo después de la interacción del usuario. Es un mal.
En PageSpeed.ONE hemos optimizado cientos de sitios, pero nunca hemos recomendado esta técnica a los clientes. ¿Cuáles son los riesgos de diferir todos los JavaScripts?
- Impacto negativo en las interacciones (INP). Un usuario llega a la página, lee el título y hace clic. En ese momento, se ejecuta todo el JavaScript diferido que se ha acumulado hasta entonces. El hilo principal del navegador se bloquea y el primer clic del usuario espera. Esto puede empeorar la métrica INP, que Google incluye en los Core Web Vitals.
- Impacto negativo en los cambios de diseño (CLS). Los scripts que renderizan contenido, como carruseles o personalizaciones, se ejecutan tarde cuando el JavaScript se difiere. En la prueba de Lighthouse no se mide ningún cambio porque ese código nunca se ejecutó. Así que no ves el valor real del CLS.
- Funcionalidad de medición. La analítica, el consentimiento de cookies, los chats, las pruebas A/B y la medición de conversiones se difieren junto con todo lo demás. Los datos pueden no coincidir y nadie sabe por qué.
- Desvalorización de la puntuación de Lighthouse. Como hemos mencionado, aunque la puntuación de Lighthouse no es una métrica de velocidad del sitio, sí es útil para diagnosticar cambios u optimizaciones. Al no haber ningún JavaScript en la puntuación de Lighthouse, estás midiendo algo completamente diferente a tu sitio.
Diferir todo el JavaScript es una técnica mala. Decidir qué se debe cargar cuándo y en qué orden es un trabajo de ingeniería que requiere conocimiento específico del sitio. Una casilla que difiere todo el JavaScript no reemplaza este trabajo.
Y lo más problemático de todo. Los proveedores de estas funciones generalmente no mencionan en ningún lado lo que esto hará con la puntuación de Lighthouse y cómo puede afectar la velocidad para los usuarios reales. Si lo hicieran, el cliente entendería que a menudo no está comprando un sitio más rápido, sino solo un mejor número en la prueba.
WP-Optimize: el optimizador de puntuación de Lighthouse en acción
En 2022, el desarrollador Gijo Varghese publicó una captura de pantalla del plugin WP-Optimize, donde se ve que el JavaScript solo se carga en la página si el navegador no es Lighthouse, GTmetrix, headless Chrome o Pingdom.
La muestra de WP-Optimize muestra código que intenta detectar Lighthouse, Pingdom o GTmetrix.
El fabricante de este plugin de optimización para WordPress negó públicamente las acusaciones públicamente. Alega que es una configuración específica de «Defer using JavaScript».
Está bien, pero ¿por qué existe esa configuración en primer lugar? Volvemos al hecho de que tal configuración no es propia de un optimizador de velocidad. Consejos generales sobre velocidad en WordPress los tenemos en optimización de WordPress.
WP Rocket: el límite donde termina la optimización
Un problema similar tiene el conocido plugin de optimización WP Rocket. También contiene una función con el inocente nombre de Retrasar la ejecución de JavaScript. Activar la casilla hace que todos los scripts esperen hasta que el usuario desplace la página, haga clic o toque la pantalla.
Alexander Goller ya escribió en 2021 un artículo donde compara este problema con el escándalo de emisiones Dieselgate, donde los automóviles Volkswagen cambiaban la configuración del motor durante las pruebas de emisiones para cumplir con los valores requeridos.
¿Cuál es el estado actual? Esta configuración en WP Rocket aún existe. En la página de configuración de retraso de JavaScript, WP Rocket solo menciona que es una de las optimizaciones más poderosas.
¿Una simple configuración del plugin? No lo creo. En ningún lugar de la página de funciones WP Rocket menciona lo que esto hará con la puntuación de Lighthouse. Y eso es un problema.
WP Rocket solo menciona los beneficios de la configuración «Delay JS execution», pero no los riesgos.
Así que tanto WP-Optimize como WP Rocket siguen vendiendo esta característica, sin advertir que puede aumentar artificialmente la puntuación de Lighthouse y los otros riesgos de los que he hablado anteriormente.
Website Speedy: ¿mejora de velocidad o de puntuación de Lighthouse?
Website Speedy es una herramienta para varias plataformas que afirma ser un «Optimizador Automático de Velocidad del Sitio Web». Un cliente nuestro creyó en esto y usó este complemento durante meses, pensando que ayudaba a la velocidad del sitio.
Sin embargo, nuestro colega Michal Matuška descubrió que este complemento también puede aumentar artificialmente la puntuación de Lighthouse. Juzguen ustedes mismos.
Website Speedy promete impacto en la tasa de rebote y clasificaciones SEO en su página de inicio.
Nuestra investigación sobre Website Speedy
Todo comienza con el propio sitio web, donde se mezclan «impacto en métricas de negocio» y «puntuación de Lighthouse». La velocidad ciertamente tiene impacto en el negocio, pero esto no se puede conectar con una métrica sintética.
El marketing de estas extensiones depende de usuarios que creen que la puntuación de Lighthouse es la velocidad del sitio. Y hay muchos de ellos.
Los propios autores de Website Speedy lo admiten en su comunicación con nosotros:
«Nuestros paneles y documentación actualmente priorizan las puntuaciones de laboratorio, y no aclaramos que los resultados de laboratorio pueden diferir de lo que experimentan los usuarios reales.»
En el código fuente de Website Speedy encontramos detección de herramientas de prueba
A nuestro colega Michal, el comportamiento de Website Speedy no le dejaba tranquilo y decidió examinar el código fuente. Este está muy ofuscado, es decir, intencionadamente enredado.
En el código, después de decodificarlo a través de varios agentes de IA, encontramos una condición que decide si el JavaScript en el sitio se ejecuta o no. ¿Y adivinen qué? Sí, no se ejecuta si detecta pruebas de velocidad.
Antes de la publicación, le preguntamos a Website Speedy sobre su postura. El fundador Ishan Makkar respondió rápidamente:
«Nuestro script no detecta ni se ramifica en Lighthouse, PageSpeed Insights, GTmetrix, navegadores sin cabeza, o cualquier entorno de prueba sintética.»
Agregó que revisó el código personalmente en varios sitios web de clientes y no pudo reproducir nuestros hallazgos. Y nos ofreció una demo limpia con su versión de producción actual para que lo comprobáramos nosotros mismos.
La demo llegó el 18 de agosto. Nuestro colega Michal Matuška encontró esto en su script:
Un fragmento de código de la demo de Website Speedy. Escondieron el hackeo de nosotros.
La función se llama isAuditBot, es decir, «es un robot de auditoría». La primera línea devuelve false, por lo que en la demo que nos proporcionaron, toda la detección nunca se ejecuta. En el script del sitio web de nuestro cliente, no estaba desactivada.
Por cierto, en el resto del código muerto se prueban cadenas que recuerdan sospechosamente los nombres de las herramientas de medición sintéticas más comunes, es decir, GTmetrix, Lighthouse, PageSpeed, WebPageTest y Headless Chrome.
Como prueba de su inocencia, recibimos una instalación donde la detección de herramientas de prueba fue despojada de la manera más rápida posible.
¿Qué ocurrió cuando desactivamos Website Speedy en el sitio del cliente?
Con el cliente acordamos desactivar temporalmente Website Speedy. Vemos bastante claramente lo que sucedió con la velocidad cuando el plugin dejó de funcionar. Casi nada.
La puntuación de Lighthouse empeoró drásticamente...
Cambio en la puntuación de Lighthouse de la homepage tras desactivar Website Speedy.
Después de desactivar Website Speedy, la puntuación de Lighthouse en la homepage cambió de 95 puntos a alrededor de 60. ¿Empeoró? No, se normalizó.
Pero el impacto en los Core Web Vitals fue nulo:
Evolución de los Core Web Vitals tras desactivar el plugin Website Speedy.
No vemos ningún cambio aparte de otras influencias que ocurren en el sitio:
- Un ligero empeoramiento de la velocidad del sitio (LCP) correlaciona con una fluctuación en TTFB (respuesta del backend).
- CLS mejora con la modificación de otra característica del sitio y no está relacionada temporalmente.
- Cabe recordar que los datos de CrUX de Google muestran un estado acumulativo de 28 días, por lo que los cambios se manifiestan durante un período más largo.
Después de desactivar Website Speedy, la puntuación de Lighthouse en el sitio de nuestro cliente se normalizó. Pero la velocidad del sitio permaneció sin cambios.
Nuestra metodología y lo que no afirmamos
Para ser justos, deberíamos aclarar nuestra metodología en el caso de nuestra investigación sobre Website Speedy:
- Website Speedy no desea la divulgación del código fuente del plugin, por lo que solo publicamos el código fuente de la demo que nos proporcionaron y que difiere del código fuente del plugin.
- Experimentamos en el sitio de uno de nuestros clientes.
- No tenemos datos cuantitativos de múltiples proyectos aquí.
- La desactivación del plugin y nuestra investigación del código se realizaron en julio de 2026.
- Aparte de desactivar el plugin, no optimizamos nada más en el sitio.
El plugin Website Speedy mantenía una alta puntuación de Lighthouse para nuestro cliente, sin aportar una web más rápida de forma medible para los usuarios reales.
Un problema radica en los autores de los plugins. Pero el mayor está en los propios usuarios que pagan por estos plugins.
No descarten Lighthouse. Solo no lo conviertan en un objetivo
Usen la herramienta Lighthouse como diagnóstico. Encuentra imágenes lentas, paquetes de JavaScript innecesariamente grandes o CSS bloqueante. Para estos propósitos, Lighthouse es excelente.
¿Velocidad del sitio? Mira los Core Web Vitals. Punto.
Como métricas empresariales principales para la velocidad del sitio, sigan los datos de usuarios reales. Core Web Vitals del Chrome UX Report o datos de medición propia (RUM). Monitorea todo el dominio y las plantillas más importantes en monitoring, no una URL única de vez en cuando.
Sabemos que la demanda de un único puntaje para todo es alta, por eso en PageSpeed.ONE también usamos nuestro propio Puntuación PageSpeed.ONE, basado en datos de usuarios sobre las métricas Core Web Vitals.
En nuestro test de velocidad web único, también relegamos la puntuación de Lighthouse al fondo, lo que se pueda. En cambio, mostramos la tendencia de Core Web Vitals y una evaluación verbal del estado de la velocidad.
Mide la velocidad de tu web
Prueba de velocidad web te muestra resultados al instante.
Si quieren verificar un caso similar por ustedes mismos, el siguiente procedimiento puede ser de utilidad.
Cómo verificar un salto sospechoso en la puntuación de Lighthouse
Lista de verificación para detectar un hackeo sospechoso de la puntuación de Lighthouse:
- Comienza con la pregunta de si la puntuación aumentó sospechosamente rápido tras la instalación de un plugin o un cambio de configuración.
- Compara las solicitudes de red y el JavaScript ejecutado en Lighthouse con una carga normal en el navegador.
- Verifica el primer scroll, clic, barra de cookies, apertura de filtros, formularios y checkout. Lighthouse no hace scroll ni clic, pero el usuario sí.
- Revisa los datos de usuarios (CrUX o RUM) antes y después del cambio. Una puntuación de laboratorio más verde sin mejora en los datos de usuario no es una victoria.
- Y sobre todo: deja de comprar plugins que prometen aceleraciones milagrosas con un solo clic.
La próxima vez que alguien te ofrezca un plugin que aumente milagrosamente la puntuación en cinco minutos, pregúntale una cosa:
¿Qué impacto tendrá en la velocidad real para los usuarios, por ejemplo, en los Core Web Vitals? Si no puede responder a esta pregunta, ya conoces la respuesta.
Ten sitios rápidos. Y mide la velocidad correctamente.
Mantén el control sobre la velocidad de tu sitio web.
Suscríbete a nuestro boletín. Cada mes seleccionamos novedades sobre la velocidad web para propietarios, marketers y desarrolladores.
Etiquetas:Web PerformanceLighthouse