Dalam beberapa bulan, situs berita terkemuka di Inggris berhasil meningkatkan CLS persentil ke-75 sebesar 250% dari 0,25 menjadi 0,1.
Tantangan stabilitas visual
Perubahan tata letak dapat sangat mengganggu. Di Telegraph Media Group (TMG), stabilitas visual sangat penting karena pembaca sebagian besar menggunakan aplikasi kami untuk membaca berita. Jika tata letak bergeser saat membaca artikel, pembaca kemungkinan akan kehilangan bagian yang terakhir dibaca. Hal ini dapat menjadi pengalaman yang menjengkelkan dan mengganggu.
Dari perspektif engineering, memastikan halaman tidak bergeser dan mengganggu pembaca dapat menjadi tantangan, terutama saat area aplikasi Anda dimuat secara asinkron dan ditambahkan ke halaman secara dinamis.
Di TMG, kami memiliki beberapa tim yang berkontribusi pada kode sisi klien:
- Engineering inti. Mengimplementasikan solusi pihak ketiga untuk mendukung berbagai area seperti rekomendasi konten dan pemberian komentar.
- Pemasaran. Menjalankan pengujian A/B untuk menilai cara pembaca berinteraksi dengan fitur atau perubahan baru.
- Iklan. Mengelola permintaan iklan dan pra-bidding iklan.
- Editorial. Menyematkan kode dalam artikel seperti tweet atau video, serta widget kustom (misalnya, pelacak kasus Virus Corona).
Memastikan setiap tim ini tidak menyebabkan tata letak halaman bergetar dapat sulit. Dengan menggunakan metrik Perubahan Tata Letak Kumulatif untuk mengukur frekuensi terjadinya untuk pembaca kami, tim mendapatkan lebih banyak insight tentang pengalaman pengguna yang sebenarnya dan sasaran yang jelas untuk dicapai. Hal ini menyebabkan CLS persentil ke-75 kami meningkat dari 0,25 menjadi 0,1 dan bucket lulus kami meningkat dari 57% menjadi 72%.
250%
Peningkatan CLS persentil ke-75
15%
Lebih banyak pengguna dengan skor CLS yang baik
Awal mulanya
Dengan menggunakan dasbor CrUX, kami dapat memastikan bahwa halaman kami bergeser lebih banyak dari yang kami inginkan.

Idealnya, kami ingin setidaknya 75% pembaca kami memiliki pengalaman yang "baik", jadi kami mulai mengidentifikasi penyebab ketidakstabilan tata letak.
Cara kami mengukur pergeseran tata letak
Kami menggunakan kombinasi Chrome DevTools dan WebPageTest untuk membantu mengenali penyebab tata letak bergeser. Di DevTools, kami menggunakan bagian Pengalaman pada tab Performa untuk menyoroti setiap instance pergeseran tata letak dan kontribusinya terhadap skor keseluruhan.

WebPageTest akan menyoroti tempat perubahan tata letak terjadi di tampilan linimasa saat "Sorot Perubahan Tata Letak" dipilih.

Setelah meninjau setiap perubahan di seluruh template yang paling banyak dikunjungi, kami membuat daftar ide tentang cara meningkatkan kualitas template.
Mengurangi perubahan tata letak
Kami berfokus pada empat area yang dapat mengurangi pergeseran tata letak: - iklan - gambar - header - penyematan
Iklan
Iklan dimuat setelah proses rendering awal melalui JavaScript. Beberapa penampung yang dimuat tidak memiliki tinggi yang dicadangkan.

Meskipun tidak mengetahui tinggi persisnya, kita dapat mencadangkan ruang dengan menggunakan ukuran iklan yang paling umum yang dimuat di slot.

Dalam beberapa kasus, kami telah salah menilai tinggi rata-rata iklan. Untuk pembaca tablet, slot diciutkan.

Kami meninjau kembali slot dan menyesuaikan tingginya untuk menggunakan ukuran yang paling umum.

Gambar
Banyak gambar di seluruh situs dimuat lambat dan ruangnya disediakan untuk gambar tersebut.

Namun, gambar inline di bagian atas artikel tidak memiliki ruang yang dicadangkan di penampung, atau tidak memiliki atribut lebar dan tinggi yang terkait dengan tag. Hal ini menyebabkan tata letak bergeser saat dimuat.

Cukup menambahkan atribut lebar dan tinggi ke gambar untuk memastikan tata letak tidak bergeser.

Header
Header berada di bawah konten dalam markup dan diposisikan di bagian atas menggunakan CSS. Ide awalnya adalah memprioritaskan pemuatan konten sebelum navigasi, tetapi hal ini menyebabkan halaman bergeser untuk sementara.

Memindahkan header ke bagian atas markup memungkinkan halaman dirender tanpa pergeseran ini.

Penyematan
Beberapa penyematan yang sering digunakan memiliki rasio aspek yang ditentukan. Misalnya, video YouTube. Saat pemutar dimuat, kita mengambil thumbnail dari YouTube dan menggunakannya sebagai placeholder saat video dimuat.

Mengukur dampaknya
Kami dapat mengukur dampaknya di tingkat fitur dengan cukup mudah menggunakan alat yang disebutkan di awal artikel. Namun, kami ingin mengukur CLS di tingkat template dan tingkat situs. Secara sintetis, kami menggunakan SpeedCurve untuk memvalidasi perubahan baik dalam praproduksi maupun produksi.

Selanjutnya, kita dapat memvalidasi hasilnya dalam data RUM (disediakan oleh mPulse) setelah kode mencapai produksi.

Memeriksa data RUM memberi kita tingkat keyakinan yang baik bahwa perubahan yang kita buat memiliki dampak positif bagi pembaca.
Angka akhir yang kita lihat adalah untuk data RUM yang dikumpulkan Google. Hal ini terutama relevan sekarang karena akan segera memengaruhi peringkat halaman. Sebagai permulaan, kami menggunakan Laporan UX Chrome, baik dalam data tingkat origin bulanan yang tersedia melalui dasbor CrUX, maupun dengan mengkueri BigQuery untuk mengambil data p75 historis. Dengan cara ini, kami dapat dengan mudah melihat bahwa untuk semua traffic yang diukur oleh CrUX, CLS persentil ke-75 kami meningkat sebesar 250% dari 0,25 menjadi 0,1 dan bucket lulus kami bertambah dari 57% menjadi 72%.


Selain itu, kami dapat menggunakan Chrome UX Report API dan membuat beberapa dasbor internal yang dibagi menjadi template.

Menghindari regresi CLS
Aspek penting dalam melakukan peningkatan performa adalah menghindari regresi. Kami telah menyiapkan beberapa anggaran performa dasar untuk metrik utama kami dan menyertakan CLS di dalamnya.

Jika pengujian melebihi anggaran, pengujian akan mengirim pesan ke saluran Slack agar kami dapat menyelidiki penyebabnya. Kami juga telah menyiapkan laporan mingguan, sehingga meskipun template tetap sesuai anggaran, kami akan mengetahui perubahan apa pun yang memiliki dampak negatif.
Kami juga berencana untuk memperluas anggaran guna menggunakan data RUM serta data sintetis, menggunakan mPulse untuk menetapkan notifikasi statis dan berpotensi deteksi anomali yang akan membuat kami mengetahui perubahan yang tidak biasa.
Penting bagi kita untuk mendekati fitur baru dengan mempertimbangkan CLS. Banyak perubahan yang saya sebutkan adalah perubahan yang harus kami perbaiki setelah dirilis kepada pembaca. Stabilitas tata letak akan menjadi pertimbangan untuk desain solusi fitur baru ke depannya sehingga kita dapat menghindari pergeseran tata letak yang tidak terduga sejak awal.
Kesimpulan
Peningkatan yang telah kami lakukan sejauh ini cukup mudah diterapkan dan telah memberikan dampak yang signifikan. Banyak perubahan yang saya uraikan dalam artikel ini tidak memerlukan banyak waktu untuk diterapkan dan diterapkan ke semua template yang paling sering digunakan yang berarti perubahan tersebut memiliki dampak positif yang luas bagi pembaca kami.
Masih ada area situs yang perlu kita tingkatkan. Kami sedang mempelajari cara agar dapat melakukan lebih banyak logika sisi klien di sisi server, yang akan meningkatkan CLS lebih jauh. Kami akan terus melacak dan memantau metrik kami dengan tujuan untuk terus meningkatkannya dan memberikan pengalaman pengguna terbaik kepada pembaca kami.