Complemento WP-Optimize acusado de engañar a PageSpeed ​​y otras herramientas de prueba de rendimiento

Publicado: 2022-08-30

Gijo Varghese, un desarrollador que se llama a sí mismo un "entusiasta del rendimiento web", sorprendió a los usuarios de WordPress de todo el mundo durante el fin de semana cuando tuiteó una captura de pantalla de cómo WP-Optimize impide explícitamente que se carguen archivos JavaScript seleccionados cuando los usuarios prueban sus sitios a través del rendimiento popular. herramientas de prueba.

“Cuando se carga un sitio, los archivos JavaScript se cargan solo cuando el agente de usuario/navegador no es Lighthouse/GTmetrix/Headless Chrome/Pingdom”, dijo Varghese. “No JS = puntajes altos. ¡Pero para los usuarios reales, estos archivos JS están cargados!”

Varghese confirmó que estaba probando la versión gratuita de WP-Optimize, que se usa en más de un millón de sitios de WordPress. UpdraftPlus adquirió WP-Optimize en 2016 y afirma que la herramienta "tiene todo lo que necesita para mantener su sitio web rápido y completamente optimizado". También se promociona una versión comercial a través del complemento gratuito alojado en WordPress.org.

“Dígame, UpdraftPlus, ¿cómo se supone que debo seguir confiando en su empresa las copias de seguridad de mis clientes cuando utiliza estas prácticas engañosas y fraudulentas?” dijo un cliente, Adam Lowe, en respuesta al descubrimiento de Varghese del complemento que no carga JS para las herramientas de rendimiento.

“Wow, todo lo que puedo decir es que es una gran decepción”, dijo el propietario y desarrollador de la agencia de WordPress, Brian Jackson.

Este tipo de engaño es inquietantemente similar a una estafa reportada por alguien que contrató a un profesional independiente en Upwork que manipuló artificialmente los resultados de Google Pagespeed. Otros que participaron en la discusión en Twitter lo compararon con el escándalo de emisiones de Volkswagen, donde se descubrió que el fabricante de automóviles activaba sus controles de emisiones solo durante las pruebas de laboratorio para cumplir con los requisitos de la EPA después de una infracción. Los vehículos en la carretera emitieron hasta 40 veces más óxidos de nitrógeno mientras conducían, en comparación con su rendimiento en las pruebas de laboratorio amañadas.

Varghese y varios otros participantes en la conversación concluyeron que esta es la razón por la cual los propietarios de sitios deben centrarse en lo que experimentan los usuarios del mundo real, en lugar de los puntajes de las pruebas de herramientas de rendimiento.

Incluso cuando se centran en las experiencias reales de los usuarios, los propietarios de sitios a menudo confían en las pruebas para diagnosticar problemas y ver cómo se puede mejorar el rendimiento de un sitio. No esperan que un complemento oculte los archivos JS de las herramientas de rendimiento. Hacer trampas en las pruebas ha erosionado la credibilidad de WP-Optimize.

"Guau. Si es cierto, esto es tan miope como imperdonable”, dijo Johnathon William, cliente de UpdraftPlus. “Y me pregunto si puedo confiar en su otro producto, UpdraftPlus, que utilizo para respaldar varios sitios de clientes”.

Me puse en contacto con UpdraftPlus y el desarrollador principal, David Anderson, dijo que la empresa no estaba al tanto del problema con el código, pero relató parte de la historia de fondo. UpdraftPlus estuvo brevemente en conversaciones con el autor del complemento Fast Velocity Minify sobre la posibilidad de combinar fuerzas, en las que mantendría el módulo de minificación dentro de WP-Optimize y ganaría más usuarios. Al final no pudieron llegar a un acuerdo, pero durante ese tiempo los desarrolladores de WP-Optimize bifurcaron y adaptaron Fast Velocity Minify bajo la GPL. Los desarrolladores que trabajaron en esa adaptación ya no están en la empresa.

"En la confirmación de nuestro propio repositorio de origen, hace 2,5 años (enero de 2020), la confirmación se denominó 'Resolver' Agregar código GPL de minificación CSS y JS de 'Fast Velocity Minify' - Parte 6'", dijo Anderson. “Parte de una serie de fusiones iniciales de código que se reformuló para ser más limpio y usar nuestras preferencias de estilo de codificación (pero sin cambiar ninguna funcionalidad). Entonces, la intención aparente de la fusión de esas líneas era traer el código refactorizado sin realizar ningún cambio en esa etapa.

“Según el historial de confirmaciones (es decir, la función 'git culpar') no se han realizado cambios en ese código desde entonces, es decir, está tal como se importó. (El historial de WP Optimize también es público en WordPress SVN)”.

Después de un examen superficial del código, Anderson concluyó que es posible que su equipo deba volver a examinarlo, ya que no sabían lo que se agregó hace dos años.

“Mientras trato de rastrear esa función a través del código dentro de los complementos, la intención aparente es que si el visitante del sitio web es un 'bot', entonces el código que no tiene sentido para los bots no se llevará a cabo, " él dijo.

“Sin embargo, habiendo dicho eso, 1) los nombres de los bots parecen estar muy ofuscados/redactados, lo cual es extraño (¿por qué?), y 2) hay muchos bots más obvios que no figuran en la lista, como el propio Googlebot. Si esa función se me presentara para su revisión hoy, ciertamente me preguntaría por qué es así. No puedo leerme la mente hace 32 meses, pero lo recuerdo como una larga serie de grandes parches, por lo que no se analizó de cerca línea por línea. Sabíamos que habíamos identificado a FVM como un buen complemento y nuestro objetivo principal era adaptarlo a nuestra estructura y estilo, y esas eran las cosas que personalmente estaba mirando como revisor final”.

En resumen, el equipo de desarrollo de UpdraftPlus no estaba al tanto de este código hasta que se publicó el hilo de Twitter durante el fin de semana.

“Ciertamente estoy contento de haberlo traído a nuestra intención”, dijo Anderson. “El código asociado comenta en un fragmento relacionado en su fuente original que tiene la intención de evitar solicitudes innecesarias de bots, pero en un examen más detallado que esa línea en ese momento, eso es algo que querremos ver, ya que parece cuestionable/extraño, y lo haremos asignándolo a un miembro del equipo que sea nuestro experto en optimizaciones de JavaScript”.

Anderson también dijo que si los expertos en optimización de JavaScript no pueden encontrar ningún propósito legítimo para el código, "sin duda será eliminado", con una divulgación clara e inequívoca del razonamiento detrás de él.

Mientras tanto, UpdraftPlus ha publicado un aviso en el foro de soporte del complemento para informar a los usuarios que el código se encuentra actualmente bajo investigación.

“Para ser claros y tranquilizar a los usuarios: el código en cuestión no es peligroso, un virus, una infección, útil para los piratas informáticos ni nada por el estilo”, dijo Anderson. “La acusación es que su único propósito al existir es efectivamente hacer trampa en las pruebas de velocidad. Dicho código, si es así, no pertenece a WP Optimize y lo eliminaremos con una nueva versión. La integridad de nuestros productos y la confianza de nuestros clientes son esenciales para nosotros (y poner cosas deliberadamente en un código fuente abierto que comprometa eso es, francamente, una estupidez).