If you use Next.js anywhere but Vercel, here's some bad news: Next.js 15.1+ is broken.tl;dr: Starting with version 15.1.8, Next.js might break metadata handling for non-Vercel deployments, potentially devastating your search rankings. This is not a bug.When Did This Happen?In 2024, Vercel introduced metadata streaming as an experimental feature. This fundamentally changes how Next.js handles metadata.Traditional approach: Metadata tags (title, description, Open Graph tags) are rendered directly in the HTML <head> during server-side rendering or static generation.Metadata streaming: These same tags are sent separately after the initial page load, requiring JavaScript execution.Vercel's Technical JustificationVercel's stated rationale centers on performance optimization for metadata generation that causes computational bottlenecks. However, this solution creates more problems than it solves:Metadata is typically static and lightweight (< 1KB)Server round-trips for metadata are more expensive than inline generationDynamic metadata needs are edge cases, not the normThe implementation of metadata streaming is complex and confusing.How Did This Happen?The root cause seems to trace back to performance complaints from developers dealing with computationally expensive metadata generation. Some users were experiencing significant delays during server-side rendering while generating metadata, particularly when fetching data from external APIs. As a result, Vercel started working on a solution.What About Search Engines?Search engines that don't run JavaScript will miss your metadata entirely. This hurts your SEO. So Vercel introduced another fix to this situation they got themselves into: htmlLimitedBots. If the server detects a crawler, streaming is skipped and the metadata is included in the HEAD.What About Other Providers?Are providers like Netlify, Cloudflare, or AWS better? Not really. For one, make sure to read this article. These providers created OpenNext to make Next.j...
First seen: 2025-06-12 11:46
Last seen: 2025-06-12 11:46