Tại sao nên cache REST API tìm kiếm?
- Tăng tốc độ phản hồi kết quả tìm kiếm
- Giảm tải CPU và RAM trên server
- Giảm số lượng truy vấn đến database (MySQL)
- Tiết kiệm tài nguyên, tối ưu cho site traffic cao
Bên cạnh đó, việc cache REST API còn mang lại những lợi ích “ngon – bổ – rẻ” khác:
- Không tốn gì cả: Cloudflare miễn phí hỗ trợ cache, nên bạn không phải đầu tư thêm chi phí hạ tầng
- Giảm tải cực mạnh cho server: đặc biệt khi có bot crawl, người dùng thử phím nhanh, hoặc công cụ test tự động
- Tăng tốc phản hồi: trong trường hợp hiếm có truy vấn trùng nhau, người dùng sẽ nhận được kết quả tức thì mà không cần truy cập lại WordPress
Điều này đặc biệt hiệu quả vì Init Live Search đã hỗ trợ sẵn hệ thống wp_cache_set() và bạn có thể cache thêm bằng CDN như Cloudflare để đảm bảo hiệu suất tối ưu.
Truy cập mục Cache Rules trong Cloudflare
- Vào trang quản lý Cloudflare cho domain của bạn
- Chọn tab Caching → Cache Rules
- Bấm Create Rule
Tạo điều kiện cache cho REST API của Init Live Search
Đặt tên cho rule, ví dụ Cache Init Live Search API, sau đó bấm Edit expression và nhập điều kiện như sau:
(http.host contains "example.com" and starts_with(http.request.uri.path, "/wp-json/initlise/v1/search") and not http.cookie contains "wordpress_logged_in_")
Lưu ý: Hãy thay example.com bằng tên miền thật của bạn.
Các endpoint khác có thể áp dụng cache
Bạn cũng có thể tạo thêm các Cache Rule tương tự cho các endpoint khác, đặc biệt là các lệnh slash command:
/wp-json/initlise/v1/recent/wp-json/initlise/v1/related/wp-json/initlise/v1/date/wp-json/initlise/v1/tax/wp-json/initlise/v1/taxonomies
Tất cả endpoint trên đều đã hỗ trợ wp_cache_set() trong backend để tận dụng cache tầng trên như Cloudflare.
Bạn chỉ cần nhân bản rule ban đầu, đổi phần điều kiện starts_with(...) cho phù hợp với từng URL.
Ví dụ, cho endpoint /recent, biểu thức Cloudflare như sau:
(http.host contains "example.com" and starts_with(http.request.uri.path, "/wp-json/initlise/v1/recent") and not http.cookie contains "wordpress_logged_in_")
Tương tự, bạn có thể điều chỉnh cho các endpoint còn lại. Đây là bước đơn giản giúp tăng tốc các lệnh slash command – đặc biệt với site nhiều traffic hoặc dùng nhiều taxonomy.
Thiết lập hành vi cache
Sau khi nhập điều kiện, bạn kéo xuống mục Cache settings và cấu hình như sau:
- Cache status: On
- Edge TTL: Chọn 300s hoặc 900s (tuỳ theo mức độ cập nhật nội dung)
- Cache key: Bấm Add setting, chọn Cache Deception Armor để tránh bị phá cache do query string giả mạo
Sau đó nhấn Deploy để hoàn tất thiết lập.
Tự động xóa cache khi nội dung thay đổi?
Nếu bạn muốn API tìm kiếm luôn cập nhật kết quả mới (ví dụ khi đăng bài mới), bạn có thể dùng plugin Cloudflare cho WordPress để tự động purge cache mỗi khi có thay đổi.
- Đăng nhập vào plugin bằng Email và Global API Key
- Vào mục Settings của plugin
- Bật Auto Purge Content On Update
Cách kiểm tra cache có hoạt động hay chưa
- Mở website bằng trình duyệt ẩn danh (incognito)
- Nhấn F12 để mở Developer Tools
- Truy cập tab Network → tìm request đến
/wp-json/initlise/v1/search - Xem header cf-cache-status. Nếu là HIT thì cache đã có hiệu lực.
Kết luận
Plugin Init Live Search đã được tối ưu cực kỳ nhẹ và thông minh. Nhưng khi kết hợp thêm Cloudflare Cache Rules cho REST API tìm kiếm, bạn sẽ có một giải pháp tìm kiếm siêu nhanh, gần như không tốn tài nguyên máy chủ.
Đây là bước nâng cấp đáng giá cho mọi website WordPress muốn tối ưu tốc độ và khả năng mở rộng.
Bình luận