Next.js 15 Upgrade Wipes Out 80% of Site Traffic
A cautionary case study reveals a team lost 80% of its site traffic overnight after a Next.js 15 deployment. Subtle changes in the framework's routing and rendering behavior broke pre-existing SEO structures, highlighting the critical need for SEO regression testing before major version upgrades.
Vercel released Next.js 15 on October 21, 2024, introducing several significant changes, including support for React 19 and making the Rust-based bundler, Turbopack, stable for development servers. These updates promised performance improvements, with claims of up to 76.7% faster local server startup and 96.3% faster code updates with Fast Refresh. A core breaking change in Next.js 15 altered the framework's default caching behavior. Unlike previous versions, `fetch` requests, GET Route Handlers, and client-side page navigations are no longer cached by default, shifting the default `cache` option for `fetch` to `no-store`. This fundamental shift from an aggressive caching strategy to an opt-in model means developers must now explicitly configure caching for data fetches and pages that were previously cached automatically. Without this explicit configuration, pages may no longer be served as quickly or be available for static generation, directly impacting SEO performance and crawlability. Another significant breaking change was the transition of APIs that depend on request-specific data—such as `headers`, `cookies`, and `searchParams`—to be asynchronous. This change, while aimed at creating a more consistent rendering and caching model, requires code modifications. To ease this transition, the Next.js team provided a codemod CLI tool to help automate the necessary updates for this and other breaking changes.