DEV Community

Cover image for Aprenda a fazer SEO no NextJs
André Peixoto
André Peixoto

Posted on

Aprenda a fazer SEO no NextJs

Bom meu camarada, aqui eu não vou explicar o que é SEO, o objetivo é mostrar como o Next resolve um problema do React quando falamos em SEO.


1° Ponto Importante

No React a renderização é CSR (Client Side Rendering), ou seja, a renderização do seu site é feita do lado do cliente, mas você pode perguntar, qual o problema disso?

Veja esse gráfico

CSR Render

Nesse processo, existem 3 principais problemas pro SEO


1» Velocidade de Carregamento

A renderização do lado do cliente pode ser mais lenta, o que pode afetar a velocidade de carregamento da página e prejudica o ranqueamento do Google.

2» Conteúdo "Invisível"

O Google pode ter dificuldade em rastrear o conteúdo da página gerado dinamicamente pelo JavaScript, o que pode afetar a capacidade de indexação da página.

3» URL Dinâmicas

A renderização do lado do cliente pode resultar em URL dinâmicas, o que pode prejudicar a capacidade do Google de rastrear e indexar a página.

Bom, agora veja esse outro gráfico, essa é a renderização SSR (Server Side Rendering), que por padrão é usado no NextJs.

SSR Render

Compare o passo 3 entre os dois métodos.

No SSR a página já foi renderizada pelo Next, mas ainda não está interativa, mas pro queridinho SEO a leitura e rastreamento da página já está funcionando.


Bom, até aqui sem novidades, o Next faz isso por padrão, mas eu queria apenas deixar clara as diferenças.

Mas você pergunta, e como melhorar meu SEO?

No Next você tem um arquivo chamado head.tsx (.js ou .jsx) e nele você define as metatags. E esse arquivo pode ser diferente em cada página e pode inclusive passar os parâmetros por Props

Essa é uma técnica que gosto bastante, criar um arquivo de tags globais, pois você vai usar em toda estrutura do site e todas as páginas, pode ser viewpoint e favicon por exemplo, mas você pode acrescentar outras que façam sentido no seu projeto, veja como ficaria.

export default function GlobalTags() {
  return (
    <>
      <meta content="width=device-width, initial-scale=1" name="viewport" />
      <link rel="icon" href="/favicon.ico" />
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

No seu arquivo head.tsx você importa o GlobalTags e cria as metatags específicas daquela página.

import GlobalTags from "./globalTags";

export default function Head() {
  return (
    <>
      <GlobalTags/>
      <title>André Peixoto | Front End Developer</title>
      <meta name="description" content="André Peixoto | Front End Developer" />
      <meta property="og:title" content="Front-End Developer | André Peixoto" />
      <meta
        property="og:description"
        content="Um desenvolvedor apaixonado por design, responsividade e performance."
      />
      <meta property="og:type" content="website" />
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs