CloudFlare has this page to explain the difference between their caching settings: https://support.cloudflare.com/hc/en-us/articles/200168256. However, I'm still confused. It says:

Basic:          example.com/pic.jpg 
Simplified:     example.com/pic.jpg?ignore=this-query-string 
Aggressive:     example.com/pic.jpg?with=query 

So I'm assuming that Basic means it doesn't pay any attention to the query string (it's treated as a single file no matter what query string is included). Simplified seems to say any query string will be ignored. And Aggressive seems to say the query string basically means it's a different file.

So, my question is, what's the difference between Basic and Simplified? If Basic ignores any query string, and Simplified also ignores any query string, aren't these the same?

1 Answer 1


It depends if you use query string or not. If you do not use them, then there is no difference.

If you, however, have images, JavaScript or CSS files in your HTML like:

<link type="text/css" rel="stylesheet" href="style.css?v=0.1.0" />

Then the setting makes a difference. To understand that, first you have to understand why the query string is used at all. When you add a different query string, under Basic it will force to request new file when the query string changes. So lets say after making some changes to style.css you will make your code to use v=0.2.0 string:

<link type="text/css" rel="stylesheet" href="style.css?v=0.2.0" />

Now all the visitors will redownload new file and cache it again.

Now if you have Simplified enabled, then CloudFlare will ignore the query string and return style.css file which is cached on CloudFlare. Until the cache on the CloudFlare updates, users will be receiving old file. With this you have to manage cache in CloudFlare. To avoid this, there's also Aggressive setting which would tell CloudFlare to cache both versions of the file.

  • So it seems like I had it all backwards? What you're saying is Basic treats query strings as different files, and Simplified ignores query strings and treats it as the same file regardless of the query string? But now my question is, if Basic doesn't ignore the query string, and Aggressive doesn't ignore the query string, are Basic and Aggressive the same as far as query strings, but Aggressive just caches more files than Basic? I'm just not seeing a difference between all 3 of these settings as far as how it treats query strings.
    – Gavin
    Jun 29, 2014 at 9:24
  • Basically, I just want my static files cached and I want to use query string versioning to force an update of changed files. Does Basic handle this?
    – Gavin
    Jun 29, 2014 at 9:32
  • Yes, you shouldn't have any problems with that when Basic is on.
    – phoops
    Jun 29, 2014 at 11:15
  • Ok, thanks for the explanation. I'll mark this as the answer, I'm just still a bit confused. I wish CloudFlare would go into more detail on how their caching works.
    – Gavin
    Jun 29, 2014 at 13:48
  • There is additiona explanation at support.cloudflare.com/hc/en-us/articles/…
    – phoops
    Jun 29, 2014 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.