vercel / vercel/next.js

Hard Navigation On Client side Navigation (using Link component) in Nextjs 15

Open
#72,383 9 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Linking and Navigating
Dominant language
JavaScript
Stars
142k
Forks
32.4k
Avg merge
2d 14h
Merged PRs (30d)
351

Description

Link to the code that reproduces this issue

https://codesandbox.io/p/devbox/musing-lalande-js9nmq?file=%2Fapp%2Fpage.tsx%3A5%2C1

To Reproduce
1.	Create a new page in the starter project.
2.	Add a link to that page on the home page.
3.	Run the app locally.
4.	Click on the link.
5.	A hard navigation occurs, causing the window to reload and the page document to be downloaded.

In Next.js v14, this behavior wouldn’t occur. Navigations were handled as soft navigations, resulting in the document not being downloaded on every navigation and requested only once.

Current vs. Expected behavior

In Next.js v15, clicking on internal links leads to full page reloads (hard navigations), resulting in the entire page document being downloaded each time. This behavior differs from Next.js v14, where navigations were handled as soft navigations (client-side transitions), allowing for faster and more efficient page changes without reloading the entire document.

Provide environment information
Operating System:
  Platform: macos
  Arch: x64
Binaries:
  Node: 20.9.0
  npm: 10.1.0
  Yarn: 1.22.19
  pnpm: 9.9.0
Relevant Packages:
  next: 15.0.2
  react: 18.3.0,
  react-dom": 18.3.0,
  typescript: 5.1.6
Which area(s) are affected? (Select all that apply)

Navigation

Which stage(s) are affected? (Select all that apply)

next dev (local), next start (local), Other (Deployed)

Additional context

image

https://github.com/user-attachments/assets/5fd95c4d-3f0d-4bd5-9849-4c35575b3872

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked CodeSandbox reproduction, especially app/page.tsx, and compare the internal Link navigation under Next.js 15 with the stated Next.js 14 behavior. Done means clicking the internal link performs a soft client-side transition without reloading or downloading the full document.

Written by the indexing model from the issue text.

Assessment

Tech stack
nextjs, react
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.