Bybass cache với cache rule của Cloudflare khi page rule bị giới hạn 3 rule với tài khoản free

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:

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-Agentcontainsgooglebot

  • (Thêm ORUser-Agent contains bingbot, yandex nếu muốn)

  • Then…

    • Cache statusBypass 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");
}