Next.js Discord

Discord Forum

Next.js App Router navigation feels slow after upgrading (RSC _rsc request delay even with <Link>)

Answered
Knopper gall posted this in #help-forum
Open in Discord
Knopper gallOP
After upgrading from Next.js 14 → 16 (App Router), route transitions became noticeably laggy.

When switching feature pages, DevTools shows navigation is waiting for an RSC request like:

/url?_rsc=...

The _rsc request often has ~400ms TTFB, and the UI feels like it “stutters” during navigation.

I’m not doing anything special (no custom prefetch logic). Navigation is just using <Link>:
{features.map((feature, index) => (
  <Link
    key={index}
    className="func-btn"
    href={`/guilds/${currentGuild}/${feature.link}`}
    onClick={() => setSidebarOpen(false)}
  >
    <span>{feature.title}</span>
  </Link>
))}

Is this expected behavior in Next.js v16?
Any recommended approach to reduce the perceived lag when switching routes in the App Router? thx
Answered by Patrick MacDonald
Make as much static as possible is good, using <Suspense> to stream content and show a fallback while data is being fetched, and if you want to get really fancy cachedComponents from next is a game changer
View full answer

6 Replies

@Knopper gall Is this happening in dev or prod, local or hosted and static page or dynamic? I find data fetches in dev seem slow and if theres an await blocking the page load it would seem really slow
and that stutter could be a fallback you are using like loading.tsx or suspense
I have a demo site you could see the different data fetching patterns if the page happens to be dynamic
www.cache-components-demo.patmac.ca
Make as much static as possible is good, using <Suspense> to stream content and show a fallback while data is being fetched, and if you want to get really fancy cachedComponents from next is a game changer
Answer
but that site I shared shows navigation with a long delayed data fetch and allows you to see how navigation and content to page can be speed up