Performance
Cache-Control for HTML: s-maxage without caching the dashboard
· Configuration notes, not a newsroom.
SiteRune flags no-store and private on the document as weak HTML caching. Public pages should be cacheable at the CDN. App shells and account pages should not.
The finding is about the document, not images
perf-cache fires when Cache-Control is missing or contains no-store / private on the HTML you just fetched. That is usually a CMS 'disable cache so the editor sees changes' leftover, a Next.js cookies() call on the marketing layout, or an app that treats every URL as personalized.
Images can be immutable. The homepage still hits origin on every visit if the document is no-store. TTFB never recovers.
Split the site
Marketing, docs, guides, pricing: public, s-maxage=3600 (or more), purge on publish. Dashboard, checkout, account: private or no-store. If your global layout reads the session cookie, every page becomes dynamic. SiteRune did this to itself — the public header now hydrates auth on the client so the homepage can be static.
- WordPress: Cloudflare APO or LiteSpeed. Do not disable all cache in production to debug a plugin.
- Next.js: do not call cookies() in the root layout of indexable routes. Use a client island for 'Log in' vs 'Dashboard'.
- Shopify: storefront is usually cached; apps that set no-store on theme.liquid are the usual culprit.
How to confirm
curl -I the URL. You want a Cache-Control that a shared cache can use (public or s-maxage) on the pages you advertise. Then rescan. Inner pages slower than 1.2s TTFB are a separate finding (crawl-ttfb-inner) — cache the template family, not only /.
Run it on a live URL
The brief will name your CMS and attach the files. Three guest scans, no card.