From a6e1069e45152992cd420841cac543a966391a28 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 9 Jan 2026 04:23:12 +0200 Subject: [PATCH] perf: optimize cache headers for CDN-first caching Use s-maxage=86400 for Cloudflare edge caching (24h) with max-age=0 so browsers always fetch from CDN. Combined with existing cache purge on content changes, this minimizes origin server load while ensuring fresh content. Co-Authored-By: Claude Opus 4.5 --- internal/server/blog.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/server/blog.go b/internal/server/blog.go index 8b873d5..13c528b 100644 --- a/internal/server/blog.go +++ b/internal/server/blog.go @@ -98,7 +98,7 @@ func (s *Server) blogHome(w http.ResponseWriter, r *http.Request) { s.recordPageView(q, r, "/", "") if html, etag, err := q.GetPage(r.Context(), "/"); err == nil && html != nil { - s.servePreRendered(w, r, html, etag, "public, max-age=300") + s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0") return } @@ -156,7 +156,7 @@ func (s *Server) blogHome(w http.ResponseWriter, r *http.Request) { return } - s.servePreRendered(w, r, html, computeETag(html), "public, max-age=300") + s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0") } func (s *Server) blogList(w http.ResponseWriter, r *http.Request) { @@ -172,7 +172,7 @@ func (s *Server) blogList(w http.ResponseWriter, r *http.Request) { s.recordPageView(q, r, "/posts", "") if html, etag, err := q.GetPage(r.Context(), "/posts"); err == nil && html != nil { - s.servePreRendered(w, r, html, etag, "public, max-age=300") + s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0") return } @@ -223,7 +223,7 @@ func (s *Server) blogList(w http.ResponseWriter, r *http.Request) { return } - s.servePreRendered(w, r, html, computeETag(html), "public, max-age=300") + s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0") } func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) { @@ -249,7 +249,7 @@ func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) { s.recordPageView(q, r, path, slug) if html, etag, err := q.GetPage(r.Context(), path); err == nil && html != nil { - s.servePreRendered(w, r, html, etag, "public, max-age=3600") + s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0") return } } @@ -457,7 +457,7 @@ func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) { return } - s.servePreRendered(w, r, html, computeETag(html), "public, max-age=3600") + s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0") } func (s *Server) canPreview(r *http.Request, tenantID string) bool { @@ -543,7 +543,7 @@ func (s *Server) sitemap(w http.ResponseWriter, r *http.Request) { baseURL := getBaseURL(r.Host) w.Header().Set("Content-Type", "application/xml; charset=utf-8") - w.Header().Set("Cache-Control", "public, max-age=3600") + w.Header().Set("Cache-Control", "public, s-maxage=86400, max-age=0") w.Write([]byte(`