Trong quá trình các bạn tạo cache hoàn toàn có trường hợp các bạn sẽ dùng rất nhiều rule để áp dụng cho việc cache, tuy nhiên với cloudflare thì page rule chỉ free 3 rule cho tài khoản free.
Vậy trường hợp muốn nhiều hơn mà vẫn miễn phí thì sao, chúng ta sẽ áp dụng cache rule để làm việc này.
Trường hợp thực tế:
Sau khi bạn dùng hết 3 page rule rồi tuy nhiên phát hiện ra là bạn không muốn cache dữ liệu khi bot seo của google hay bing truy cập thì phải là dữ liệu mới nhất và không lấy dữ liệu cache.
Hoặc cơ bản code của bạn với view người dùng là dạng js không có nội dung cụ thể mà với SEO bạn cần phải render là dữ liệu cụ thể với html thì SEO mới hoạt động tốt, lúc này bạn buộc phải dành 1 trang riêng cho bot vô thu thập. vì vậy bạn cần loại bỏ cache với js mà phải render ra nội dung.
Nếu vậy bạn cần thiết lập cache rules để với trường hợp là bot seo vô thì lấy dữ liệu ra render hiển thị html còn không phải bot thì cứ js hiển thị cho nhanh.
Cách làm như sau:
Nội dung chính
Cách làm: Tạo Cache Rule để bypass cache cho Googlebot
1. Vào Cloudflare → trang domain của bạn
2. Menu bên trái → chọn Rules → Cache Rules
3. Bấm “Create Rule”
4. Thiết lập như sau:
-
Rule name:
Bypass for bots
-
When incoming requests match…:
-
User-Agent
→contains
→googlebot
-
-
(Thêm
OR
→User-Agent contains bingbot
,yandex
nếu muốn) -
Then…
-
Cache status
→Bypass cache
-
✅ Ưu điểm:
-
Không tốn slot Page Rules
-
Hoạt động đồng thời với Page Rule 3 đang cache toàn site
-
Dễ mở rộng các điều kiện (User-Agent, Cookie, v.v.)
👉 Kết luận:
Phương án | Tình trạng | Giải pháp |
---|---|---|
Page Rules hết chỗ | ✅ Đang dùng 3/3 | ❌ Không thêm được |
Cần Bypass cache cho bot | ✅ | ✅ Dùng Cache Rules mới – miễn phí |
CÁCH 2: dùng php tracking bot và chèn vào trang nào không muốn bị cache khi bot truy cập
Chèn đầu file mà bạn muốn áp dụng
✅ Và kết hợp Cloudflare Cache Rule:
-
Nếu
Cache-Control: private
thì Cloudflare không cache. -
Người dùng thường (
Chrome
,Safari
…) sẽ không bị ảnh hưởng.
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';
if (preg_match('/googlebot|bingbot|yandex/i', $user_agent)) {
header("Cache-Control: private, no-store, max-age=0");
}