Plugin WP-Optimize Dituduh Curang PageSpeed ​​dan Alat Pengujian Kinerja Lainnya

Diterbitkan: 2022-08-30

Gijo Varghese, seorang pengembang yang menyebut dirinya "penggila kinerja web," mengejutkan pengguna WordPress di seluruh dunia selama akhir pekan ketika dia men-tweet tangkapan layar tentang bagaimana WP-Optimize secara eksplisit mencegah file JavaScript tertentu dimuat ketika pengguna menguji situs mereka melalui kinerja populer alat pengujian.

“Ketika sebuah situs dimuat, file JavaScript dimuat hanya ketika agen pengguna/browser bukan Lighthouse/GTmetrix/Headless Chrome/Pingdom,” kata Varghese. “Tidak ada JS = nilai tinggi. Tetapi untuk pengguna nyata, file JS ini dimuat!”

Varghese mengkonfirmasi bahwa dia sedang menguji versi gratis WP-Optimize, yang digunakan di lebih dari satu juta situs WordPress. UpdraftPlus mengakuisisi WP-Optimize pada tahun 2016 dan mengklaim bahwa alat tersebut “memiliki semua yang Anda butuhkan untuk menjaga situs web Anda tetap cepat dan dioptimalkan secara menyeluruh.” Versi komersial juga dipromosikan melalui plugin gratis yang di-host di WordPress.org.

“Beri tahu saya, UpdraftPlus, bagaimana saya harus terus mempercayai perusahaan Anda dengan cadangan klien saya ketika Anda menggunakan praktik penipuan dan penipuan ini?” salah satu pelanggan Adam Lowe mengatakan sebagai tanggapan atas penemuan Varghese tentang plugin yang tidak memuat JS untuk alat kinerja.

“Wow, yang bisa saya katakan adalah kekecewaan yang luar biasa,” kata pemilik dan pengembang agensi WordPress Brian Jackson.

Jenis penipuan ini sangat mirip dengan penipuan yang dilaporkan oleh seseorang yang mengontrak pekerja lepas kinerja di Upwork yang memanipulasi hasil Google Pagespeed secara artifisial. Orang lain yang berpartisipasi dalam diskusi di Twitter membandingkannya dengan skandal emisi Volkswagon di mana pembuat mobil diketahui mengaktifkan kontrol emisinya hanya selama pengujian laboratorium untuk memenuhi persyaratan EPA setelah pelanggaran. Kendaraan di jalan mengeluarkan oksida nitrogen hingga 40 kali lebih banyak saat mengemudi, dibandingkan dengan kinerjanya dalam uji laboratorium yang dicurangi.

Varghese dan beberapa peserta lain dalam percakapan menyimpulkan bahwa inilah mengapa pemilik situs harus fokus pada apa yang dialami pengguna di dunia nyata, alih-alih skor tes alat kinerja.

Bahkan ketika berfokus pada pengalaman pengguna yang sebenarnya, pemilik situs sering mengandalkan tes untuk mendiagnosis masalah dan melihat bagaimana kinerja situs dapat ditingkatkan. Mereka tidak berharap bahwa plugin akan menyembunyikan file JS dari alat kinerja. Menipu tes telah mengikis kredibilitas WP-Optimize.

"Wow. Jika benar, ini adalah pandangan yang picik dan tidak dapat dimaafkan, ”kata pelanggan UpdraftPlus Johnathon William. “Dan itu membuat saya bertanya-tanya apakah saya dapat mempercayai produk mereka yang lain, UpdraftPlus, yang saya gunakan untuk mencadangkan beberapa situs klien.”

Saya menghubungi UpdraftPlus dan pengembang utama David Anderson mengatakan bahwa perusahaan tidak mengetahui masalah dengan kode tersebut tetapi mengaitkan beberapa latar belakang. UpdraftPlus secara singkat berbicara dengan penulis plugin Fast Velocity Minify tentang kemungkinan menggabungkan kekuatan, di mana ia akan mempertahankan modul minifikasi dalam WP-Optimize dan mendapatkan lebih banyak pengguna. Pada akhirnya mereka tidak dapat mencapai kesepakatan, tetapi selama waktu itu pengembang WP-Optimize bercabang dan mengadaptasi Fast Velocity Minify di bawah GPL. Pengembang yang mengerjakan adaptasi itu tidak lagi bersama perusahaan.

“Dalam komit ke repositori sumber kami sendiri, 2,5 tahun yang lalu (Jan 2020), komit diberi label 'Selesaikan 'Tambahkan kode GPL CSS dan JS Minifikasi dari 'Fast Velocity Minify' – Bagian 6′,” kata Anderson. “Bagian dari serangkaian penggabungan awal kode yang difaktorkan ulang agar lebih bersih dan menggunakan preferensi gaya pengkodean kami (tetapi tidak mengubah fungsi apa pun). Jadi maksud yang jelas dari penggabungan baris-baris itu adalah untuk membawa kode refactored tanpa pada tahap itu membuat perubahan apa pun.

“Menurut riwayat komit (yaitu fungsi 'git menyalahkan') tidak ada perubahan yang dibuat pada kode itu sejak, yaitu sebagai yang diimpor. (Riwayat untuk WP Optimize juga publik di WordPress SVN).”

Setelah pemeriksaan sepintas kode, Anderson menyimpulkan bahwa timnya mungkin perlu memeriksa ulang, karena mereka tidak mengetahui apa yang ditambahkan dua tahun lalu.

“Ketika saya mencoba melacak fungsi itu melalui kode di dalam plugin, maksud dari tampilannya adalah jika pengunjung situs web adalah 'bot,' maka kode yang tidak berguna untuk bot tidak akan dijalankan, " dia berkata.

“Namun demikian, 1) nama bot terlihat sangat dikaburkan/dihapus, yang aneh (mengapa?), dan 2) ada banyak bot yang lebih jelas yang tidak terdaftar di sana, seperti Googlebot itu sendiri. Jika fungsi itu diajukan kepada saya untuk ditinjau hari ini, saya pasti akan mempertanyakan mengapa demikian. Saya tidak dapat membaca pikiran saya kembali 32 bulan yang lalu, tetapi, saya mengingatnya sebagai serangkaian panjang patch besar, jadi itu tidak dianalisis secara dekat berdasarkan baris demi baris. Kami tahu bahwa kami telah mengidentifikasi FVM sebagai plugin yang bagus dan fokus utama kami adalah mengadaptasinya ke struktur dan gaya kami, dan itulah hal-hal yang secara pribadi saya lihat sebagai peninjau terakhir.”

Singkatnya, tim pengembangan UpdraftPlus tidak mengetahui kode ini sampai utas Twitter diterbitkan selama akhir pekan.

"Saya tentu senang karena itu dibawa ke niat kami," kata Anderson. “Kode terkait mengomentari fragmen terkait di sumber aslinya yang dimaksudkan untuk mencegah permintaan bot yang tidak perlu, tetapi pada pemeriksaan lebih dekat daripada yang didapat baris itu pada saat itu, itu adalah sesuatu yang ingin kami lihat, seperti yang terlihat dipertanyakan/aneh, dan kami akan melakukannya dengan menugaskannya ke anggota tim yang ahli dalam pengoptimalan JavaScript.”

Anderson juga mengatakan bahwa jika ahli pengoptimalan JavaScript tidak dapat menemukan tujuan yang sah untuk kode tersebut, "itu pasti akan dihapus," dengan pengungkapan yang jelas dan tidak ambigu untuk alasan di baliknya.

Sementara itu, UpdraftPlus telah menerbitkan pemberitahuan di forum dukungan plugin untuk memberi tahu pengguna bahwa kode tersebut sedang diselidiki.

“Untuk memperjelas dan menenangkan pikiran pengguna: kode yang dimaksud tidak berbahaya, virus, infeksi, berguna untuk peretas, atau semacamnya,” kata Anderson. “Tuduhannya adalah bahwa satu-satunya tujuan yang ada adalah secara efektif untuk menipu tes kecepatan. Kode tersebut, jika demikian, tidak termasuk dalam WP Optimize dan kami akan menghapusnya dengan rilis baru. Integritas produk kami, dan kepercayaan pelanggan kami, sangat penting bagi kami (dan dengan sengaja memasukkan hal-hal dalam kode sumber terbuka yang berkompromi, sejujurnya, adalah hal yang bodoh untuk dilakukan).”