Page Rules don't properly cache everything for the specified domain rules

cache

#1

Hi all,

Description of my configuration:

  • my Page Rules contain the following settings (the goal is to cache only URL requests with parameters):

URL: domain.com/?* -> Cache Everything
URL: domain.com/?param1=*&param2=*&param3=*-> Cache Everything

and even if I see in the Cloudflare stats that there are approximately 40% requests served from cache ( the rest probably don’t have any params so they don’t match the page rules).

I don’t have any Edge Cache TTL nor Browser Cache TTL set up.

The problem is that I can still see that some of the requests, although matching the rules mentioned above, are resolved on the server side and not from the Cloudflare cache.

Do you know what might cause that the URLs that are matching the page rules are not served from the Cloudflare Cache? Is the Edge Cache TTL and Browser Cache TTL configuration related to this problem?

Thank you for your help


#2

Edge Cache TTL instructs Cloudflare to hold a cached page for a certain period of time. Browser Cache TTL adds the header that will instruct the browser to hold the page in its cache for a certain period of time. Neither would interfere with your page rules in the way you are describing, AFAIK.

You don’t need both page rules, since the second is a match for the first rule.

If you a seeing pages that should be cached but are not, this is probably the result of some other setting. Make sure your Caching > Caching Level is set to Standard.

Also, check your .htaccess for redirect instructions that may be inadvertently removing the query, such as redirects to force HTTPS or the canonical domain (naked vs www). You can use an online tool such as htaccess.madewithlove.be to test your htaccess directives.


#3

Thank you so much for your answer. I changed the Caching -> Caching Level to Standard and added the rule:

http://domain.com/* and purged everything to propagate the configuration. I requested the http://domain.com/?param1=test but it’s still served from the server, do you have any other idea what might be configured incorrectly?

I plan to check “.htaccess” today.

Severin