Repository: next.js
Issue: (Shallow routing) updating search params causes server code to rerun.
Labels: Navigation

### Verify canary release

- [X] I verified that the issue exists in the latest Next.js canary release

### Provide environment information

```bash
{
  name: 'my-app',
  description: 'my-app',
  'dist-tags': {
    latest: '0.1.0'
  },
  versions: [
    '0.1.0'
  ],
  maintainers: [
    {
      name: 'mdathrika',
      email: 'mdathrika@ebay.com'
    }
  ],
  time: {
    modified: '2022-06-20T15:34:47.301Z',
    created: '2013-05-30T19:30:56.012Z',
    '0.1.0': '2013-05-30T19:30:58.974Z'
  },
  users: {
    'enas-443': true
  },
  version: '0.1.0',
  scripts: {
    start: 'node server.js'
  },
  license: 'Apache License 2.0',
  dependencies: {
    raptor: '>=2.3.0',
    optimist: '~0.3.5',
    'express-raptor': '~0.1.2',
    express: '~3.1.1',
    request: '~2.16.6',
    'ebay-global-header': 'git://github.scm.corp.ebay.com/cubejs-ebay/ebay-global-header-node.git',
    'raptor-optimizer-ready-plugin': 'git://github.scm.corp.ebay.com/cubejs-ebay/raptor-optimizer-ready-plugin.git',
    'ebay-ui-components': 'git://github.scm.corp.ebay.com/Raptor/RaptorUIComponents.git',
    'raptor-hot-reload': '~0.1.3',
    'socket.io': '~0.9.14',
    cluster2: 'git://github.scm.corp.ebay.com/cubejs/cluster2.git',
    'context-config': 'git://github.scm.corp.ebay.com/cubejs/context-config-node.git',
    'raptor-config': 'git://github.scm.corp.ebay.com/cubejs-ebay/raptor-config-node.git'
  },
  devDependencies: {},
  readmeFilename: 'README.md',
  dist: {
    shasum: '495332e31a4fa9bca5e100798f7cfb30663c73ad',
    tarball: 'https://registry.npmjs.org/my-app/-/my-app-0.1.0.tgz',
    integrity: 'sha512-CLIDEWQdnm3x96rWAQgm9u+jorK1KdGN9SC1qoyHuEc3KyKIw1NJ6fQ3p1NzDMPSpVt01ojiUbtdsZuIlQ4nPQ==',
    signatures: [
      {
        keyid: 'SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA',
        sig: 'MEUCIE2UwWOiqF7h+/wy7couMhgLBPBNm3dMhi3qyVUt+MtjAiEAlMyO12Ros0SDJiQRteOCMr+mPm8mtDGDmAn662Nkzr4='
      }
    ]
  },
  directories: {}
}
```


### Which area(s) of Next.js are affected? (leave empty if unsure)

App directory (appDir: true), Routing (next/router, next/navigation, next/link)

### Link to the code that reproduces this issue

https://github.com/Tomekmularczyk/next-shallow-routing

### To Reproduce

The app has 3 links that change the searchParam to one of: `/?step=1`, `/?step=2` or `/?step=3`. Notice that initially when you click on the link and change the search param, the server code reruns and causes the all the data fetching logic to rerun. Once the link has been visited at least once, you can navigate without causing any server code to run again (thanks to in-memory client-side cache). See the video:

https://github.com/vercel/next.js/assets/12544704/14220251-c551-452a-b39a-f16e8853018a



### Describe the Bug

Updating search params causes all the data on the server to be refetched when it's often a case where search params are used only to store some meta data or UI state.

### Expected Behavior

I want to update the URL with a search param without rerunning the server code and triggering data fetching all over again. This used to be something called a shallow routing in the previous versions of NEXT. 

### Which browser are you using? (if relevant)

_No response_

### How are you deploying your application? (if relevant)

Vercel

Related discussion https://github.com/vercel/next.js/discussions/48110#discussioncomment-5862857