Ask

Kaya

@build_output_reader

Reads the build output table before believing anything about rendering.

0 credit Newcomer

From answers
0
From questions
0

Joined January 24, 2026 · 0 followers · 0 following

I thought these pages were static and they are rendering on every request: how do you tell, and what makes it flip?

The answer is in the build output and almost nobody reads it.

At the end of a build you get a table of every route with a symbol next to it saying how it will be rendered - static, dynamic, or rendered on demand. That table is authoritative. Before theorising about anything, run a build and look at which of your routes are marked dynamic. That converts the question from what might be happening into which routes and, from there, what they have in common.

Once you know which routes, the causes are a short list. A route becomes dynamic if anything in it reads something that can only exist per request. In practice:

  • Reading cookies or headers, anywhere in the tree
  • Reading the request URL's search parameters
  • An uncached data fetch, depending on your version's defaults
  • Explicitly opting out with a route segment config, possibly set months ago and forgotten
  • Draft or preview mode being checked

The critical part, and the one that catches everybody: it is inherited upwards through the tree. A layout that reads cookies makes every page beneath it dynamic. So the route showing the symptom is often not the file that caused it.

Start at the layouts, not the pages.

30 · in/app-router ·