Fastcgi caching consistently MISS

Hello friends.

I’d like to enable fastcgi caching for a Trellis project. The wordpress site config:

...
    cache:
      enabled: true
      duration: 30s
      skip_cache_uri: /wp-admin/|/wp-json/|/xmlrpc.php
      skip_cache_cookie: comment_author|wordpress_[a-f0-9]+
      background_update: "on"

Caching is enabled, set for 30 seconds:

  location ~ \.php$ {
    try_files $uri /index.php;

    # Fastcgi cache settings
    fastcgi_cache wordpress;
    fastcgi_cache_valid 30s;
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    fastcgi_cache_background_update on;

    include fastcgi_params;
    fastcgi_param SERVER_NAME $host;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    fastcgi_pass unix:/var/run/php-fpm-wordpress.sock;
  }

But every request (within seconds of each other) seems to be a “MISS”:

curl -I https://staging.example.com
HTTP/2 200
server: nginx
date: Wed, 08 Apr 2026 18:40:35 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
set-cookie: PHPSESSID=c613585bb092482bf0fcf5c681a71375; path=/; HttpOnly
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
permissions-policy: private-state-token-redemption=(self "https://www.google.com" "https://www.gstatic.com" "https://recaptcha.net" "https://challenges.cloudflare.com" "https://hcaptcha.com"), private-state-token-issuance=(self "https://www.google.com" "https://www.gstatic.com" "https://recaptcha.net" "https://challenges.cloudflare.com" "https://hcaptcha.com")
link: <https://staging.example.com/wp-json/>; rel="https://api.w.org/"
link: <https://staging.example.com/wp-json/wp/v2/pages/5>; rel="alternate"; title="JSON"; type="application/json"
link: <https://staging.example.com/>; rel=shortlink
fastcgi-cache: MISS
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
x-ua-compatible: IE=Edge
content-security-policy: frame-ancestors 'self' *
x-frame-options: SAMEORIGIN
x-robots-tag: noindex, nofollow

Any suggestions?

Progress!

Disabled plugins and Avada theme:

fastcgi-cache: HIT

There were a couple of plugins, one which does something with Sessions, that seemed to be preventing the cache HIT.