Drupal caching system allows customized settings to speed up website using different configuration with page caching, block caching and lifetime for cached pages.
- If enables, page caching will only be used for anonymous users.
- If you enable page caching, the entire HTML of each page will be stored in the database. This significantly reduces the amount of queries needed.
- This automatically means that blocks will also get cached, disregarded their own cache settings.
- If Varnish is configured, this will also enable varnish caching
- The page cache max-age will be used (see below) for each page.
- You can check the “X-Drupal-Cache” HTTP header to check if this cache is HIT.
- If you enable block caching, without enabling page caching, the block cache settings will be used (for anonymous and authenticated).
- The defaults for most blocks is “don’t cache” because that is the default for blocks who don’t have their cache settings specifically declared.
- You can use block_cache_alter module to set this for each block.
- When it’s block created by Views, you can set the cache settings for a block in Views.
Minimum cache lifetime:
- This is the amount of time before the page cache is cleared.
- Page caches are cleared on each cron run (system_cron).
- Be warned: incorrect settings of your cron and this setting might kill your website performance. See also this issue.
Expiration of cached pages:
- This only applies for external caching mechanisms, for example your browser cache or Varnish.
- It sets the Cache-Control max-age value in the HTTP-HEADERS.
- This setting only takes effect when page caching is turned on.