Performance: Multiple root layouts with route groups
MEDIUM IMPACT
This affects the initial page load speed and rendering performance by controlling how layouts and route groups are loaded and rendered.
app/(marketing)/layout.js
app/(marketing)/page.js
app/(dashboard)/layout.js
app/(dashboard)/page.js
// Using route groups with separate root layouts so only relevant layout code loads per route group.app/layout.js
app/page.js
app/dashboard/layout.js
app/dashboard/page.js
app/settings/layout.js
app/settings/page.js
// All layouts are nested under a single root layout causing all layout code to load on every page.| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Single root layout for all routes | High (all layouts rendered) | Multiple reflows per page load | High paint cost due to large DOM | [X] Bad |
| Multiple root layouts with route groups | Low (only relevant layouts rendered) | Single reflow per route group | Lower paint cost with smaller DOM | [OK] Good |