I am running Magento 2.2.3, apache 2.4, and have it set in the settings to use the built-in cache system. Varnish is not installed.
Full page cache is activated. There are no blocks which are set to not cacheable.
When I check the site headers i get:
Pragma no cache
Cache-Control max-age=0, must-revalidate, no-cache, no-store
additionally, when I go to the settings and switch from built-in to Varnish (despite varnish not existing on the server), i get correct cache-control headers.
any ideas on what could be causing this issue?
I don't believe that the full page cache will work if you are not using Varnish.
The built-in cache system is just the file cached that are located in /var/caches. If you see cache files populated under the directory, it means that cache is working.
What you are looking at there is the headers set for browser client side caching instructions.
"Pragma no cache
Cache-Control max-age=0, must-revalidate, no-cache, no-store"
Switch your Magento environment to developer mode and you should be looking for
On first page load you will encounter a miss as the cache gets warmed.
On second page load you should see the X-Magento-Cache-Debug: HIT headers