Hướng dẫn sử dụng định dạng WebP cho hình ảnh trong WordPress.
Nếu bạn chưa biết thì WebP chính là một trong những chìa khóa quan trọng giúp WP Căn bản có được tốc độ load “thần sầu” như ngày hôm nay, bên cạnh những bí quyết đã được bật mí trước đó. Với WebP, các bạn có thể giảm page-size đi đáng kể nhờ dung lượng của ảnh ở định dạng WebP thấp hơn rất nhiều so với PNG hay JPG/JPEG truyền thống. Việc sử dụng WebP trong WordPress hiện tại cũng đã trở nên rất dễ dàng nhờ sự trợ giúp của một số plugin chuyên dụng.
Tham khảo thêm:
- ShortPixel – Plugin nén ảnh giá rẻ tốt nhất dành cho WordPress
- EWWW Image Optimizer – Sự thay thế tuyệt vời cho Smush.It
WebP là gì?
WebP là một định dạng ảnh mới, được phát triển bởi Google, với mục tiêu giảm dung lượng giúp website load nhanh hơn mà không làm ảnh hưởng nhiều đến chất lượng thực tế. Với hình thức nén lossless (không giảm chất lượng), hình ảnh ở định dạng WebP có thể nhẹ hơn định dạng PNG đến 22%. Còn với hình thức nén lossy (giảm chất lượng), hình ảnh ở định dạng WebP có thể nhẹ hơn định dạng JPG/JPEG lên đến 34%. Đây là những con số rất đáng kể, đặc biệt là với hình ảnh có kích thước lớn.
Những trình duyệt nào hỗ trợ WebP?
Không phải tất cả trình duyệt web hiện nay đều hỗ trợ định dạng WebP. Tuy nhiên, các trình duyệt web phổ biến như Google Chrome, Mozilla Firefox, Microsoft Edge, Safari hay Opera đều đã hỗ trợ định dạng này.
Ghi chú:
- Màu xanh: đã hỗ trợ WebP.
- Màu đỏ: chưa hỗ trợ WebP.
Sử dụng định dạng WebP trong WordPress
Để sử dụng định dạng WebP trong WordPress, các bạn cần tiến hành 2 bước căn bản sau đây:
Tạo định dạng WebP cho hình ảnh
Các plugin nén ảnh phổ biến hiện nay như ShortPixel, EWWW Image Optimizer, Optimus… đều đã được tích hợp sẵn công cụ tạo ảnh WebP tự động cho WordPress. Trong một bài viết cách đây không lâu, tôi đã hướng dẫn các bạn cách sử dụng plugin ShortPixel để tạo ảnh WebP. Các bạn có thể tham khảo lại thông qua link ở đầu bài viết này.
Tuy nhiên, ShortPixel không phải là một dịch vụ miễn phí. Đo đó, nếu muốn nén ảnh với số lượng lớn, các bạn cần phải mua các gói credit của họ. Theo đánh giá của tôi, ShortPixel là nhà cung cấp có mức giá rẻ nhất trong số các dịch vụ nén ảnh trả phí. Hiệu suất nén của nó cũng thuộc hàng tốt nhất. WP Căn bản cũng đang sử dụng dịch vụ này. Đăng ký mua credit ShortPixel theo link dưới đây nếu bạn có nhu cầu tương tự:
Ngoài ra, nếu đang sử dụng dịch vụ WordPress Hosting do WP Căn bản cung cấp hoặc các loại hosting chạy Web Server LiteSpeed/ OpenLiteSpeed, các bạn có thể sử dụng plugin LiteSpeed Cache để nén và tạo ảnh WebP. Tham khảo thêm: Hướng dẫn nén ảnh bằng plugin LiteSpeed Cache.
Một giải pháp khác mà các bạn cũng có thể tham khảo đó là: Tạo ảnh WebP miễn phí với plugin WebP Converter for Media.
Kích hoạt WebP cho website
Sau khi tạo ảnh với định dạng WebP, các bạn cần phải kích hoạt chúng để trình duyệt web có thể nhận biết được. Để kích hoạt WebP, các bạn có thể sử dụng một trong 2 phương thức sau:
Sử dụng file .htaccess hoặc file config
Đối với Web Server Apache hoặc LiteSpeed, các bạn cần chèn đoạn code sau vào file .htaccess
của thư mục cài đặt WordPress:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_ACCEPT} image/webp RewriteCond %{DOCUMENT_ROOT}/$1.webp -f RewriteRule ^(wp-content/uploads.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1] </IfModule> <IfModule mod_headers.c> Header append Vary Accept env=REDIRECT_accept </IfModule> AddType image/webp .webp
Đối với Web Server NginX, các bạn thêm đoạn code sau đây vào file NginX config (nginx.conf
):
# http config block map $http_accept $webp_ext { default ""; "~*webp" ".webp"; } # server config block location ~* ^/wp-content/.+\.(png|jpg)$ { add_header Vary Accept; try_files $uri$webp_ext $uri =404; }
Tuy nhiên, việc sử dụng code thường tiềm ẩn nhiều rủi ro nên chúng tôi khuyến khích các bạn nên sử dụng plugin.
Sử dụng plugin ShortPixel
Nếu bạn sử dụng plugin ShortPixel để tạo ảnh WebP thì bản thân nó cũng đã được trang bị sẵn tính năng load ảnh. Các bạn chỉ cần tick vào mục Deliver the next generation versions of the images in the front-end sau đó chọn một trong hai tùy chọn bên dưới là được.
Trong đó:
- Using the <PICTURE> tag syntax: thay thế các tag <img> bằng <picture> để load ảnh WebP.
- Without altering the page code (via .htaccess): sử dụng file
.htaccess
để load ảnh WebP.
Hãy kiểm tra từng cách để có sự lựa chọn phù hợp nhất cho website của bạn.
Sử dụng plugin Cache Enabler
Đây là một trong số ít các plugin miễn phí có hỗ trợ tạo bản cache với định dạng WebP. Cách sử dụng của plugin này khá đơn giản. Các bạn chỉ cần cài đặt và kích hoạt plugin Cache Enabler (download).
Tiếp theo, truy cập vào Settings => Cache Enabler. Thiết lập như hình bên dưới và lưu lại.
Lưu ý:
- Deactive và xóa bỏ các plugin tạo cache mà bạn đang sử dụng trước khi cài đặt plugin Cache Enabler để tránh bị xung đột.
- Định dạng WebP chỉ hoạt động trên bản cache. Do đó nếu bạn đang đăng nhập thì WebP sẽ không hoạt động.
Sử dụng plugin LiteSpeed Cache
Nếu website WordPress của bạn đang hoạt động trên Web Server LiteSpeed/ OpenLiteSpeed, bạn có thể load ảnh WebP thông qua plugin LiteSpeed Cache. Tham khảo bài viết “Hướng dẫn load ảnh WebP bằng plugin LiteSpeed Cache” để biết thêm chi tiết.
Kiểm tra WebP
Để biết định dạng WebP đã hoạt động bình thường hay chưa, các bạn truy cập web thông qua một trình duyệt có hỗ trợ WebP, chẳng hạn Google Chrome.
Click chuột phải vào 1 trang bất kỳ, chọn Inspect => chọn tab Network => chọn mục Img => Tải lại trang (F5) và xem cột Type. Chúc các bạn thành công!
Bạn có đang sử dụng định dạng WebP trên website của mình? Bạn đánh giá thế nào về ảnh hưởng của nó đối với tốc độ load của site? Hãy chia sẻ quan điểm và ý kiến của bạn với chúng tôi trong khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
ý e là Chrome cho Iphone với Ipad ấy ạ. e nghĩ bản Chrome đó vẫn hỗ trợ nhưng KHÔNG :((
Ý mình là Chrome Android đã hỗ trợ thì trước sau gì Chrome iOS cũng hỗ trợ thôi. Ngay cả Safari cũng đang trên lộ trình rồi mà. :P
plugin webp cũng ok phải không anh?
Là plugin nào bạn nhỉ?
Thank Hiếu. Mấy hôm ngồi đọc mấy chục bài trên web của c. :D Nhiều bài bổ ích lắm. Với mình muốn hỏi là mình có dung EWW để nén ảnh giống hướng dẫn của bạn và chuyển các file ảnh về webp nhưng trên hositng lại tồn tại song song cả file jpg của ảnh. Như vậy làm nặng thêm hosting nhỉ.
– Nếu sau này mình up ảnh mới, mình có thể chuyển file ảnh sang webp trước rồi upload lên web mà không cần EWW nữa nhỉ
Không phải trình duyệt web nào cũng hỗ trợ ảnh WebP bạn nhé. Đó là lúc cần đến ảnh JPG hay PNG để hiển thị. Do vậy bạn không thể chỉ duy trì mỗi ảnh WebP trên host được.
OK Hiếu. Mình cảm ơn <3.
so với ảnh jpg hay png thì có hiệu quả cho SEO hơn ko bạn
Có bạn nhé. Ảnh WebP thường nhẹ hơn JPG và PNG nên sẽ giúp website load nhanh hơn => có lợi hơn trong SEO.
NHưng bù lại toàn bộ EXIF sẽ mất. Dữ liệu này để google đọc về ảnh là không còn
Với nhu cầu thông thường thì ai cần đến EXIF làm gì đâu bạn, trừ các hình ảnh cần thông tin để xác định bản quyền, hình ảnh nghệ thuật… Nếu bạn muốn SEO hình ảnh thì có thể sử dụng từ khóa trong alt-text, caption, tên hình ảnh… mà. :P
Cảm ơn bài viết của admin, em có kiểm tra website của admin trên PageSpeed Insights thì cho kết quả 80 điểm trên mobile và 100 trên pc. Tiện đây em xin hỏi là website admin xài plugin gì để tối ưu đạt tốc độ như vậy ạ? Em xin cảm ơn admin.
Bạn xem bài viết “Bật mí về các công nghệ mà WP Căn bản đang sử dụng” nhé.
Mình có đọc bài Thủ thuật chuyển đổi “đồng loạt” mọi định dạng ảnh sang WebP https://ghostfam.com/archive/thu-thuat-chuyen-doi-dong-loat-moi-dinh-dang-anh-sang-webp/
Nhưng cài trên Windows không chạy được. Hiếu có cách nào khác để chuyển đổi hàng loạt như này không?
Bạn thử sử dụng phần mềm WebP Converter xem sao nhé.
Mình có thắc mắc khi dùng plugin chuyển từ JPG, PNG -> Wepb, mình mở ảnh thấy chấm đuôi .jpg.webp hoặc png.webp. https://wpcanban.com/wp-content/uploads/2016/12/su-dung-dinh-dang-webp-cho-hinh-anh-trong-wordpess.png.webp
Như vậy có làm sao không? Tại mình có tham khảo mấy web code tay ảnh của họ chỉ .webp là hết chứ không phải .jpg.webp…
Mục đích của việc tạo ảnh đuôi .png.webp hoặc .jpg.webp thay vì chỉ có duy nhất đuôi .webp là để nó tương thích với các dịch vụ CDN như CloudFlare đó bạn. Nếu bạn tạo đuôi .webp thôi + website cài CloudFlare CDN thì ảnh sẽ không load được trên các trình duyệt web không hỗ trợ ảnh WebP.
Mình dùng plugin ShortPixel, mặc định chỉ tạo ảnh đuôi .webp, nên phải chèn thêm code vào file wp-config.php để bắt nó tạo ảnh có đuôi .png.webp và .jpg.webp thì mới load ảnh được với plugin LiteSpeed Cache và mới tương thích với CloudFlare CDN.
P/s: Bạn tham khảo bài viết “Hướng dẫn load ảnh WebP bằng plugin LiteSpeed Cache” để biết thêm chi tiết nhé.
em cũng muốn dùng webp cho web của công ty nhưng khâu cover ảnh cũng khổ, mà làm có 1 mình nên tạm thời chưa động đến.
Với lại iphone không biết đã hỗ trợ định dạng này chưa bác nhỉ?
Hỗ trợ rồi bạn nhé. Từ phiên bản Safari 14 trở lên là hỗ trợ ảnh WebP rồi. Mà trình duyệt nào chưa hỗ trợ ảnh WebP thì nó sẽ load ảnh PNG/JPG mà. Sao phải ngại nhỉ? Mọi thứ đã có plugin làm hết. :)
em cũng đang chuyển ảnh sang webp để tối ưu tốc độ
Thanks bạn đã chia sẻ. Cho mình hỏi chút là với những trình duyệt không hỗ trợ định dạng ảnh Web thì nó sẽ báo lỗi hay là không hiện ảnh thôi?
Đối với những trình duyệt không hỗ trợ ảnh WebP thì nó sẽ hiển thị ảnh PNG/ JPG như bình thường bạn nhé. Hoàn toàn không có lỗi gì cả.