WordPress upload ảnh lỗi là một trong những vấn đề phổ biến nhất khiến người dùng đau đầu, đặc biệt là khi đang gấp rút đăng bài hoặc cập nhật giao diện. Lỗi này có thể biểu hiện dưới nhiều dạng: “HTTP error”, “Ảnh không tải lên được”, “An error occurred in the upload”, hoặc đơn giản là thanh progress dừng lại giữa chừng. Bài viết này sẽ phân tích toàn bộ nguyên nhân gốc rễ, từ cấu hình máy chủ đến xung đột plugin, đồng thời cung cấp các bước khắc phục cụ thể, có thể áp dụng ngay mà không cần can thiệp code phức tạp.
Nguyên nhân gốc rễ khiến WordPress upload ảnh lỗi

Lỗi upload ảnh trong WordPress thường không đến từ một nguyên nhân đơn lẻ. Nó liên quan đến sáu nhóm chính: giới hạn tài nguyên server, quyền thư mục, lỗi HTTP, xung đột plugin/theme, lỗi file.htaccess, và vấn đề từ phía WordPress core hoặc cấu hình PHP.
| Nhóm nguyên nhân | Nguyên nhân cụ thể | Dấu hiệu nhận biết | Mức độ phổ biến |
|---|---|---|---|
| Giới hạn tài nguyên | upload_max_filesize nhỏ, memory_limit thấp, max_execution_time ngắn | Lỗi “HTTP error” hoặc file dừng ở 99% | Rất cao |
| Quyền thư mục | Thư mục wp-content/uploads không có quyền ghi (755 hoặc 775) | Lỗi “Unable to create directory” hoặc ảnh không hiện | Cao |
| Xung đột plugin | Plugin tối ưu ảnh, bảo mật, cache gây can thiệp | Lỗi chỉ xảy ra khi bật plugin nào đó | Trung bình |
| Lỗi.htaccess | Quy tắc rewrite sai, dung lượng file quá lớn | Lỗi 500 hoặc upload bị gián đoạn | Thấp |
| Lỗi PHP | Phiên bản PHP không tương thích, extension GD/Imagick thiếu | Lỗi “Fatal error” hoặc ảnh upload xong bị hỏng | Trung bình |
| Lỗi WordPress | User role không có quyền upload, thư viện media bị lỗi cơ sở dữ liệu | Lỗi thông báo không rõ ràng, upload thành công nhưng không hiện | Thấp |
15 giải pháp khắc phục lỗi upload ảnh WordPress từ cơ bản đến nâng cao

1. Kiểm tra và tăng giới hạn upload file qua cPanel hoặc FTP
Đây là giải pháp đầu tiên và hiệu quả nhất cho hầu hết trường hợp WordPress upload ảnh lỗi. Hầu hết hosting chia sẻ đều giới hạn upload_max_filesize ở mức 2MB hoặc 8MB. Trong khi ảnh chất lượng cao thường từ 1-5MB, nếu bạn upload ảnh RAW hoặc ảnh panorama, dung lượng có thể lên đến 20-30MB. Để kiểm tra giới hạn hiện tại, vào Dashboard > Media > Add New, nhìn dòng “Maximum upload file size”. Nếu nhỏ hơn nhu cầu của bạn, hãy thực hiện một trong các cách sau:
- Vào cPanel > Select PHP Version > Options, tăng upload_max_filesize, post_max_size, memory_limit lên 256M hoặc cao hơn.
- Nếu không có cPanel, tạo file php.ini trong thư mục wp-admin và thêm dòng:
upload_max_filesize = 64Mpost_max_size = 64Mmemory_limit = 128Mmax_execution_time = 300. - Thêm vào file wp-config.php trước dòng “That’s all”:
@ini_set( 'upload_max_filesize', '64M' );@ini_set( 'post_max_size', '64M' );@ini_set( 'memory_limit', '128M' ); - Liên hệ nhà cung cấp hosting nếu không tự thay đổi được (một số host kín như GoDaddy, HostGator yêu cầu can thiệp từ họ).
2. Sửa quyền thư mục upload
Thư mục wp-content/uploads phải có quyền ghi (write) để WordPress có thể lưu ảnh. Nếu quyền sai, bạn sẽ thấy lỗi “Unable to create directory” hoặc upload thành công nhưng file không tồn tại. Dùng FTP client (FileZilla, CuteFTP) kết nối vào server, vào thư mục wp-content, chuột phải vào thư mục uploads, chọn File Permissions, đặt giá trị 755 cho thư mục và 644 cho file. Nếu vẫn lỗi, tạm thời đặt 777 trong lúc upload rồi chuyển lại 755. Lưu ý: 777 tiềm ẩn rủi ro bảo mật, chỉ dùng tạm thời.
3. Vô hiệu hóa từng plugin để kiểm tra xung đột
Plugin là thủ phạm thường trực gây ra lỗi upload ảnh. Các plugin tối ưu ảnh (Smush, ShortPixel, Imagify), plugin bảo mật (Wordfence, Sucuri), plugin cache (W3 Total Cache, WP Super Cache) thường can thiệp vào quá trình upload. Cách nhanh nhất: vào Dashboard > Plugins, chọn tất cả plugin, chọn Deactivate. Sau đó thử upload ảnh. Nếu thành công, kích hoạt từng plugin một và test lại để tìm ra plugin gây lỗi. Có một số plugin gây lỗi ngay cả khi kích hoạt, bạn cần xóa hoặc tìm bản thay thế.
4. Chuyển sang theme mặc định (Twenty Twenty-Four)
Theme tùy chỉnh đôi khi chứa các hàm xử lý ảnh không tương thích. Kích hoạt theme mặc định của WordPress (Twenty Twenty-Four, Twenty Twenty-Three) và kiểm tra. Nếu upload ảnh thành công, vấn đề nằm ở theme hiện tại. Bạn cần kiểm tra file functions.php của theme để tìm các đoạn liên quan đến media, image compression, hoặc custom post types can thiệp vào upload.
5. Tắt tính năng tạo ảnh thumbnail (image sub-sizes)
WordPress tự động tạo nhiều kích thước ảnh con (thumbnail, medium, large) khi upload. Nếu server yếu, quá trình này bị timeout dẫn đến lỗi. Cách khắc phục: cài plugin “Simple Image Sizes” và tắt tạo kích thước không cần thiết, hoặc dùng code sau thêm vào functions.php:
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) { unset( $sizes['medium_large'] ); unset( $sizes['1536x1536'] ); unset( $sizes['2048x2048'] ); return $sizes; } );
Điều này giảm tải đáng kể cho server, đặc biệt với ảnh dung lượng lớn.
6. Kiểm tra file.htaccess
File.htaccess hỏng hoặc có quy tắc sai có thể gây ra lỗi HTTP 500 khi upload. Để kiểm tra, rename file.htaccess trong thư mục gốc WordPress thành.htaccess_old, sau đó vào Dashboard > Settings > Permalinks, nhấn Save Changes để tạo lại file.htaccess mới. Thử upload lại. Nếu thành công, vấn đề là do file.htaccess cũ.
7. Tăng memory limit cho WordPress
Ngoài upload_max_filesize, memory_limit cũng rất quan trọng. Nếu memory_limit quá thấp, quá trình xử lý ảnh (đặc biệt là resize) sẽ bị dừng. Thêm dòng sau vào wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
Đối với một số host, bạn cần thêm define('WP_MAX_MEMORY_LIMIT', '256M'); để ghi đè toàn bộ.
8. Kiểm tra có đủ dung lượng đĩa trống không
Một nguyên nhân ít ai nghĩ tới: hosting đã hết dung lượng. Nếu tài khoản hosting của
Lỗi này thường do file ảnh bị hỏng, dung lượng quá lớn, hoặc server hết bộ nhớ. Kiểm tra kích thước file và thử nén ảnh trước khi upload. Nếu ảnh nhỏ vẫn lỗi, kiểm tra quyền thư mục uploads.
Có cách nào upload ảnh không qua FTP không?
Có,
Deactivate tất cả plugin, thử upload. Nếu thành công, kích hoạt từng plugin một và test lại sau mỗi lần. Có thể dùng plugin “Health Check & Troubleshooting” để kiểm tra mà không ảnh hưởng đến người dùng.
Tại sao upload ảnh thành công nhưng không hiển thị trong thư viện?
Nguyên nhân thường do bảng wp_postmeta bị lỗi, hoặc có plugin xóa metadata. Cài plugin “Regenerate Thumbnails” và chạy lại tất cả ảnh. Nếu vẫn lỗi, kiểm tra database bằng phpMyAdmin.
Lỗi “Unable to create directory” xuất hiện do đâu?
WordPress không thể tạo thư mục con trong wp-content/uploads. Kiểm tra quyền thư mục uploads (phải là 755), hoặc thư mục cha có đủ quyền ghi. Cũng có thể do server đã hết inodes.
Kết luận

WordPress upload ảnh lỗi không phải là vấn đề khó giải quyết nếu bạn hiểu rõ nguyên nhân. Hầu hết trường hợp đều xuất phát từ giới hạn tài nguyên server (upload_max_filesize, memory_limit) hoặc quyền thư mục. Bắt đầu bằng việc kiểm tra dung lượng file, sau đó tăng các giới hạn trong php.ini hoặc wp-config.php. Nếu vẫn lỗi, chuyển sang kiểm tra xung đột plugin/theme. Với hướng dẫn chi tiết 15 bước trên, bạn hoàn toàn có thể tự khắc phục thành công mà không cần nhờ đến lập trình viên. Luôn nhớ sao lưu trước khi can thiệp sâu và ưu tiên các phương pháp an toàn. Nếu đã thử tất cả mà vẫn thất bại, hãy yêu cầu hỗ trợ từ nhà cung cấp hosting – họ có quyền truy cập vào cấu hình server sâu hơn.
- WooCommerce sau migrate website bị lỗi: Nguyên nhân, cách khắc phục toàn diện từ A-Z
- Bí Mật Tìm Từ Khóa Đối Thủ: Cách Đánh Bại Đối Thủ Và Leo Top Google Nhanh Nhất
- Digital Footprint Là Gì? Toàn Bộ Sự Thật Về Dấu Chân Số Và Cách Kiểm Soát
- Cách Xử Lý Plugin WordPress Conflict Với Elementor Hiệu Quả Nhất
- Khắc Phục Ngay Elementor Video Background Lỗi: Nguyên Nhân Và Giải Pháp Toàn Diện
















