Não há mais a necessidade de utilizar o getServerSideProps() para carregar o conteúdo da página no HTML (melhorando assim o SEO). Hoje o NextJS faz isso automaticamente.
Pelo que pesquisei isso foi melhorado a partir do NextJS 13+. Anteriormente o NextJS era client-side por padrão com Pages Router. Mas atualmente o NextJS é server-side por padrão com App Router. Dessa maneira não precisamos mais utilizar getServerSideProps() com a finalidade de atualizar o conteúdo no HTML.
Faça o teste!!
Exemplo Pages Router (client-side por padrão):
// pages/posts.tsx
export async function getServerSideProps() {
const res = await fetch('https://api.example.com/posts')
const posts = await res.json()
return {
props: { posts },
}
}
export default function Posts({ posts }) {
return (
<ul>
{posts.map((p) => <li key={p.id}>{p.title}</li>)}
</ul>
)
}
Exemplo App Router (server-side por padrão):
// app/posts/page.tsx
export default async function Posts() {
const res = await fetch('https://api.example.com/posts', { cache: 'force-cache' })
const posts = await res.json()
return (
<ul>
{posts.map((p) => <li key={p.id}>{p.title}</li>)}
</ul>
)
}