How to fix Cumulative Layout Shift in Next.js
CLS is caused by content that arrives without reserved space: images, fonts, ads and client-only widgets. How to find each shift and reserve space for it.
9 posts
CLS is caused by content that arrives without reserved space: images, fonts, ads and client-only widgets. How to find each shift and reserve space for it.
LCP is usually one element and one slow step. How to find both in Next.js: the image, the font, the server response, and the render path that delays them.
A technical SEO checklist for Next.js: canonical host, metadata, sitemap, robots, structured data, and the checks that catch regressions before they ship.
Next.js 16 upgrade notes: async params everywhere, typed PageProps, middleware renamed to proxy, a Tailwind 4 gotcha, and the docs inside node_modules.
Lessons from building a Node.js SEO crawler with ~100 checks: robots.txt matching is subtle, soft 404s are everywhere, and why every rule needs a source.
A measurement-driven guide to Next.js performance: Core Web Vitals, shipping less JavaScript, images, fonts, caching and deferring third-party scripts.
Build a production RAG chatbot with Next.js, Postgres and pgvector: chunking, retrieval, streaming, and the cost, caching and guardrails tutorials skip.
How to improve First Contentful Paint in a Next.js app: measuring it, shipping less JavaScript, taming fonts, deferring scripts and serving static HTML.
The four caches in the Next.js App Router — Request Memoization, Data, Full Route and Router Cache — explained with code, plus a model for revalidation.