Định dạng ảnh WebP mang lại lợi ích vượt trội về tốc độ tải trang nhờ kích thước file nhỏ hơn 25-35% so với JPEG và PNG. Tuy nhiên, nhiều người dùng WordPress gặp lỗi khi upload WebP: ảnh không hiển thị, báo lỗi “HTTP error”, hoặc WordPress từ chối upload. Lỗi này thường xuất phát từ cấu hình máy chủ, phiên bản PHP, hoặc xung đột plugin. Bài viết này sẽ phân tích toàn bộ nguyên nhân và cung cấp giải pháp khắc phục một cách chi tiết, từ cơ bản đến nâng cao, giúp Bản chất vấn đề

Lỗi upload WebP trong WordPress xảy ra khi hệ thống từ chối chấp nhận file ảnh có đuôi.webp. Biểu hiện thường thấy: ảnh không hiện trong thư viện, báo lỗi “Sorry, this file type is not permitted for security reasons”, hoặc “HTTP error” khi upload. Nguyên nhân cốt lõi là WordPress mặc định chỉ cho phép một số loại file (jpeg, png, gif) và server hosting có thể thiếu thư viện GD hoặc Imagick hỗ trợ WebP.
Bản chất của vấn đề nằm ở hai lớp: thứ nhất, WordPress kiểm tra MIME type và extension của file; thứ hai, server cần có khả năng xử lý ảnh WebP. Nếu một trong hai điều kiện không được đáp ứng, quá trình upload sẽ thất bại.
Nguyên nhân phổ biến khiến WordPress không upload được WebP
Có 5 nguyên nhân chính dẫn đến lỗi này. webp
get_allowed_mime_types không bao gồm WebPupload_max_filesize quá nhỏ so với dung lượng ảnh WebPCách kiểm tra hosting có hỗ trợ WebP hay không

Trước khi can thiệp vào code, bạn cần xác định server hosting của mình có khả năng xử lý WebP hay chưa. Cách đơn giản nhất là tạo một file PHP với nội dung phpinfo() và kiểm tra phần GD hoặc Imagick.
- Với GD Library: Tìm dòng “WebP Support” trong bảng thông tin. Nếu hiển thị “enabled” nghĩa là server hỗ trợ.
- Với Imagick: Kiểm tra định dạng được hỗ trợ: tìm “WEBP” trong danh sách “Supported formats”.
Nếu server chưa hỗ trợ WebP, bạn cần liên hệ nhà cung cấp hosting để yêu cầu kích hoạt. Đa số các host hiện nay (như Hostinger, SiteGround, Kinsta) đều đã hỗ trợ WebP mặc định. Riêng một số host không hỗ trợ WebP ở gói rẻ.
Hướng dẫn sửa lỗi WordPress upload WebP từng bước
Bước 1: Kích hoạt WebP trong file wp-config.php
WordPress có một hằng số cho phép các MIME type bổ sung. Thêm dòng sau vào file wp-config.php ngay trước dòng / That's all, stop editing! /:
define('ALLOW_WEBP', true);
Thực tế, hằng số này không tồn tại trong WordPress mặc định, nhưng nhiều plugin tối ưu hóa sử dụng nó. Cách an toàn hơn là thêm filter vào functions.php, nhưng trước hết hãy thử bước này.
Bước 2: Thêm MIME type WebP vào WordPress bằng code
Thêm đoạn code sau vào file functions.php của theme (hoặc dùng plugin code snippet):
add_filter('upload_mimes', 'webp_upload_mimes');
function webp_upload_mimes($mimes) { $mimes['webp'] = 'image/webp'; return $mimes;
}
Đoạn code này đăng ký.webp như một MIME type hợp lệ. Sau khi thêm, hãy upload thử một file WebP từ thư viện media.
Bước 3: Kiểm tra thư viện GD / Imagick trên máy chủ
Nếu hosting đã hỗ trợ GD hoặc Imagick nhưng WordPress vẫn báo lỗi, bạn cần kiểm tra phiên bản PHP. WebP được hỗ trợ đầy đủ từ PHP 5.6 trở lên với GD, và PHP 7.0+ với Imagick. Nếu server dùng PHP 5.5 trở xuống, hãy yêu cầu nâng cấp PHP lên 7.4 hoặc 8.x.
Bước 4: Vô hiệu hóa plugin xung đột
Một số plugin bảo mật như Wordfence, iThemes Security, hoặc plugin tối ưu ảnh như EWWW Image Optimizer có thể chặn WebP vì lý do bảo mật. Hãy tạm thời vô hiệu hóa từng plugin và upload thử. Nếu thành công, bạn cần cấu hình plugin đó cho phép WebP.
Bước 5: Tăng giới hạn upload file trong PHP
Dù ít gặp, nhưng nếu file WebP có dung lượng lớn (ví dụ ảnh 4K), bạn cần chỉnh sửa file php.ini hoặc .htaccess:
upload_max_filesize = 64M post_max_size = 64M
Sau đó khởi động lại server hoặc liên hệ hosting để thay đổi có hiệu lực.
Sai lầm thường gặp khi xử lý lỗi WebP trong WordPress

- Chỉ thêm MIME type mà không kiểm tra server: Nhiều người copy code từ internet mà không kiểm tra hosting có hỗ trợ WebP hay không. Kết quả là code không có tác dụng.
- Dùng plugin không tương thích: Các plugin như WebP Express hoặc Cache Enabler có thể tự động chuyển đổi ảnh, nhưng nếu xung đột với theme, gây lỗi upload.
- Không update WordPress lên phiên bản mới nhất: WordPress 5.8 trở lên đã hỗ trợ WebP tốt hơn. Nếu bạn dùng bản cũ, việc upload WebP dễ gặp lỗi.
- Bỏ qua cảnh báo lỗi từ media library: Lỗi “HTTP error” thường bị hiểu nhầm là lỗi kết nối, nhưng thực chất là do server không xử lý được WebP.
So sánh các giải pháp: Code thủ công vs Plugin
| Giải pháp | Ưu điểm | Nhược điểm |
|---|---|---|
| Thêm code vào functions.php | Nhẹ, không phụ thuộc plugin, kiểm soát hoàn toàn | Yêu cầu kiến thức PHP, dễ gây lỗi nếu sai cú pháp |
| Plugin WebP Upload (WebP Uploads) | Cài đặt nhanh, không cần code, giao diện thân thiện | Plugin có thể không cập nhật kịp thời, gây xung đột |
| Plugin tối ưu ảnh (ShortPixel, Smush) | Hỗ trợ chuyển đổi và tự động upload WebP | Tiêu tốn tài nguyên, có thể thay đổi chất lượng ảnh |
Đối với người dùng không chuyên, sử dụng plugin “WebP Uploads” là cách nhanh nhất. Plugin này tự động thêm MIME type và kiểm tra server compatibility. Tuy nhiên, nếu bạn muốn tối ưu hiệu suất, code thủ công luôn là lựa chọn tốt hơn.
Lưu ý quan trọng khi làm việc với WebP trên WordPress

- Trình duyệt cũ không hỗ trợ: WebP được hỗ trợ bởi Chrome, Firefox, Edge, Opera, Safari 14+. Đối với trình duyệt cũ, bạn cần có fallback sang JPEG/PNG.
- Quality của WebP có thể bị giảm nếu không cấu hình đúng: Khi chuyển đổi từ JPEG sang WebP, nếu để quality quá thấp (dưới 70%), ảnh sẽ bị vỡ.
- WebP không hỗ trợ alpha channel trong một số trường hợp: Nếu ảnh trong suốt (PNG), WebP có thể giữ được nét nhưng dung lượng lớn hơn.
- SEO: Google ưu tiên các site dùng WebP vì tốc độ tải nhanh hơn. Tuy nhiên, cần đảm bảo thẻ alt và caption đầy đủ.
Hướng dẫn kiểm tra lỗi chi tiết bằng công cụ
Nếu các bước trên chưa giải quyết được vấn đề,
Có thể do server không hỗ trợ WebP ở mức thư viện ảnh. Hãy kiểm tra phpinfo() để xác nhận GD hoặc Imagick có enable WebP không. Nếu server không hỗ trợ, code sẽ vô dụng.
Làm thế nào để tự động chuyển đổi ảnh sang WebP khi upload?
Sử dụng plugin như ShortPixel hoặc Smush. Các plugin này tự động nén và chuyển đổi ảnh gốc sang WebP, giữ nguyên file gốc làm fallback.
WebP giúp giảm dung lượng ảnh, cải thiện tốc độ tải trang – một yếu tố xếp hạng quan trọng. Tuy nhiên, nếu bạn chỉ dùng WebP mà không có fallback, trình duyệt cũ sẽ không hiển thị ảnh, gây trải nghiệm xấu. Hãy dùng thẻ <picture> hoặc plugin hỗ trợ fallback.
Có an toàn khi dùng plugin để thêm WebP không?
Hầu hết các plugin phổ biến đều an toàn, nhưng bạn nên chọn plugin có đánh giá cao và cập nhật thường xuyên. Tránh dùng plugin không rõ nguồn gốc vì có thể chứa mã độc.
Nếu hosting không hỗ trợ WebP, có cách nào upload được không?
Bạn có thể nén ảnh WebP từ máy tính trước, nhưng WordPress vẫn sẽ từ chối nếu không có MIME type. Cách duy nhất là chuyển sang hosting hỗ trợ hoặc dùng CDN có tính năng chuyển đổi tự động.
Kết luận
Lỗi WordPress upload WebP thường xuất phát từ việc thiếu cấu hình MIME type hoặc server không hỗ trợ thư viện xử lý ảnh. Bằng cách thêm code vào functions.php, kiểm tra hosting, và tạm thời vô hiệu hóa plugin xung đột, bạn có thể khắc phục triệt để. Đối với người dùng không rành kỹ thuật, plugin “WebP Uploads” là giải pháp nhanh chóng. Hãy luôn kiểm tra phiên bản WordPress và PHP, đồng thời tạo fallback cho trình duyệt cũ để đảm bảo trải nghiệm người dùng tốt nhất. Sau khi sửa lỗi, bạn sẽ tận dụng được lợi thế về tốc độ và SEO mà WebP mang lại.
- Landing Page Bán Hàng Elementor: Bí Quyết Tạo Trang Đích Chuyển Đổi Cao Từ A-Z
- Elementor Không Hoạt Động: Nguyên Nhân Và 9 Cách Khắc Phục Nhanh Nhất
- Woocommerce sau clone website bị lỗi: Nguyên nhân, cách khắc phục toàn diện từ A-Z
- WooCommerce không tương thích hosting: Nguyên nhân, dấu hiệu và giải pháp toàn diện
- Hiệu suất website WordPress là gì? Bí quyết tối ưu toàn diện cho tốc độ và trải nghiệm người dùng







