Troubleshooting An ISR page keeps serving old HTML past its revalidate window. Read the x-vercel-cache header, force an on-demand revalidate, and fix the real cause: edge shadowing, a failing background render, or a path mismatch.
Troubleshooting Users still see the old site after you deploy because a service worker keeps serving the cached bundle. Fix it with NetworkFirst HTML, skipWaiting + clientsClaim, a no-cache sw.js, and a same-URL self-destruct kill switch for trapped users.
Indie Dev & Website Building The headers block in firebase.json controls cache TTL, security policy, and CORS. Copy the minimum config that ships fast and safe, and skip the patterns that silently break your whole site.