CSS e web

Imagens OG dinâmicas: gere prévias de link automaticamente

Fazer à mão uma imagem de prévia para cada página não escala, e uma imagem genérica para o site inteiro desperdiça a imagem mais vista que você tem. Gere-as.

GradientlyConta verificada do Gradiently··7 min de leitura
Capa: Storm Relay · GR·M4W3·J3

Resumindo

  • Uma imagem OG dinâmica é uma imagem de prévia Open Graph gerada automaticamente para cada página, em geral a partir do título, da categoria e de um fundo de marca consistente.
  • O tamanho padrão é 1200 × 630 pixels, e a página precisa apontar para a imagem com uma URL absoluta na tag og:image.
  • Você pode gerar imagens OG uma vez na hora do build, que é o mais barato, ou sob demanda, que serve a páginas cujos dados mudam, desde que o resultado fique em cache.
  • As plataformas guardam em cache as imagens de prévia por URL, então trocar uma imagem costuma significar trocar o endereço dela ou pedir à plataforma que busque a página de novo.
  • Desenhe o modelo pensando numa miniatura: um título curto em tipografia grande, margens generosas e um fundo que continue reconhecível quando pequeno.
Nesta página

Uma imagem OG dinâmica é uma imagem de prévia de link que o seu site gera para cada página, em vez de alguém desenhá-la à mão. Quando uma página é compartilhada no LinkedIn, no Slack ou num app de mensagens, a plataforma busca a imagem indicada na tag og:image da página. Se essa imagem é montada a partir do título e dos dados da própria página, todo artigo, produto e perfil ganha uma prévia que diz exatamente o que é.

Este guia trata do design do modelo, das duas formas de gerar imagens, das tags que as conectam, do cache e dos testes. Para o tamanho em si e como as plataformas recortam, veja o nosso guia do tamanho da imagem Open Graph.

Por que toda página deve ter a sua própria imagem OG

A prévia costuma ser a primeira coisa que alguém vê da sua página e, num feed cheio, é quase tudo o que vê. Um único cartão genérico com o logotipo para o site inteiro faz todo link compartilhado parecer igual, então nenhum diz o que há por trás. Uma imagem por página leva o título real da página na sua identidade visual: reconhecivelmente sua e específica o bastante para merecer o clique.

Guia de campo
Como corrigir o banding em gradientes
Gradiently · @gradiently

Um modelo, preenchido com o título de um artigo…

Guia de campo
Como escolher as cores da marca
Gradiently · @gradiently

…e com o de outro. Consistente o bastante para reconhecer, específico o bastante para clicar.

Desenhando um modelo de imagem OG

Desenhe o modelo como desenharia uma miniatura, porque é assim que ele costuma ser visto. As prévias aparecem numa fração do tamanho real, e alguns apps mostram uma versão menor e recortada. As palavras que importam devem sobreviver às duas.

  1. 1

    Comece em 1200 × 630

    Desenhe em tamanho total e confira a um quarto dele. Se você não consegue ler o título a 300 pixels de largura, ele está pequeno ou longo demais.

  2. 2

    Use o título, não a página toda

    Uma linha de tipografia grande, ou duas no máximo. Títulos longos precisam de uma regra: encurte-os nos dados ou reduza o tamanho da fonte quando passarem de um comprimento definido.

  3. 3

    Mantenha margens largas

    Mantenha o título e o logotipo longe das bordas para que um recorte mais justo não os corte. Cerca de 60 a 80 pixels de margem neste tamanho é um ponto de partida sensato.

  4. 4

    Acrescente um contexto

    Uma pequena etiqueta com a seção, o autor ou a data ajuda as pessoas a situar o link. Mais de uma linha extra transforma uma prévia num documento.

  5. 5

    Faça o fundo carregar a marca

    Um gradiente ou material consistente faz mais pelo reconhecimento do que um logotipo grande. Mantenha a parte mais brilhante e agitada longe das palavras; o texto sobre gradiente explica como.

Prévia fraca

  • O mesmo cartão com o logotipo em toda página
  • Título e descrição inteiros espremidos em fonte pequena
  • Texto encostado nas bordas
  • Uma foto agitada atrás de palavras brancas

Prévia forte

  • O título da própria página, grande
  • Uma etiqueta curta de contexto
  • Margens largas que sobrevivem a um recorte
  • Um fundo de marca calmo e com contraste claro

Gerando imagens OG no build ou sob demanda

Há dois momentos para fazer a imagem. No build, o seu site renderiza uma imagem para cada página uma única vez e a serve como arquivo estático: rápido, barato e ideal para artigos e documentação. Sob demanda, uma rota desenha a imagem na primeira vez que ela é pedida: certo para páginas cujos dados mudam, como o número de seguidores de um perfil ou o preço de um produto. As imagens sob demanda precisam ficar em cache, ou cada compartilhamento e cada visita de rastreador repete o trabalho.

AbordagemMelhor paraAtenção a
No buildArtigos, documentação, páginas de destinoO tempo de build cresce com o número de páginas
Sob demanda, com cachePerfis, produtos, conteúdo de usuáriosDefina cabeçalhos de cache; renderizações a frio são mais lentas
Feita à mãoUm punhado de páginas principaisNão escala e fica desatualizada

A maioria dos frameworks tem um jeito de desenhar uma imagem a partir de uma marcação parecida com HTML. No Next.js, um arquivo opengraph-image.tsx ao lado de uma rota gera a imagem dela com ImageResponse, e o Next acrescenta as metatags para você. A mesma ideia funciona em outros lugares com um navegador headless tirando uma captura de uma página-modelo.

ts
// app/guide/[slug]/opengraph-image.tsx
import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { ImageResponse } from 'next/og'
import { getArticle } from '@/lib/articles'

export const size = { width: 1200, height: 630 }
export const contentType = 'image/png'

export default async function Image({ params }: { params: Promise<{ slug: string }> }) {
  const { slug } = await params
  const article = await getArticle(slug)
  const font = await readFile(join(process.cwd(), 'assets/Inter-SemiBold.ttf'))

  return new ImageResponse(
    (
      <div
        style={{
          width: '100%',
          height: '100%',
          display: 'flex',
          flexDirection: 'column',
          justifyContent: 'flex-end',
          padding: 72,
          backgroundImage: 'linear-gradient(135deg, #120a2e 0%, #4c1d95 55%, #db2777 100%)',
          color: '#ffffff',
          fontFamily: 'Inter',
        }}
      >
        <div style={{ fontSize: 28, opacity: 0.8 }}>Field Guide</div>
        <div style={{ fontSize: article.title.length > 40 ? 60 : 76, lineHeight: 1.1 }}>
          {article.title}
        </div>
      </div>
    ),
    { ...size, fonts: [{ name: 'Inter', data: font, weight: 600, style: 'normal' }] },
  )
}
Uma imagem OG por artigo no Next.js. O título diminui de tamanho quando é longo, e a fonte é carregada como um arquivo TTF.

As tags Open Graph que conectam a imagem

As plataformas encontram a imagem por metatags no head da página. O endereço da imagem deve ser absoluto, com https:// e o domínio, porque o rastreador o lê de fora do seu site. Declarar a largura e a altura ajuda algumas plataformas a diagramar a prévia antes de baixarem a imagem, e o texto alternativo a descreve para quem usa leitores de tela.

html
<meta property="og:title" content="How to fix gradient banding" />
<meta property="og:description" content="Why gradients show stripes, and four fixes that work." />
<meta property="og:image" content="https://example.com/guide/gradient-banding/opengraph-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="The words How to fix gradient banding on a violet gradient" />
<meta name="twitter:card" content="summary_large_image" />
As tags de que uma página precisa para uma prévia grande. O twitter:card pede ao X o layout de imagem grande.

Open Graph 1200 × 630

1200 × 630

Link do LinkedIn 1200 × 627

1200 × 627

Post do X 1600 × 900

1600 × 900

As prévias de link ficam perto de 1,91:1. Uma imagem de 1200 × 630 cobre os casos comuns; uma imagem separada para o anexo de um post é outro trabalho.

Cache e testes de imagens OG

As plataformas guardam prévias em cache, às vezes por muito tempo. Se você muda uma imagem mas mantém o endereço, as pessoas podem continuar vendo a antiga. Acrescente uma versão ao endereço, como ?v=2, quando o design mudar, ou peça à plataforma que busque a página de novo. Para imagens sob demanda, envie cabeçalhos de cache para o seu servidor e qualquer CDN guardarem o resultado.

  • Cole a página no Post Inspector do LinkedIn para ver a prévia e atualizar o cache dela.
  • Use o Sharing Debugger da Meta para o Facebook, que também consegue buscar uma página de novo.
  • Cole o link num rascunho de post no X, ou numa conversa privada no Slack ou no WhatsApp, para ver a prévia real sem enviar nada.
  • Abra o endereço da imagem direto num navegador para confirmar que ele devolve um PNG, no tamanho certo, sem login.

Trate as imagens OG como parte de qualquer lançamento: elas estão na checklist dos nossos gráficos do dia de lançamento, e o conjunto completo de formatos está em tamanhos de imagem para redes sociais. Se você desenha as prévias no Gradiently, a API dele pode renderizar um design salvo como um PNG exato de 1200 × 630, o que serve a pipelines e agentes de IA que fazem imagens para você.

Perguntas frequentes

O que é uma imagem OG dinâmica?

É uma imagem de prévia de link Open Graph gerada automaticamente para cada página, em geral a partir do título e dos dados da página, num modelo consistente da marca, e não desenhada à mão.

Qual deve ser o tamanho de uma imagem OG?

1200 × 630 pixels é o padrão. Mantenha as palavras importantes longe das bordas, porque alguns apps mostram uma versão menor ou recortada.

Por que a prévia antiga continua aparecendo depois que troquei a imagem OG?

As plataformas guardam em cache as imagens de prévia por URL. Mude o endereço da imagem, por exemplo com uma query de versão, ou use o inspetor ou o debugger da plataforma para buscar a página de novo.

Devo gerar imagens OG no build ou sob demanda?

O build é mais barato e serve a páginas que raramente mudam. Gere sob demanda para páginas cujos dados mudam e guarde o resultado em cache para não redesenhá-lo a cada visita.

A og:image precisa de uma URL absoluta?

Precisa. Use o endereço completo, com https e o domínio, porque os rastreadores leem a tag de fora do seu site.

Compartilhar este guia

Escrito pelo GradientlyConta verificada do Gradiently

A equipe por trás do Gradiently, uma ferramenta de design criada em torno dos Marks: gradientes vivos que fazem tudo o que você cria ter a sua cara.

Ver nosso perfil