Stack playbook · Snapshot 23 October 2026
Next.js on Cloudflare: readiness playbook
What 888 measured sites on this stack get right, where they fall short, and the Next.js on Cloudflare-specific steps that close each gap.
- Sites measured
- 888
- Median readiness index
- 73/100
- Profiles on this stack
- 542
detected from homepage HTML and headers
all sites: 64
top-50K sites
Readiness by lane
Enable
89/100
All sites 77
Harden
62/100
All sites 56
Accelerate
76/100
All sites 64
Recover
4/100
All sites 10
The Next.js on Cloudflare playbook
Gaps ordered by impact, with the platform-specific step where one exists.
HSTS kept for at least a year
42% observed · all sites 34%
Send Strict-Transport-Security on HTTPS responses. Start with a short max-age (for example 300 seconds), confirm every subdomain works over HTTPS, then raise it in steps to 31536000. Add includeSubDomains only when all subdomains are HTTPS. HSTS preload is optional and hard to undo; hstspreload.org itself does not recommend it by default.
On Next.js: Add the header in the headers() option of next.config.js for all routes.
On Cloudflare: Enable HSTS under SSL/TLS > Edge Certificates > HTTP Strict Transport Security and raise max-age gradually.
No render-blocking scripts in <head>
30% observed · all sites 48%
Add defer to scripts that need the DOM, async to independent ones such as analytics, or move them to the end of the body.
On Next.js: Use the next/script component with an appropriate loading strategy.
Guide: Control Third-Party Scripts Before They Control Your Page
security.txt published
13% observed · all sites 7.1%
Publish /.well-known/security.txt with at least Contact and Expires fields, as RFC 9116 requires, and review it before it expires.
On Cloudflare: Cloudflare Security Center can serve a security.txt file for the zone.
CAA records limit who can issue certificates
18% observed · all sites 13%
Publish CAA records naming every CA you actually use, including the CAs your CDN uses for managed certificates. Add an iodef contact if you want reports.
On Cloudflare: Cloudflare documents which CAs its managed certificates need; include them in your CAA records.
Modern image formats in use
49% observed · all sites 40%
Serve WebP or AVIF with a JPEG or PNG fallback, either through an image CDN or by generating both formats at build time.
On Next.js: The next/image component serves optimized formats automatically.
On Cloudflare: Cloudflare Polish can convert images to WebP.
Guide: AVIF, WebP, JPEG, and PNG: Choose the Right Image Format
DMARC policy enforces quarantine or reject
54% observed · all sites 39%
Publish DMARC with p=none and a reporting address first, fix any legitimate senders that fail SPF or DKIM alignment, then move to quarantine and finally reject.
DNSSEC signed
9.5% observed · all sites 8%
Enable DNSSEC at your DNS provider, then add the DS record at your registrar. Plan provider moves carefully: a stale DS record can make the domain fail to resolve.
On Cloudflare: Enable DNSSEC in DNS > Settings and add the DS record at the registrar.
Guide: Website Uptime Readiness: Prepare Before Traffic Arrives
Content Security Policy present
34% observed · all sites 32%
Start with Content-Security-Policy-Report-Only to see what would break, tighten the policy over a few weeks, then enforce it.
On Next.js: Next.js documents nonce-based CSP with middleware.
Guide: Payment Security and PCI DSS: What Website Owners Need to Know
Where Next.js on Cloudflare sites lead
- Reachable over IPv690% observedall sites 48%
- Static files cached for 30 days or more85% observedall sites 51%
- Certificate lifetime of 100 days or less93% observedall sites 67%
- Offscreen images lazy-loaded88% observedall sites 62%