Ir para o conteúdo principal

Tornar um portfólio Next.js visível no Google: o SEO que realmente conta

Favicon, nome do site, dados estruturados, sitemap multilíngue: os sinais técnicos concretos que decidem a aparência do seu site nos resultados de busca — e como os ajustei neste portfólio.

O problema: bem posicionado não quer dizer bem apresentado

Quando se digita meu nome no Google, meu portfólio aparece em primeiro lugar. O posicionamento funciona. Mas um bom ranking não garante uma boa apresentação: o ícone exibido ao lado do link, o nome do site, a descrição — tudo isso se decide em sinais técnicos precisos que o Google lê no seu código.

Este artigo detalha os ajustes que fazem a diferença entre um resultado genérico e um que inspira confiança.

O favicon: uma restrição que quase ninguém respeita

O Google mostra um ícone à esquerda de cada resultado. Para que seja o seu e não um fallback genérico, três condições:

  • O favicon deve ser servido numa URL estável e declarado via <link rel="icon">.
  • Seu tamanho deve ser um múltiplo de 48px (48, 96, 144…). Um 64×64, por mais comum que seja, é simplesmente ignorado pelo Google.
  • Ele deve permanecer legível em tamanho muito pequeno: um monograma ou um símbolo, nunca um logo detalhado.

No Next.js, um simples arquivo app/icon.tsx gera o favicon e injeta automaticamente a tag <link>. A armadilha se esconde no tamanho exportado.

Um favicon perfeito, mas em 64×64, nunca aparecerá nos resultados do Google. O detalhe que custa semanas de dúvida.

O «nome do site»: retomar o controle do que o Google exibe

Por padrão, o Google costuma exibir o domínio (meusite.com) no lugar do nome verdadeiro. Para lhe impor um nome próprio, é preciso alinhar três sinais que devem ser rigorosamente idênticos:

  • O campo name dos dados estruturados WebSite (JSON-LD).
  • A tag og:site_name (Open Graph).
  • A meta application-name.

Se esses três valores divergirem — ainda que seja só «Jean Portfólio» de um lado e «Jean — Portfólio» do outro — o Google desiste e recai no domínio. A coerência é a única regra.

Os dados estruturados: explicar quem você é

O JSON-LD Person é o que permite ao Google entender que o site fala de um indivíduo específico, com uma profissão, uma localização e perfis sociais. Os campos que mais pesam:

  • name, jobTitle, description — a identidade de base.
  • sameAs — a lista dos seus perfis (GitHub, LinkedIn). É o que liga seu site à sua presença online e alimenta o Knowledge Panel.
  • image — uma foto, útil para os resultados enriquecidos.

Ligar cada entidade por um identificador @id (#person, #website) evita duplicatas e dá ao Google um grafo limpo em vez de uma coleção de fichas isoladas.

O sitemap multilíngue: não se deixar devorar pelos hreflang

Um site em vários idiomas deve dizer ao Google qual versão mostrar a quem. Sem isso, os diferentes idiomas se canibalizam no índice. A regra: cada URL declara todas as suas variantes linguísticas via alternates.languages, mais um x-default.

O Next.js gera um sitemap.ts nativo onde cada entrada carrega seus hreflang. É mais confiável que os plugins de terceiros, que muitas vezes perdem as rotas dinâmicas do tipo [locale].

O que realmente conta, em ordem

Se eu tivesse que priorizar para um novo projeto:

  1. Google Search Console — sem ele, você está cego. Envie o sitemap, solicite a indexação.
  2. Coerência dos sinais de identidade — favicon em conformidade, nome do site alinhado, JSON-LD limpo.
  3. Conteúdo real — um site de uma única página atinge o teto rápido. Artigos técnicos como este fazem você existir em consultas reais.
  4. Os Core Web Vitals — um site rápido é um site mais bem posicionado. Meça, depois otimize.

O SEO técnico não é mágica: é uma série de sinais claros, enviados com limpeza, e depois deixados ao tempo que o Google leva para re-rastrear. A paciência faz o resto.

React Compiler 1.0: a memoização automática chega à produção