Chạy website WordPress, bạn gặp tình trạng wordpress image cache purge lỗi khiến ảnh cũ hoặc ảnh đã xóa vẫn hiển thị, làm hỏng trải nghiệm người dùng và ảnh hưởng đến tốc độ tải trang. Đây là một trong những vấn đề kỹ thuật phổ biến khi tối ưu hiệu suất, nhất là với những site có thư viện media lớn hoặc sử dụng nhiều lớp cache (plugin cache + CDN + hosting cache). Bài viết này phân tích chi tiết nguyên nhân gây ra lỗi purge cache image trên WordPress, đồng thời cung cấp hướng dẫn xử lý từ cơ bản đến nâng cao dành cho người quản trị.
Lỗi purge cache ảnh xảy ra khi hệ thống cache không chịu “quên” phiên bản cũ của hình ảnh, dù

WordPress không cache ảnh theo mặc định. Mỗi lần truy cập, server đọc file ảnh trực tiếp từ thư mục uploads và gửi đến trình duyệt. Nhưng khi bạn cài plugin cache hoặc dùng hosting có tính năng cache, ảnh được lưu trữ tại nhiều tầng:
- Browser Cache: Trình duyệt lưu ảnh trên máy người dùng theo HTTP headers (Cache-Control, Expires).
- Plugin Cache (Page/Image): WP Rocket, W3 Total Cache, LiteSpeed Cache tạo bản sao tĩnh của ảnh đã xử lý.
- CDN Cache: Cloudflare, Bunny CDN, KeyCDN lưu ảnh tại edge server.
- Hosting Cache: Một số nhà cung cấp như Kinsta, SiteGround, WP Engine có cache riêng ở tầng server.
- Object Cache: Redis hoặc Memcached lưu trữ metadata ảnh.
- Mở ảnh bị lỗi trong tab ẩn danh, xem HTTP header. Nếu thấy cf-cache-status: HIT thì lỗi từ Cloudflare. Nếu thấy x-proxy-cache: HIT thì lỗi từ proxy server.
- Dùng curl với header Cache-Control: no-cache để xem server gốc trả về gì.
- So sánh response từ nhiều vị trí địa lý (dùng công cụ như Pingdom, GTmetrix).
Khi bạn thay đổi ảnh (crop, resize, replace), WordPress cập nhật file vật lý và metadata, nhưng các lớp cache không tự động biết điều đó. Lúc này, lệnh purge cần phải được gửi đến từng lớp. Nếu một lớp không được purge đúng cách, wordpress image cache purge lỗi xảy ra.
Phân Loại Lỗi WordPress Image Cache Purge

Dựa trên thực tế hỗ trợ kỹ thuật cho hơn 1000 website, tôi phân loại lỗi purge cache ảnh thành 5 dạng chính:
| Loại lỗi | Biểu hiện | Nguyên nhân phổ biến |
|---|---|---|
| Cache trình duyệt không hết hạn | Ảnh cũ vẫn hiện dù đã F5 nhiều lần | Thiếu versioning filename, Cache-Control quá dài |
| Plugin cache không purge ảnh cụ thể | Ảnh mới upload lên hiển thị nhưng ảnh cũ vẫn tồn tại | Plugin không hỗ trợ purge riêng ảnh, chỉ purge page |
| CDN stale cache | Ảnh không đổi sau khi purge toàn bộ site | CDN chưa purge file cụ thể, purge bằng API thất bại |
| Hosting cache layer | Ảnh cũ vẫn hiển thị trên mobile nhưng desktop đã đúng | Hosting có cache riêng không được purge kịp |
| Object cache bị lỗi metadata | Thumbnail sai kích thước, ảnh không thay đổi dù file gốc đã sửa | Redis/Memcached lưu stale metadata của attachment |
Mỗi loại lỗi đều có cách xử lý khác nhau. Nếu bạn chỉ purge page cache mà bỏ qua CDN hay object cache, lỗi vẫn tiếp diễn.
Nguyên Nhân Cốt Lõi Gây Ra Lỗi Purge Cache Ảnh

1. Sử Dụng Nhiều Plugin Cache Cùng Lúc
Đây là nguyên nhân số một. Nhiều quản trị viên cài cả WP Rocket, Autoptimize và Cloudflare Plugin. Mỗi plugin tự quản lý cache riêng. Khi bạn nhấn “Purge Cache” trong WP Rocket, nó chỉ purge cache của WP Rocket, không purge cache của Cloudflare hay Autoptimize. Kết quả: ảnh vẫn lấy từ tầng cache khác, gây ra lỗi.
Giải pháp: Chỉ dùng một plugin cache chính, tắt tính năng cache ảnh/phần tử tĩnh ở các plugin phụ. Hoặc tích hợp CDN API vào plugin chính.
2. CDN Không Được Purge Đúng Cách
Cloudflare, Bunny CDN thường yêu cầu purge theo URL cụ thể. Nếu bạn chỉ purge toàn bộ site mà không purge từng URL ảnh, CDN vẫn giữ phiên bản cũ. Cloudflare có giới hạn purge (500 URL/lần với free plan), nhưng purge bằng Wildcard không hoạt động với ảnh nếu URL chứa query string version.
Ngoài ra, một số CDN có tính năng “purge by tag” nhưng plugin WordPress không gửi tag tương ứng cho ảnh.
3. Hosting Cache Ở Tầng Server (Nginx FastCGI Cache, Varnish)
Hosting như Kinsta, WP Engine, SiteGround có cache riêng. Plugin cache WordPress không thể purge cache lớp này vì nó nằm ngoài môi trường PHP. Bạn phải dùng API riêng của hosting hoặc công cụ quản trị hosting để purge.
4. Object Cache (Redis/Memcached) Lưu Stale Metadata Ảnh
Khi bạn update ảnh qua Media Library, metadata của attachment được cập nhật trong database. Nhưng nếu bạn dùng object cache, query lấy attachment ID có thể trả về kết quả cũ từ cache. Điều này khiến thumbnail sai kích thước hoặc ảnh cũ vẫn được load.
Lỗi này thường khó phát hiện vì người dùng chỉ thấy ảnh “cứng đầu” không chịu đổi, dù file gốc đã đúng.
5. Filename Không Có Versioning
Khi ảnh không thay đổi tên file, cache trình duyệt và CDN xem đó là cùng một tài nguyên. Nếu Cache-Control set max-age=31536000 (1 năm), ảnh sẽ không được tải lại cho đến khi người dùng xóa cache tay. WordPress sau phiên bản 5.3 thêm version query string cho CSS/JS, nhưng không cho ảnh. Bạn phải tự thêm qua filter hoặc plugin.
6. Lỗi Quyền Thư Mục Hoặc File Khi Purge
Khi plugin cache cố gắng xóa file cache ảnh (ví dụ thư mục wp-content/cache/), nếu không có quyền ghi do cấu hình server, lệnh purge thất bại. WordPress không báo lỗi rõ ràng, chỉ âm thầm bỏ qua.
Cách Xử Lý Lỗi WordPress Image Cache Purge Từng Bước

Thực hiện theo thứ tự từ dễ đến khó.
Bước 1: Xác Định Lớp Cache Nào Đang Bị Lỗi
Bước 2: Purge Từng Lớp Cache Theo Đúng Cách
- Plugin cache: Vào Settings của plugin cache, tìm tính năng purge image cache hoặc purge media library. Với WP Rocket,

Nếu
Bạn chỉ purge cache của plugin WordPress, nhưng CDN, hosting cache, hoặc trình duyệt vẫn giữ phiên bản cũ. Thực hiện purge tuần tự từng lớp và kiểm tra bằng header response.
Làm thế nào để purge cache ảnh trên Cloudflare?
Đăng nhập Cloudflare Dashboard, chọn domain, vào Caching > Configuration > Purge Cache. Chọn “Custom Purge” và nhập URL ảnh cụ thể. Lưu ý: Cloudflare tính phí purge theo số lượng URL nếu vượt quá 500 URL/ngày trên free plan.
Có cách nào tự động purge cache ảnh khi cập nhật media không?
Có.
Điều này xảy ra khi bạn xóa ảnh vật lý khỏi thư mục uploads nhưng metadata trong database vẫn trỏ đến file đó. Kiểm tra Media Library, nếu ảnh hiện “broken image”, cần thay ảnh mới hoặc xóa attachment entry trong database bằng plugin “Media Cleaner”.
Tại sao purge cache ảnh bằng WP-CLI không hoạt động?
Nguyên nhân thường do path sai hoặc plugin cache yêu cầu authentication qua REST API. Hãy chạy WP-CLI với user có quyền admin, đảm bảo plugin cache đã được cấu hình đúng. Ví dụ, với WP Rocket, cần thêm hằng số
define('WP_ROCKET_EMAIL', 'email'); define('WP_ROCKET_KEY', 'key');trong wp-config.php.Kết Luận
Lỗi wordpress image cache purge không phải là vấn đề không thể giải quyết, nhưng đòi hỏi bạn hiểu rõ kiến trúc cache của website. Từ việc xác định đúng lớp cache đang bị lỗi, purge đúng cách từng tầng, cho đến áp dụng versioning và tối ưu cấu hình server, mọi thứ đều cần được thực hiện có hệ thống.
Hãy nhớ: không có giải pháp “một nút bấm” cho mọi tình huống. Nếu bạn đang gặp lỗi với một plugin cache cụ thể, hãy đọc kỹ tài liệu của plugin đó, kiểm tra log lỗi, và loại trừ từng nguyên nhân. Đối với những site quan trọng, nên thiết lập quy trình kiểm tra cache định kỳ và sao lưu cấu hình cache để khôi phục khi cần. Với những hướng dẫn chi tiết ở trên, hy vọng bạn có thể chấm dứt lỗi purge cache ảnh trên WordPress và mang đến trải nghiệm mượt mà cho người dùng.
- Woocommerce Variation Conflict Lỗi: Nguyên Nhân, Cách Khắc Phục và Phòng Tránh Toàn Diện
- Khắc phục lỗi “Plugin WordPress Uninstall Cleanup Failed” – Hướng dẫn chi tiết từ A đến Z
- WordPress Backend Là Gì? Hướng Dẫn Toàn Diện Từ A-Z Cho Người Mới Bắt Đầu
- Khắc phục lỗi WooCommerce sản phẩm không tải: Hướng dẫn chi tiết từ A đến Z
- Khắc phục lỗi WordPress thumbnail bị mất: Nguyên nhân và giải pháp toàn diện 2025

















