Cải thiện Điểm số tổng hợp về mức thay đổi bố cục tại Telegraph Media Group

Trong vòng vài tháng, trang web tin tức hàng đầu của Vương quốc Anh đã cải thiện CLS ở phân vị thứ 75 thêm 250%, từ 0,25 lên 0,1.

Thử thách về độ ổn định về hình ảnh

Sự thay đổi bố cục có thể gây gián đoạn rất lớn. Tại Telegraph Media Group (TMG), độ ổn định hình ảnh đặc biệt quan trọng vì độc giả chủ yếu sử dụng các ứng dụng của chúng tôi để đọc tin tức. Nếu bố cục thay đổi trong khi đọc bài viết, người đọc có thể sẽ mất dấu đoạn mình đang đọc. Đây có thể là trải nghiệm gây khó chịu và mất tập trung.

Từ góc độ kỹ thuật, việc đảm bảo các trang không dịch chuyển và làm gián đoạn trình đọc có thể là một thách thức, đặc biệt là khi các khu vực của ứng dụng được tải không đồng bộ và được thêm vào trang một cách linh động.

Tại TMG, chúng tôi có nhiều nhóm đóng góp mã phía máy khách:

  • Kỹ thuật cốt lõi. Triển khai các giải pháp của bên thứ ba cho các tính năng như đề xuất nội dung và bình luận.
  • Tiếp thị. Chạy thử nghiệm A/B để đánh giá cách người đọc tương tác với các tính năng hoặc thay đổi mới.
  • Quảng cáo. Quản lý yêu cầu quảng cáo và đặt giá thầu trước cho quảng cáo.
  • Biên tập. Nhúng mã trong các bài viết như tweet hoặc video, cũng như các tiện ích tuỳ chỉnh (ví dụ: trình theo dõi ca nhiễm vi-rút corona).

Có thể khó đảm bảo rằng mỗi nhóm này không làm bố cục của trang bị giật. Bằng cách sử dụng chỉ số Sự thay đổi bố cục tích luỹ để đo lường tần suất sự thay đổi này xảy ra với độc giả, các nhóm đã hiểu rõ hơn về trải nghiệm thực tế của người dùng và có một mục tiêu rõ ràng để phấn đấu. Nhờ đó, CLS theo thứ hạng thứ 75 của chúng tôi đã cải thiện từ 0,25 lên 0,1 và nhóm vượt qua tăng từ 57% lên 72%.

250%

Mức cải thiện CLS theo phân vị thứ 75

15%

Nhiều người dùng có điểm CLS tốt hơn

Bắt đầu từ đâu

Bằng cách sử dụng trang tổng quan CrUX, chúng tôi có thể xác định rằng các trang của mình đang thay đổi nhiều hơn mức chúng tôi mong muốn.

Trang tổng quan CrUX cho thấy khoảng 55-60% điểm tốt, 15% cần cải thiện và 25% điểm kém.
Điểm số Tổng hợp về mức thay đổi bố cục của chúng tôi trong khoảng thời gian từ tháng 6 năm 2020 đến tháng 2 năm 2021.

Lý tưởng nhất là ít nhất 75% độc giả của chúng tôi có trải nghiệm "tốt", vì vậy, chúng tôi bắt đầu xác định nguyên nhân khiến bố cục không ổn định.

Cách chúng tôi đo lường sự thay đổi về bố cục

Chúng tôi đã kết hợp Công cụ dành cho nhà phát triển ChromeWebPageTest để giúp nhận ra nguyên nhân khiến bố cục thay đổi. Trong DevTools, chúng tôi đã sử dụng mục Trải nghiệm của thẻ Hiệu suất để làm nổi bật các trường hợp riêng lẻ của việc thay đổi bố cục và cách các trường hợp đó đóng góp vào điểm số tổng thể.

Trang chủ của Telegraph có một quảng cáo trong tiêu đề được làm nổi bật bằng lớp phủ màu xanh dương.
Xác định sự thay đổi bố cục do quảng cáo tải phía máy khách phía trên tiêu đề bằng cách sử dụng mục Trải nghiệm của Công cụ của Chrome cho nhà phát triển.

WebPageTest giúp làm nổi bật vị trí xảy ra sự thay đổi bố cục trong chế độ xem dòng thời gian khi bạn chọn "Highlight Layout Shifts" (Nhấn mạnh sự thay đổi bố cục).

Chế độ xem băng hình WebPageTest của trang web Telegraph, trong đó layoutshift được làm nổi bật bằng lớp phủ màu đỏ.
WebPageTest làm nổi bật vị trí bố cục đã thay đổi.

Sau khi xem xét từng thay đổi trên các mẫu được truy cập nhiều nhất, chúng tôi đã đưa ra một danh sách ý tưởng về cách cải thiện.

Giảm mức thay đổi bố cục

Chúng tôi tập trung vào 4 khía cạnh có thể giúp giảm sự thay đổi bố cục: - quảng cáo - hình ảnh - tiêu đề - nội dung nhúng

Quảng cáo

Quảng cáo sẽ tải sau lần vẽ đầu tiên thông qua JavaScript. Một số vùng chứa mà các thành phần này tải vào không có chiều cao được đặt trước.

Ảnh động của trang web Telegraph. Danh sách tin bài sẽ bị đẩy xuống khi quảng cáo tải phía trên.
Khối "Các tin bài khác" bên dưới quảng cáo sẽ được dịch chuyển xuống sau khi quảng cáo tải.

Mặc dù không biết chiều cao chính xác, nhưng chúng ta có thể đặt trước không gian bằng cách sử dụng kích thước quảng cáo phổ biến nhất được tải trong vùng quảng cáo.

Ảnh động của trang web Telegraph. Một hình chữ nhật giữ chỗ cho quảng cáo được đặt phía trên danh sách tin bài. Quảng cáo sẽ tải thay cho phần giữ chỗ mà không làm thay đổi bố cục.
Bằng cách đặt trước không gian cho quảng cáo, khối "Các tin bài khác" ở bên dưới sẽ giữ nguyên trạng thái tĩnh trước và sau khi quảng cáo tải.

Trong một số trường hợp, chúng tôi đã đánh giá sai chiều cao trung bình của quảng cáo. Đối với trình đọc máy tính bảng, khe này đã bị thu gọn.

Ảnh động về chế độ xem dành cho máy tính bảng của trang web Telegraph. Vùng giữ chỗ lớn hơn quảng cáo nên nội dung sẽ dịch chuyển lên sau khi quảng cáo tải.
Vùng quảng cáo thu gọn sau khi tải cho người đọc trên các thiết bị có kích thước máy tính bảng.

Chúng tôi đã xem lại khe và điều chỉnh chiều cao để sử dụng kích thước phổ biến nhất.

Ảnh động về chế độ xem dành cho máy tính bảng của trang web Telegraph. Khi phần giữ chỗ khớp với kích thước quảng cáo, sẽ không có thay đổi bố cục nào khi quảng cáo tải.
Đảm bảo không gian mà chúng tôi dành riêng cho vị trí quảng cáo khớp với chiều cao thường được phân phát nhất của quảng cáo.

Hình ảnh

Nhiều hình ảnh trên trang web được tải lười và có không gian dành riêng cho chúng.

Ảnh động về quá trình tải thẻ xem trước bài viết.
Tải từng phần hình ảnh mà không làm gián đoạn bố cục.

Tuy nhiên, hình ảnh cùng dòng ở đầu bài viết không có không gian được đặt trước trên vùng chứa, cũng như không có thuộc tính chiều rộng và chiều cao liên kết với các thẻ. Điều này khiến bố cục thay đổi khi các thành phần này tải vào.

Ảnh động về quá trình tải trang bài viết. Khi hình ảnh chính tải ở đầu trang, văn bản sẽ di chuyển xuống.
Sự thay đổi bố cục do hình ảnh chính của bài viết gây ra.

Bạn chỉ cần thêm các thuộc tính chiều rộng và chiều cao vào hình ảnh để đảm bảo bố cục không thay đổi.

Ảnh động của trang bài viết đang tải với phần giữ chỗ dành cho hình ảnh chính. Khi hình ảnh chính tải ở đầu trang, bố cục sẽ không thay đổi.
Hình ảnh chính của bài viết đang tải mà không làm bố cục thay đổi.

Tiêu đề nằm bên dưới nội dung trong mã đánh dấu và được đặt ở đầu trang bằng CSS. Ý tưởng ban đầu là ưu tiên tải nội dung trước khi điều hướng, tuy nhiên điều này đã khiến trang tạm thời chuyển đổi.

ALT_TEXT_HERE
Tiêu đề của trang tải không tinh tế.

Việc di chuyển tiêu đề lên đầu phần đánh dấu cho phép trang hiển thị mà không cần chuyển đổi này.

ALT_TEXT_HERE
Bố cục không còn bị gián đoạn bởi tiêu đề của quá trình tải trang.

Nhúng

Một số nội dung nhúng thường dùng có tỷ lệ khung hình được xác định. Ví dụ: video trên YouTube. Trong khi trình phát đang tải, chúng ta sẽ lấy hình thu nhỏ từ YouTube và sử dụng hình thu nhỏ đó làm phần giữ chỗ trong khi video tải.

Khe trình phát video đang tải hình thu nhỏ có độ phân giải thấp trong khi trình phát video đang tải.
Khe trình phát video đang tải hình thu nhỏ có độ phân giải thấp trong khi trình phát video tải.

Đo lường tác động

Chúng tôi có thể dễ dàng đo lường tác động ở cấp tính năng bằng cách sử dụng các công cụ được đề cập ở đầu bài viết. Tuy nhiên, chúng tôi muốn đo lường CLS ở cả cấp mẫu và cấp trang web. Tổng hợp lại, chúng tôi đã sử dụng SpeedCurve để xác thực các thay đổi trong cả giai đoạn tiền sản xuất và sản xuất.

Biểu đồ SpeedCurve cho thấy điểm CLS giảm mạnh.
Theo dõi tiến trình CLS một cách tổng hợp bằng SpeedCurve.

Sau đó, chúng ta có thể xác thực kết quả trong dữ liệu RUM (do mPulse cung cấp) sau khi mã đã được phát hành chính thức.

Biểu đồ mPulse cho thấy điểm CLS giảm.
Xác thực các điểm cải thiện về CLS trên toàn trang web bằng dữ liệu RUM mPulse trước và sau khi thực hiện các thay đổi.

Việc kiểm tra dữ liệu RUM giúp chúng tôi có thể tin tưởng rằng những thay đổi mà chúng tôi đang thực hiện đang có tác động tích cực đến độc giả.

Số liệu cuối cùng mà chúng ta xem xét là dữ liệu RUM mà Google thu thập. Điều này đặc biệt quan trọng hiện nay vì các chỉ số này sẽ sớm ảnh hưởng đến thứ hạng trang. Trước tiên, chúng tôi đã sử dụng Báo cáo trải nghiệm người dùng trên Chrome, cả trong dữ liệu cấp nguồn gốc hằng tháng có sẵn thông qua trang tổng quan về CrUX, cũng như bằng cách truy vấn BigQuery để truy xuất dữ liệu p75 trong quá khứ. Bằng cách này, chúng tôi dễ dàng nhận thấy rằng đối với tất cả lưu lượng truy cập do CrUX đo lường, CLS ở phân vị thứ 75 của chúng tôi đã cải thiện 250% từ 0,25 lên 0,1 và nhóm vượt qua của chúng tôi đã tăng từ 57% lên 72%.

Trang tổng quan CrUX cho thấy CLS p75 của telegraph.co.uk là 0,1.
Kết quả từ Trang tổng quan Crux.
BigQuery cho thấy các giá trị p75 cải thiện theo từng tháng, từ 0,25 xuống 0,1.
Quy trình chạy BigQuery cho thấy các giá trị p75 từ năm 2021 đến nay.

Ngoài ra, chúng tôi có thể sử dụng API Báo cáo trải nghiệm người dùng trên Chrome và tạo một số trang tổng quan nội bộ được chia thành các mẫu.

Trang tổng quan nội bộ cho thấy điểm số trung bình là 76,2 (tốt), 9,3 (cần cải thiện) và 14,6 (kém).
Bảng tổng quan nội bộ sử dụng API Báo cáo trải nghiệm người dùng trên Chrome để làm nổi bật điểm trung bình và những trang hoạt động kém nhất bằng cách sử dụng mẫu đó.

Tránh hồi quy CLS

Một khía cạnh quan trọng để cải thiện hiệu suất là tránh hồi quy. Chúng tôi đã thiết lập một số ngân sách hiệu suất cơ bản cho các chỉ số chính và đưa CLS vào đó.

Trang tổng quan về ngân sách hiệu suất cho thấy các bước kiểm tra tổng hợp đo lường CLS trên một số mẫu có lưu lượng truy cập cao. Ngân sách hiện được đặt là 0,025.

Nếu vượt quá ngân sách, quy trình kiểm thử sẽ gửi thông báo đến một kênh Slack để chúng tôi có thể điều tra nguyên nhân. Chúng tôi cũng đã thiết lập báo cáo hằng tuần để ngay cả khi các mẫu vẫn nằm trong ngân sách, chúng tôi vẫn biết được mọi thay đổi có tác động tiêu cực.

Chúng tôi cũng dự định mở rộng ngân sách để sử dụng dữ liệu RUM cũng như dữ liệu tổng hợp, sử dụng mPulse để thiết lập cả cảnh báo tĩnh và có thể phát hiện bất thường để chúng tôi biết được mọi thay đổi bất thường.

Điều quan trọng là chúng ta phải chú ý đến CLS khi tiếp cận các tính năng mới. Nhiều thay đổi mà tôi đề cập đến là những thay đổi mà chúng tôi đã phải khắc phục sau khi phát hành cho độc giả. Chúng tôi sẽ cân nhắc đến độ ổn định của bố cục khi thiết kế giải pháp cho mọi tính năng mới trong tương lai để tránh mọi thay đổi bố cục không mong muốn ngay từ đầu.

Kết luận

Những điểm cải tiến mà chúng tôi đã thực hiện cho đến nay khá dễ triển khai và có tác động đáng kể. Nhiều thay đổi mà tôi đã nêu trong bài viết này không mất nhiều thời gian để triển khai và chúng được áp dụng cho tất cả các mẫu thường dùng nhất, tức là chúng đã có tác động tích cực rộng rãi đến độc giả của chúng tôi.

Chúng tôi vẫn cần cải thiện một số khía cạnh của trang web. Chúng tôi đang tìm hiểu các cách có thể làm nhiều việc hơn về logic phía máy khách ở phía máy chủ, nhờ đó cải thiện CLS hơn nữa. Chúng tôi sẽ tiếp tục theo dõi và giám sát các chỉ số của mình nhằm mục đích liên tục cải thiện các chỉ số đó và mang đến cho độc giả trải nghiệm người dùng tốt nhất có thể.