Bfcache: The Free Speed You Lose With One Header
The back/forward cache makes back navigation instant and lifts field metrics for free, unless something blocks it. Blockers from no-store to unload handlers.
Writing
11 write-ups from production, newest first. Each one is a problem hit on a real project and how it was diagnosed and fixed.
The back/forward cache makes back navigation instant and lifts field metrics for free, unless something blocks it. Blockers from no-store to unload handlers.
A page with two hundred links prefetches two hundred routes. How next/link prefetching works, when it becomes a cost, and how to tune lists and mega-menus.
How Cache Components change caching for a marketing site: what use cache does, how cacheLife maps to page types, dynamic edges and prerender mistakes.
The four caching layers a WordPress site can have, what each speeds up, which you need for a brochure site versus a store, and the setups that make it slower.
Cache Components in Next.js 16 in practice: where use cache goes, how cacheLife profiles behave, when cacheTag earns its keep, and the build errors.
Next.js 16 revalidatePath not invalidating cache from a Route Handler? Here is why the path argument mismatch happens and the canonical fix that holds.
Next.js 16 Partial Prerendering ships a static shell, but the dynamic holes re-render every visit instead of caching. Here is why and the exact fix.
Next.js 16 build failing after replacing unstable_cache with 'use cache'? Here is why the closure error fires and the exact migration pattern that compiles.
WooCommerce throwing an invalid nonce error on add to cart after your page cache expires? Here is why cached nonces break and the ESI fix that actually holds.
Next.js 16 revalidateTag not updating cached data in production? Fix missing cacheTag calls, tag mismatches, and cacheLife expire traps that freeze cache.
Next.js 16 use cache keeps serving old data after a production deploy. Here is why it happens and the exact revalidateTag fix with working code.