Categories CDN Nén ảnh

Vài nhận xét về dịch vụ tối ưu ảnh của LiteSpeed

hoa hướng dương LQIP

Các plugin tối ưu ảnh luôn nằm trong nhóm plugin quan trọng nhất với bất kỳ website nào đặc biệt là các trang web nhiều ảnh như trang thương mại điện tử hoặc kiểu blog hướng dẫn sử dụng.

LiteSpeed Cache (LSCache) là plugin toàn diện nhất về mảng tăng tốc cho website WordPress, đặc biệt là trên các trang có lưu lượng truy cập lớn hoặc/và có nhiều bài viết.

LSCache cũng tích hợp sẵn dịch vụ nén ảnh trong plugin, và hôm nay tôi sẽ thử đào sâu nhận xét xem ưu & nhược điểm của nó là gì.


#1. Nén ảnh qua cloud

Giống ShortPixel, kiểu nén ảnh của LSCache là thông qua cloud chứ không sử dụng tài nguyên máy chủ kiểu EWWW (trên một số hosting, EWWW không nén được ảnh vì nó bị chặn một số hàm PHP, người quản trị web thông thường khắc phục điều này vô cùng khó khăn). LSCache phát triển cloud riêng của họ có tên QUIC cloud để thực hiện nhiệm vụ này.

Có thể bạn quan tâm: bài hướng dẫn kết nối LiteSpeed Cache với QUIC.cloud

Sử dụng cloud có lợi là họ có thể áp dụng trên bất cứ nền tảng hosting, web server nào chứ không phải phụ thuộc vào web server độc quyền của chính họ hay của người dùng. Ngoài ra điều này cũng có lợi cho người dùng, khi máy chủ không bị hao tốn tài nguyên.

Nhưng rõ ràng tối ưu qua cloud làm LiteSpeed vất vả hơn nhiều, họ phải tải ảnh về máy chủ của mình, thực hiện tối ưu hóa, sau đó đẩy ảnh đó về host gốc của bạn. Điều đó là lý do tốc độ nén ảnh của QUIC không thực sự ấn tượng, nhưng cũng không đến nỗi chậm.


#2. Miễn phí

Điều tuyệt vời là dịch vụ nén ảnh của LiteSpeed Cache hoàn toàn MIỄN PHÍ trong một giới hạn rất rộng rãi, trong khi chất lượng không thua kém bất kỳ plugin nén ảnh thương mại nào, kể cả chất lượng cao như ShortPixel.

Tuy nhiên, vì sử dụng cloud vốn không rẻ, nên họ có phân cấp người dùng.

phân cấp người dùng khi tối ưu ảnh

Như trên bạn có thể thấy:

  • Dịch vụ tối ưu ảnh với hàng đợi tiêu chuẩn (Standard Queue) là miễn phí và không giới hạn với tất cả mọi người.
  • Với hàng đợi nhanh, tức là ảnh được tối ưu nhanh hơn (Fast Queue) họ có áp dụng các giới hạn rất cụ thể. Với gói cơ bản (basic) chỉ 1000 ảnh/tháng. Gói LiteSpeed Server là 5000 ảnh/tháng. Gói LiteSpeed Enterprise mà tôi đang dùng là 10000 ảnh/tháng. Nói chung, trừ khi bạn có đội ngũ viết bài lên đến hàng tá (có khả năng viết vài trăm bài/tháng), còn nếu không ngay cả gói thấp nhất cũng đủ cho bạn rồi (bạn viết từ 10 – 20 bài/tháng, mỗi bài khoảng 5 – 10 ảnh).

PS: Quota cho gói fast thường chỉ là vấn đề khi bạn mới chuyển website lớn về LiteSpeed, vì khi đó bạn sẽ có rất nhiều ảnh.

Với những ai có nhu cầu sử dụng cao hơn, LS cung cấp các gói có phí cho người dùng gồm cả mua trọn gói theo tháng (monthly subscriptions) và dùng đến đâu trả đến đấy (pay as you go).

các gói cho người có nhu cầu sử dụng cao

Tôi phải có lời khen với mô hình giá rất minh bạch và khôn ngoan này của LiteSpeed. Có gói miễn phí và trả phí. Trong miễn phí thì phân cấp các ưu tiên. Trong trả phí thì có đa dạng gói cho người dùng lựa chọn.


#3. Lazy load

LSCache có tùy chọn triển khai lazy load ảnh. Và họ sử dụng một trong các công nghệ lazy load hiện đại nhất đó là LQIP (ảnh chiếm chỗ chất lượng thấp) để ít ảnh hưởng đến trải nghiệm người dùng.

Ảnh minh họa (hoa hướng dương) đầu bài chính là ảnh LQIP của ảnh chất lượng bình thường dưới đây:

ảnh hoa hướng dương chất lượng bình thường

LQIP là công nghệ nhiều website lớn đang áp dụng, trong đó phải kể đến trang Medium.

Một công nghệ khác cũng hay được dùng khi lazy load ảnh là áp dụng ngưỡng kích hoạt tải ảnh. Ví dụ khi khung nhìn trình duyệt cách ảnh bên dưới độ 1000px là ảnh sẽ được tải. Plugin tốt về mảng này là Flying Imagesa3 Lazy Load.

Mỗi cái có ưu điểm riêng. LQIP sẽ cho tốc độ và khả năng tiết kiệm băng thông tốt hơn cách dùng “ngưỡng kích hoạt”, nhưng ngược lại “ngưỡng kích hoạt” không phải mất công tạo các ảnh giữ chỗ. Ngưỡng kích hoạt cũng phù hợp hơn khi máy chủ gốc của bạn ở xa người dùng, LQIP có khả năng gặp độ trễ trong trường hợp này.

LSCache cũng tạo ảnh LQIP thông qua cloud và áp dụng các giới hạn miễn phí tùy người dùng tương tự như các gói nén ảnh:

các góiLQIP free

Những ai có nhu cầu sử dụng cao hơn thì phải mua. Dễ nhận thấy là số lượng ảnh LQIP miễn phí không được rộng rãi như nén ảnh (kém hẳn 10 lần). Và tốc độ tạo ảnh LQIP phải nói là rất chậm.

Ví dụ về các ảnh LQIP do LSCache tạo:

Ảnh LQIP

Các ảnh LQIP khi tôi kiểm tra đều là ảnh SVG. Ảnh này có ưu điểm không bị vỡ khi phóng to thu nhỏ, không tăng dung lượng với kích thước lớn và có dung lượng tốt trên các ảnh có bố cục, màu sắc đơn giản, rất hợp khi áp dụng vào LQIP.

Định dạng SVG giúp LSCache có thể inline (nội tuyến) trực tiếp ảnh vào HTML, giúp tăng tốc và giảm ảnh hưởng tiêu cực đến trải nghiệm người dùng.

LSCache cũng có tùy chọn chất lượng ảnh của LQIP, mặc định là 4, nhưng bạn có thể để trong khoảng từ 1 – 20. Tuy nhiên nếu để quá cao, trang HTML của bạn có thể tăng dung lượng. Tôi thấy để chất lượng ảnh là 4 ổn trong phần lớn trường hợp.

Ngoài lazy load ảnh, LSCache còn lazy load cả video (iframe)- và họ đang làm tốt nhiệm vụ này (dù trước đây tôi nghĩ rằng không có gì đặc biệt), ngoài ra bạn có thể dùng thử plugin WP YouTube Lyte.

Các tùy chọn lazy load của LSCache cũng rất mạnh, chẳng hạn bạn chọn được các file ảnh hoặc class, hoặc class cha không cần lazy load, điều rất có ích cho các ảnh nằm trên màn hình đầu tiên như logo và ảnh minh họa đầu bài (featured image).


#4. Có backup

LiteSpeed cache tạo thư mục backup trên host gốc của bạn để trong trường hợp bạn không hài lòng với ảnh sau nén thì có thể khôi phục lại.

Nó cũng có tùy chọn chuyển qua lại giữa ảnh gốc và ảnh nén rất dễ dàng để bạn tiện so sánh, cũng như khắc phục vấn đề khi cần.

chuyển về ảnh gốc khi cần

Hầu hết các plugin nén ảnh đều có backup ảnh gốc dự phòng, nó thực sự cần thiết, như một hình thức bảo hiểm khi mà bạn “lỡ tay”. Tuy nhiên backup cũng có cái giá của nó:

  • Nó làm dung lượng sử dụng của bạn phình to ra, thường là gấp đôi, vì phần lớn dung lượng trên website là ảnh. Điều này thường không thành vần đề trên VPS, nhưng trên các gói shared hosting, vốn giới hạn dung lượng SSD thì nó có thể là trở ngại.
  • Nó làm các thao tác liên quan đến dữ liệu mất thời gian hơn, ví dụ như khi backup toàn bộ website, khi khôi phục website, khi chuyển hosting.

Mẹo loại bỏ backup: điều này tôi không khuyên tất cả mọi người, nhưng về mặt cá nhân, tôi thường dùng tính năng nén không mất chất lượng (do đó không làm chất lượng ảnh sau nén bị ảnh hưởng), sau đó không dùng tính năng backup, hoặc xóa các ảnh backup đi.


5. WebP

Ảnh định dạng webp cho hệ số nén tốt hơn mà chất lượng ngang ngửa JPG và PNG. Tôi từng dành kha khá thời gian tìm hiểu định dạng này cách đây khoảng 3 năm, và cũng từng áp dụng nó trên website có hơn 12 ngàn ảnh (tính cả ảnh thu nhỏ). LSCache giống ShortPixel giúp bạn tạo ảnh WebP và tích hợp nó vào mã nguồn của trang.

Về khoản tích hợp thì LSCache tốt hơn vì bản thân nó cũng là plugin cache luôn rồi, việc tương thích với nhau là hiển nhiên, còn ShortPixel với những plugin cache không hợp, việc cấu hình sẽ khá lộn xộn và phức tạp. Đó là chưa kể đến vai trò của máy chủ web nữa, NGINX tích hợp WebP tương đối khó, APACHE thì dễ hơn.

Ở thời điểm hiện tại tôi không mặn mà với webp cho lắm vì:

  • Nó nén tốt hơn jpg và png thật nhưng không quá nhiều.
  • Việc cấu hình nó không phải lúc nào cũng dễ dàng, dù với LSCache thì chuyện này rất dễ, nhưng với máy chủ khác, plugin nén ảnh, cache khác mọi chuyện lại phức tạp hơn.
  • Nó chưa được hỗ trợ trên tất cả các trình duyệt (đặc biệt là các phiên bản dưới 14 của Safari) nên bạn vẫn phải có dự phòng, tức là phải có cả ảnh JPG và PNG,…nữa. Nói cách khác là nhiều dung lượng ổ cứng hơn để lưu trữ.

6. CDN

Mặc định CDN trên QUIC.cloud không được kích hoạt, nếu muốn dùng bạn phải bật CDN ở cả LSCache và QUIC.

Bạn có thể đọc hướng dẫn này để biết cách làm.

Hiện tại CDN của QUIC vẫn ở dạng beta, có khả năng cache HTML và đặt nó tại các PoP, nhưng chất lượng vẫn chưa thực sự ấn tượng nên có lẽ nếu bạn đang ổn định với dịch vụ CDN nào đó khác hoặc máy chủ đã gần người dùng rồi thì không cần CDN của QUIC nữa.

[Cập nhật]: hiện chất lượng của QUIC đã được cải thiện rất nhiều, nhiều website của tôi đã quay trở lại dùng QUIC cloud, đặc biệt là mấy hosting ở xa người dùng, nhằm tận dụng tính năng cache HTML ở CDN của họ.

PS: để thực sự trải nghiệm CDN của QUIC, tôi quyết định cho trang Kiến càng bay về vùng đất mới này. Kết quả khá ấn tượng, tốc độ trang tốt, giá CDN cũng không hề đắt.

CDN cho ảnh thì tôi không dùng QUIC, không phải vì tốc độ nó kém hay giá đắt mà vì tỷ lệ cache hit ratio không cao như dịch vụ BunnyCDN. Nhưng nếu bạn không cần tối ưu sâu, thì dùng CDN của QUIC rất tiện, vì bạn không cần phải tạo subdomain riêng cho file static.


Kết luận

Nhìn chung tôi hài lòng với tính năng tối ưu ảnh của LSCache. Nếu có mong muốn cải tiến nào thì tôi mong là họ có tùy chọn lazy load ảnh kiểu “kích hoạt dựa trên ngưỡng” (để mọi người có đa dạng lựa chọn hơn) và tốc độ tối ưu ảnh cần nhanh hơn (đặc biệt là LQIP). Tôi biết dịch vụ tối ưu ảnh thật khó mà nhanh được vì dịch vụ đã miễn phí lại còn thông qua cloud.

Cuối cùng bạn nào muốn biết cách cài đặt plugin LiteSpeed Cache nâng cao thì tham khảo bài này nhé.

Xin chào vs hẹn gặp lại.

Back to Top