SEO para Gatsby
Como otimizar um site Gatsby para busca — os quatro caminhos de renderização do Gatsby (SSG, DSG, SSR e somente de cliente) e o que cada um significa para rastreabilidade, a Head API moderna versus o react-helmet legado, sitemaps, canônicas, SEO de imagens, o custo do pacote React nos CWV e o risco de manutenção na era Netlify.
Idiomas
1 sinal de evidência nesta página
- Ferramenta relacionada ativaCanonicalization Checker
O Gatsby tem quatro opções de renderização: SSG (o padrão — páginas pré-renderizadas para HTML estático em gatsby build), DSG (geração estática adiada na primeira requisição), SSR (renderização no servidor por requisição via Gatsby Functions) e rotas somente de cliente (renderizadas inteiramente no navegador). A maioria dos sites Gatsby usa SSG, que oferece HTML totalmente renderizado aos crawlers na primeira busca, sem esperar por uma fila de renderização — uma base forte de SEO, muito melhor que um aplicativo React puramente client-side. Mas essa base não é universal: páginas DSG e SSR geram HTML fora da etapa de build e precisam de suas próprias verificações em produção, e não se deve presumir que rotas somente de cliente expõem conteúdo específico da rota no HTML inicial. Qualquer que seja o caminho, o Gatsby ainda envia o runtime React completo (~200KB+) e o hidrata no cliente — um custo de Core Web Vitals, não de rastreabilidade. A forma atual de administrar metadados é a Gatsby Head API integrada (v4.19+), que funciona nos quatro caminhos e substitui gatsby-plugin-react-helmet. As armadilhas recorrentes são tags canônicas duplicadas, páginas de rascunho/órfãs vazando para sitemaps, texto alt ausente, a armadilha de sitemap apenas de produção, rotas DSG/SSR/somente de cliente que exigem verificações explícitas de sitemap e comportamento em produção e um framework cuja manutenção desacelerou bastante desde a aquisição pela Netlify em 2023.
TL;DR — Por padrão, o Gatsby transforma suas páginas em HTML pronto antes de qualquer visita (esse modo se chama SSG). Assim, quando o Google chega, seu conteúdo já está na página — sem esperar pelo JavaScript. Isso dá ao Gatsby uma boa vantagem inicial em SEO. O Gatsby também tem outras opções de renderização para páginas que precisam gerar conteúdo depois ou usar dados por requisição — vale conhecê-las se o seu site usa alguma delas. A desvantagem: ele ainda envia um grande pacote React ao navegador, o que pode deixar sua página lenta, e você ainda precisa configurar meta tags, sitemaps, canônicas e texto alternativo de imagens.
O que é o Gatsby
Gatsby é um framework de sites construído sobre o React. A maioria dos aplicativos React monta a página no seu navegador depois que o JavaScript carrega — o que é um problema para SEO, porque um mecanismo de busca que busca a página primeiro vê uma estrutura quase vazia. O Gatsby inverte isso por padrão. Quando você executa gatsby build, ele transforma a maioria das páginas em um arquivo HTML completo antecipadamente. Assim, quando Google, Bing ou um leitor solicita uma dessas páginas, o conteúdo já está no HTML. Evidence for this claim Gatsby creates static HTML files during its production build. Scope: Gatsby static generation; client-side behavior can still be added. Confidence: high · Verified: Gatsby: Builds and deploys
Esse modo padrão faz do Gatsby um gerador de site estático (SSG) e explica por que ele geralmente é bom para SEO desde o início — muito melhor que um aplicativo React simples. O Gatsby também permite que páginas individuais adotem três outros modos de renderização — gerar na primeira requisição, gerar por requisição em um servidor ou renderizar inteiramente no navegador — que a aba Avançado aborda, pois cada um muda o que um crawler realmente vê.
Por que as pessoas se preocupam com Gatsby e SEO (e por que em geral não deveriam)
O mito mais comum é “Gatsby is bad for SEO because it uses React.” Tradução: “Gatsby é ruim para SEO porque usa React.” Isso é falso. A parte React roda depois que a página já foi construída e entregue — ela apenas torna a página interativa. O texto, os links e os títulos que importam para um mecanismo de busca já estão no HTML desde o começo.
Portanto, o Gatsby supera automaticamente o maior obstáculo. O que ele não faz é cuidar de todo o SEO para você.
O que você ainda precisa configurar
Um site Gatsby não é otimizado automaticamente. Você ainda precisa:
- Adicionar title tags e meta descriptions a todas as páginas (a forma moderna é a Gatsby Head API integrada). Evidence for this claim Gatsby's Head API lets pages export document-head metadata. Scope: Gatsby Head API. Confidence: high · Verified: Gatsby: Head API
- Gerar um sitemap (o plugin
gatsby-plugin-sitemap). - Definir URLs canônicas para que versões duplicadas de uma página não concorram.
- Escrever texto alternativo para imagens — a ferramenta de imagens do Gatsby redimensiona e otimiza as imagens automaticamente, mas não escreve o alt para você.
A única coisa que surpreende as pessoas
O Gatsby ainda envia o runtime React completo (~200KB+) ao navegador em todas as páginas. Isso não prejudica o fato de você ser indexado — o HTML já está completo — mas pode deixar sua página lenta, o que afeta os Core Web Vitals (as métricas de velocidade da experiência de página do Google). Frameworks mais leves, como Astro, enviam quase nenhum JavaScript em comparação.
Mais uma coisa a saber se você está escolhendo Gatsby hoje: a Netlify adquiriu a Gatsby em 2023, e o desenvolvimento ativo desacelerou bastante desde então. Para um site Gatsby existente, tudo bem; para um projeto novo, vale ponderar essa escolha.
Quer a versão técnica — a Head API versus o antigo plugin react-helmet, as armadilhas de sitemap e canônicas, o trade-off dos CWV do pacote React e uma avaliação honesta do futuro do Gatsby? Mude para a aba Avançado.
TL;DR — O Gatsby tem quatro opções de renderização — SSG (o padrão), DSG, SSR e rotas somente de cliente — e elas não colocam o conteúdo no HTML bruto da mesma forma. O SSG pré-renderiza para HTML estático no momento do build (
gatsby build), então o conteúdo está no HTML bruto antes da primeira requisição do crawler — sem Web Rendering Service nem fila de renderização. O DSG adia a geração até a primeira requisição; o SSR gera por requisição no servidor; as rotas somente de cliente não renderizam nada específico da rota até o navegador executar o JavaScript. Qualquer que seja o caminho que entregue a página, o Gatsby hidrata um pacote React completo (~200KB+) no cliente, o que é um custo de Core Web Vitals, não de rastreabilidade. A abordagem atual de metadados é a Gatsby Head API integrada (v4.19+), que funciona nos quatro caminhos e substituigatsby-plugin-react-helmet. Os modos de falha recorrentes são tags canônicas duplicadas (Head API + react-helmet disparando juntos), páginas rascunho/órfãs vazando para sitemaps, a armadilha de sitemap apenas de produção, texto alt ausente emGatsbyImage, inconsistência de barra final e rotas DSG/SSR/somente de cliente que nunca passaram por uma verificação em produção. E há um elefante na sala: desde a aquisição da Gatsby pela Netlify em 2023, a manutenção desacelerou bastante.
As quatro opções de renderização do Gatsby — e por que importam para SEO
O Google processa páginas JavaScript em três fases — rastreamento, depois renderização e então indexação — e a renderização ocorre em uma passagem separada, a partir de uma fila que usa Chromium headless. A orientação do próprio Google é direta sobre por que você não deve depender disso: “Server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.” Tradução: “A renderização no servidor ou a pré-renderização continua sendo uma ótima ideia porque torna seu site mais rápido para usuários e crawlers, e nem todos os bots conseguem executar JavaScript.”
Um site Gatsby não é universalmente HTML estático gerado no build — o Gatsby oferece quatro caminhos distintos de renderização, escolhidos por página ou template Evidence for this claim gatsby build writes production output, including generated HTML, to the public directory. Scope: Gatsby production builds. Confidence: high · Verified: Gatsby CLI: build :
- SSG (Static Site Generation) — o padrão.
gatsby buildemite HTML estático totalmente renderizado em/publicpara a página. A primeira busca de HTML bruto do Googlebot já contém o conteúdo completo — texto, links e metadados. Este é o caminho seguro e de baixo risco, usado pela maioria das páginas Gatsby. - DSG (Deferred Static Generation). A geração é adiada até a primeira requisição da página, em vez de ocorrer para todas as páginas durante o build — útil para sites com enormes quantidades de páginas de pouco tráfego, quando um build completo seria lento. O build sozinho não informa o que um crawler vê; o HTML da página não existe até que algo a solicite, portanto o comportamento da primeira requisição e do cache precisa de sua própria verificação, não apenas de um log de build.
- SSR (Server-Side Rendering). A página é renderizada por requisição, usando dados do momento da requisição, via Gatsby Functions. Como roda durante a requisição, páginas SSR precisam de verificações de produção que uma página gerada no build não precisa: status da resposta, cabeçalhos de cache, comportamento diante de timeout e o que um crawler vê em uma resposta vazia ou de erro — nada disso aparece em um build local bem-sucedido.
- Rotas somente de cliente. Elas renderizam inteiramente no navegador e não recebem conteúdo específico da rota no HTML inicial — o mesmo perfil de um aplicativo React puramente client-side. Não presuma que o Google (ou qualquer crawler) verá algo específico da página até o JavaScript rodar; trate-as como dependentes de JS por projeto. Isso é adequado para conteúdo protegido/autenticado, mas errado para qualquer coisa que você queira indexar com conteúdo.
A hidratação React (ReactDOMClient.hydrateRoot()) acontece no cliente sobre o HTML produzido por qualquer um desses caminhos, exclusivamente para adicionar interatividade — essa parte é igual independentemente do caminho de renderização e é uma preocupação separada do caminho que gerou a página (mais sobre o custo da hidratação abaixo).
Compare SSG/DSG/SSR com um aplicativo React puramente client-side, que entrega um <div id="root"> vazio e depende do navegador (ou do renderizador) para construir a página. A maioria das páginas Gatsby envia HTML significativo por padrão — essa é a vantagem de indexabilidade, e ela é real, mas é uma propriedade de cada página, não uma garantia do framework. Opções de renderização e ferramentas de imagem não garantem sozinhas Core Web Vitals, indexação ou rankings; verifique a saída real de produção para o caminho usado por cada rota.
A desvantagem comum a SSG/DSG/SSR é de performance, não de rastreabilidade: o Gatsby envia o runtime React completo a todas as páginas e as reidrata. Mais sobre isso, e sobre a comparação com Astro, abaixo.
Gatsby Head API versus gatsby-plugin-react-helmet
Esta é a pergunta única mais importante de “você está fazendo do jeito moderno?” no SEO do Gatsby.
A abordagem legada — gatsby-plugin-react-helmet. Durante anos, a forma padrão de definir <title>, meta description e outras tags de head era usar a biblioteca react-helmet com esse plugin. A função do plugin era fornecer suporte a SSR para o react-helmet — sem ele, suas title/meta tags só apareceriam depois da execução do JS, não no HTML bruto, anulando o propósito. Funciona, mas tem problemas conhecidos com React Hooks e renderização concorrente, além de um bug de título em abas em segundo plano que você corrige com defer={false}.
A abordagem moderna — a Gatsby Head API (v4.19+). O Gatsby agora tem uma forma integrada de adicionar elementos ao head: uma exportação nomeada Head de qualquer arquivo de página ou template. Evidence for this claim Gatsby pages and templates can export a named Head function to add head elements. Scope: Gatsby Head API. Confidence: high · Verified: Gatsby: Head API
export const Head = () => (
<>
<title>Page Title</title>
<meta name="description" content="..." />
</>
)Ela recebe props úteis — location.pathname, params, data (da consulta GraphQL da página) e pageContext — e elimina duplicatas de tags que compartilham uma prop id (a última vence), embora executar dois mecanismos diferentes de tags de head ao mesmo tempo (Head API e uma chamada remanescente do react-helmet) ainda possa causar conflito mesmo com a deduplicação. Ela funciona somente em arquivos de página e templates, não em componentes arbitrários. As vantagens sobre o react-helmet: nenhum pacote de terceiros, nenhum wrapper Provider e ordem determinística das tags com streaming do React 18. Use a Head API em todos os projetos novos e planeje migrar os existentes.
A Head API funciona da mesma forma nos quatro caminhos de renderização — SSG, DSG, SSR e rotas somente de cliente suportam uma exportação Head. O que muda é quando sua saída chega ao HTML que um crawler pode buscar: no SSG ela é gravada durante o build; no DSG e no SSR é gerada na primeira requisição ou por requisição; em uma rota somente de cliente ela não está no HTML inicial. Não presuma que “adicionei uma exportação Head” equivale a “isso está no HTML bruto de todas as rotas” — verifique a saída de produção real (view-source: ou curl) para o caminho de cada rota, não apenas uma página representativa.
O bug de “meta tags no DevTools, mas não na fonte”. Um sintoma clássico de SEO no Gatsby: suas title/meta tags aparecem no Chrome DevTools, mas faltam em view-source:. A causa é que o DevTools mostra o DOM hidratado (depois da execução do JS), enquanto view-source mostra o HTML bruto. Se as tags aparecem apenas no DevTools, seu componente de SEO está renderizando no cliente em vez de ser gravado na saída estática do Gatsby — geralmente porque é usado como componente comum, e não como (ou dentro da) exportação Head da página. Verifique sempre o HTML bruto, não o DevTools.
Conectando um componente de SEO (a camada de dados GraphQL)
A camada de dados do Gatsby é GraphQL e é assim que você alimenta suas páginas com metadados.
useStaticQueryextrai padrões globais desiteMetadata(title, description,siteUrl) definidos emgatsby-config.js.- Consultas GraphQL no nível da página passam uma prop
datadiretamente para a exportaçãoHead— sem configuração extra. - O padrão comum é prop || fallback de siteMetadata: use o valor da página se ele existir; caso contrário, use o padrão do site.
Uma exportação Head que recebe dados da página se parece com:
export const Head = ({ data }) => (
<>
<title>{data.post.title}</title>
<meta name="description" content={data.post.excerpt} />
</>
)Sitemaps: gatsby-plugin-sitemap (e suas armadilhas)
Instale gatsby-plugin-sitemap e configure-o em gatsby-config.js. Algumas coisas costumam confundir:
- Ele gera
sitemap-index.xml, não/sitemap.xml. Envie a URL do índice ao Google Search Console — não envie/sitemap.xmlesperando que ele resolva. - Ele só roda em builds de produção. Não faz nada em
gatsby develop. Para testá-lo, executegatsby build && gatsby serve. As pessoas abrem relatos de “meu sitemap sumiu” que na verdade significam “eu nunca executei um build de produção”. createLinkInHead: truepor padrão adiciona automaticamente a referência ao sitemap no head do HTML.- Ele sempre exclui
/dev-404-page,/404e/offline-plugin-app-shell-fallback. <priority>e<changefreq>são ignorados pelo Google — a documentação do plugin afirma isso diretamente. Concentre-se em um<lastmod>preciso.entryLimittem como padrão 45 000 URLs por arquivo.
Excluir rascunhos é sua responsabilidade. O Gatsby constrói tudo o que encontra, então conteúdo em rascunho vai direto para o sitemap se você não o filtrar. Faça isso em gatsby-node.js com um filtro GraphQL (por exemplo, excluindo entradas sem data de publicação), não escondendo-o em um componente React — nesse momento ele já foi construído e listado.
DSG, SSR e rotas somente de cliente exigem uma decisão explícita de sitemap. O gatsby-plugin-sitemap reflete o que consegue ver no momento do build. Uma página SSG é simples — existe como arquivo estático, portanto é naturalmente elegível para sitemap. O HTML de uma página DSG ainda não existe durante o build (é gerado na primeira requisição), uma página SSR nunca tem HTML fixo e uma rota somente de cliente não tem conteúdo específico da rota para indexar em primeiro lugar. Não presuma que alguma delas está no sitemap (ou deveria estar) só porque a rota existe — decida página por página se ela pertence e verifique se o sitemap-index.xml gerado realmente reflete essa decisão, em vez de uma suposição feita no build.
Arquivo robots.txt: gatsby-plugin-robots-txt
gatsby-plugin-robots-txt gera robots.txt durante o build. O detalhe útil para SEO é a consciência do ambiente: ele lê process.env.GATSBY_ACTIVE_ENV e depois process.env.NODE_ENV, permitindo servir regras diferentes por ambiente. O uso clássico é bloquear crawlers em deploys de preview/branch da Netlify para que as URLs de homologação não sejam indexadas por acidente, mantendo a produção aberta.
URLs canônicas (e o bug da canônica duplicada)
Duas abordagens viáveis:
gatsby-plugin-canonical-urlsadiciona um<link rel="canonical">a todas as páginas. DefinastripQueryString: truepara que/blog?tag=fooe/blognão sejam tratados como páginas canônicas separadas — recomendado para a maioria dos sites.- A Head API, definindo as canônicas por conta própria a partir de
location.pathname:
export const Head = ({ location }) => (
<link rel="canonical" href={`https://example.com${location.pathname}`} />
)O bug da canônica duplicada. Este é um problema conhecido e fácil de encontrar: se você usa gatsby-plugin-canonical-urls e uma tag canônica do react-helmet ao mesmo tempo, emite duas tags <link rel="canonical">. Escolha um mecanismo. (Se estiver usando react-helmet, gatsby-plugin-react-helmet-canonical-urls é a opção compatível com helmet; na Head API, defina a canônica ali e remova o plugin.)
Barras finais. As páginas Gatsby podem ser acessíveis com e sem barra final, e o componente <Link> do Gatsby usa roteamento client-side pela History API — o que contorna os redirecionamentos 301 no servidor que você normalmente usaria para normalizar barras finais. Decida uma forma, imponha-a no nível do host/CDN e mantenha as canônicas consistentes.
SEO de imagens: gatsby-plugin-image
gatsby-plugin-image é genuinamente um dos pontos fortes do Gatsby. Dois componentes:
StaticImage— para imagens cujo caminho é conhecido e fixado durante o build.GatsbyImage— para imagens dinâmicas vindas do GraphQL.
O que ele faz automaticamente: vários tamanhos, formatos WebP/AVIF, carregamento lazy e breakpoints (750/1080/1366/1920px). Ele também gera placeholders (desfocados, de cor dominante ou SVG rastreado) que reservam espaço e evitam Cumulative Layout Shift — uma métrica de Core Web Vitals. Como as dimensões são definidas, você evita CLS; formatos modernos e carregamento lazy ajudam o LCP.
A única coisa que ele não faz é escrever o alt text. Isso é responsabilidade sua, sempre — alt ausente em GatsbyImage é uma das falhas de SEO mais comuns no Gatsby. (Migrando do antigo pacote gatsby-image? Existe um codemod: npx gatsby-codemods gatsby-plugin-image.)
Dados estruturados (JSON-LD)
O formato preferido do Google para dados estruturados é JSON-LD, e a forma limpa de adicioná-lo no Gatsby moderno é pela Head API com uma tag de script:
export const Head = ({ data }) => (
<script type="application/ld+json">
{JSON.stringify({
"@context": "https://schema.org",
"@type": "Article",
"headline": data.post.title,
})}
</script>
)gatsby-plugin-next-seo oferece componentes JSON-LD pré-construídos se você preferir não criá-los manualmente. Uma confusão frequente que vale esclarecer: gatsby-plugin-manifest não é um plugin de dados estruturados — ele gera o manifesto de aplicativo web da PWA (ícones, cor do tema), sem relação com schema.
O pacote React e os Core Web Vitals
Esta é a verdadeira fraqueza do Gatsby em relação aos geradores sem JS.
- Hidratação completa (o padrão do Gatsby 1–4) hidrata toda a árvore React e envia um runtime React de 200KB+ para todas as páginas. O HTML é pré-renderizado, então isso não prejudica a rastreabilidade — mas afeta diretamente a velocidade de carregamento e os CWV.
- Hidratação parcial (Gatsby 5, experimental) hidrata apenas componentes marcados com
"use client"e deixa o restante como HTML estático, reduzindo o JS enviado e melhorando diretamente TTI e CWV. As limitações são reais: apenas builds de produção, ainda beta e incompatível com emotion, styled-components egatsby-plugin-offline.
A conclusão é: o payload JS do Gatsby é um problema de performance, não de indexabilidade. O Googlebot ainda renderiza JS para avaliar sinais de experiência de página, então o pacote pode custar CWV mesmo quando seu conteúdo indexa bem.
Gatsby versus Astro para SEO
Se você está escolhendo um framework estático hoje, esta é a comparação que mais importa para SEO.
| Dimensão | Gatsby | Astro |
|---|---|---|
| JS enviado ao navegador | 200KB+ (runtime React completo) | ~5KB (apenas ilhas interativas) |
| Modelo de renderização | SSG → SPA (hidratação completa) | SSG → MPA (hidratação zero por padrão) |
| Velocidade do build (40 páginas) | 2–3 minutos | Menos de 10 segundos |
| Ecossistema de plugins de SEO | Maduro (gatsby-plugin-*) | Em crescimento |
| Impacto no crawl budget | Maior (mais JS para o Google renderizar) | Menor |
| Futuro do framework | Incerto (propriedade da Netlify, atividade reduzida) | Ativo, em crescimento |
Ambos pré-renderizam HTML indexável — nisso há empate. A diferença é o imposto do JS: as ilhas do Astro enviam uma fração do JavaScript, o que uma comparação da Vaihe resume assim: “Reduced JavaScript execution conserves crawl budget and accelerates page scanning.” Tradução: “A execução de menos JavaScript preserva o crawl budget e acelera a varredura das páginas.” (Uma ressalva histórica do outro lado: o tratamento de imagens do Astro não tinha largura/altura automáticas no momento daquela comparação, o que produzia avisos do Lighthouse — confira a documentação atual do Astro, pois isso pode já ter sido resolvido.)
Para ver como o campo inteiro se compara, consulte o hub de geradores de sites estáticos.
A parte honesta: a trajetória de manutenção do Gatsby
Não vou dourar a pílula, mas também não vou tratar isso como catástrofe.
A Netlify adquiriu a Gatsby Inc. em fevereiro de 2023. A Gatsby Cloud foi encerrada e os clientes foram transferidos para a Netlify; a Netlify afirmou que a aquisição “não afetaria o Gatsby JS”. Desde então, a atividade desacelerou bastante. Uma discussão muito lida na comunidade no GitHub (#39062) argumenta que o Gatsby está efetivamente abandonado — poucos commits, sem suporte ao React 19, um roadmap de 2024 que não foi entregue e o serviço de telemetria desligado. Os mantenedores descreveram o estado atual como correções de segurança, atualizações limitadas de dependências e correções de bugs fáceis de resolver.
O que isso significa para equipes de SEO. Para um site Gatsby existente, nada disso é uma emergência — ele compila, indexa e funciona. O risco é a deterioração do ecossistema ao longo do tempo: SEO depende de plugins (gatsby-plugin-sitemap, imagem, canonical-urls), e plugins envelhecidos (por exemplo, gatsby-source-shopify diante da descontinuação da API) podem quebrar e degradar a indexação silenciosamente. Para um projeto novo, leve isso a sério — os frameworks para os quais as pessoas estão migrando são Astro e Next.js.
Checklist de produção: verifique todos os caminhos de renderização
Uma sessão local de gatsby develop ou até um log limpo de gatsby build não prova o que um crawler realmente recebe. Como SSG, DSG, SSR e rotas somente de cliente geram HTML de maneiras diferentes, verifique o comportamento de produção por caminho em vez de presumir que uma página representativa cobre todos eles:
- Conteúdo do HTML bruto. Para cada caminho de renderização em uso, busque uma URL real de produção com
curl -s <url>ouview-source:— não com DevTools — e confirme que o conteúdo, o título e as meta tags que um crawler veria estão realmente ali. - Metadados (saída da exportação Head). Confirme que as tags da exportação
Headchegam a esse HTML bruto. É aqui que DSG/SSR diferem mais de SSG: as tags existem no seu código de qualquer forma, mas apenas uma busca de produção prova que chegaram à resposta. - Status HTTP. Verifique o status da resposta em produção, especialmente para rotas SSR e DSG — uma página que renderiza bem localmente pode retornar 500 em produção na primeira requisição ou sob carga de maneiras que um build nunca revela.
- Comportamento de cache. A saída SSG é um arquivo estático com cache previsível. O DSG faz cache depois da primeira requisição — confirme que a segunda é rápida e correta, não apenas a primeira. As respostas SSR dependem dos cabeçalhos de cache e da camada de hospedagem; verifique se conteúdo obsoleto ou por requisição não é servido ao visitante errado.
- Comportamento de falha e estado vazio. Para páginas SSR e DSG apoiadas por dados do momento ou da primeira requisição, confira o que um crawler vê se a busca desses dados falhar ou retornar vazio — um estado de erro não tratado não é a mesma página testada localmente com dados corretos.
- Geração e exclusões do sitemap. Confirme novamente que isso só acontece em um build de produção (
gatsby build && gatsby serve, nuncagatsby develop) e que as exclusões esperadas — rascunhos, rotas somente de cliente e qualquer item que você decidiu não listar — realmente estão ausentes dositemap-index.xmlgerado, não apenas da sua intenção.
Nada disso é opcional por caminho de renderização — um gatsby build bem-sucedido prova a saída SSG, não o comportamento DSG, SSR ou somente de cliente.
Erros comuns de SEO no Gatsby
- Ainda usar
gatsby-plugin-react-helmet— legado; migre para a Head API. - Meta tags no DevTools, mas não na fonte da página — o componente de SEO está renderizando no cliente; confira
view-source:, não o DevTools. - Conteúdo de rascunho em sitemaps — filtre rascunhos em
gatsby-node.jscom GraphQL, não em um componente React. - Páginas órfãs de
src/pages— o Gatsby cria rotas automaticamente para tudo ali; arquivos obsoletos são compilados e chegam ao sitemap. - Tags canônicas duplicadas —
gatsby-plugin-canonical-urls+ react-helmet disparando juntos. - Inconsistência de barra final — o roteamento client-side de
<Link>contorna redirecionamentos de barra final no servidor. - Não remover strings de consulta das canônicas — defina
stripQueryString: true. - Texto alternativo omitido em
GatsbyImage— ele não é gerado automaticamente. - Enviar
/sitemap.xml— o arquivo real é/sitemap-index.xml. - Testar o sitemap em
gatsby develop— ele só é gerado durantegatsby build. - Alternar noindex pelo estado React — o Google pode já ter processado o HTML bruto; e, ao encontrar
noindexno HTML bruto, pode pular a renderização. Mantenha decisões de noindex no HTML estático ou nos cabeçalhos do servidor.
Para os fundamentos de renderização JavaScript por trás de tudo isso, consulte o hub pai de JavaScript SEO.
Resumo de IA
Uma síntese concisa da versão Avançada:
- O Gatsby tem quatro caminhos de renderização — SSG, DSG, SSR e rotas somente de cliente. O SSG é o padrão:
gatsby buildpré-renderiza a página para HTML estático, então os crawlers recebem o conteúdo completo na primeira busca — sem fila de renderização e com a melhor base de indexabilidade. O DSG adia a geração até a primeira requisição; o SSR gera por requisição; rotas somente de cliente não renderizam nada específico da rota até o JavaScript rodar no navegador (mesmo perfil de um aplicativo React client-side simples). Verifique o HTML de produção por caminho — umgatsby buildbem-sucedido prova apenas o comportamento SSG. - O custo do pacote React é de performance, não de rastreabilidade, e vale para qualquer caminho. O Gatsby hidrata um runtime React completo (~200KB+) no cliente, o que pesa nos Core Web Vitals. Geradores sem JS (Hugo, Jekyll, Eleventy) não têm esse custo; o Astro envia ~5KB por meio de ilhas.
- Use a Gatsby Head API (v4.19+), uma exportação nomeada
Headde arquivos de página/template, para títulos, meta tags, canônicas e JSON-LD. Ela funciona nos quatro caminhos e substitui o legadogatsby-plugin-react-helmet. Funciona apenas em páginas/templates e deduplica porid. - Checklist de produção por caminho: conteúdo HTML bruto, metadados da exportação Head, status HTTP, comportamento de cache e tratamento de falha/estado vazio — confira os cinco para qualquer caminho que a rota realmente use, além de confirmar geração e exclusões do sitemap apenas em um build de produção.
- Sitemaps:
gatsby-plugin-sitemapgerasitemap-index.xml(envie esse, não/sitemap.xml) e só roda emgatsby build, não no modo de desenvolvimento. O Google ignora<priority>/<changefreq>— concentre-se em<lastmod>. Filtre rascunhos emgatsby-node.js. Rotas DSG, SSR e somente de cliente exigem uma decisão explícita de inclusão no sitemap — não presuma que são cobertas como uma página SSG. - Canônicas: Head API +
location.pathnameougatsby-plugin-canonical-urlscomstripQueryString: true— nunca os dois (bug da canônica duplicada). - Imagens:
gatsby-plugin-imagecuida automaticamente de tamanhos/WebP/carregamento lazy e evita CLS, mas não escreve texto alt — isso é manual. - O bug “DevTools, mas não view-source” = componente de SEO renderizando no cliente em vez de pela exportação
Head. - Risco de manutenção: a Netlify adquiriu o Gatsby em 2023; a atividade desacelerou (sem React 19 e com roadmap não entregue). Tudo bem para sites existentes; para projetos novos, pondere Astro/Next.js.
Documentação oficial
Documentação de fontes primárias do Gatsby e do Google.
Gatsby
- Rendering options — visão geral dos quatro caminhos de renderização do Gatsby: SSG, DSG, SSR e rotas somente de cliente.
- Using Deferred Static Generation — comportamento de geração do DSG na primeira requisição.
- Using Server-Side Rendering — saída do SSR no momento da requisição via Gatsby Functions.
- Client-only routes and user authentication — por que rotas somente de cliente não expõem conteúdo específico no HTML inicial.
- Adding an SEO component — padrão recomendado para componente de SEO.
- Gatsby Head API reference — forma moderna e integrada de administrar tags do head.
- Introducing the Gatsby Head API — por que ela substituiu o react-helmet.
- gatsby-plugin-sitemap — geração de sitemap (somente em builds de produção).
- gatsby-plugin-image —
StaticImage/GatsbyImage, formatos e prevenção de CLS. - gatsby-plugin-robots-txt — robots.txt sensível ao ambiente.
- gatsby-plugin-canonical-urls — tags canônicas para todo o site e
stripQueryString. - gatsby-plugin-react-helmet — abordagem legada para metadados.
- gatsby-plugin-next-seo — componentes JSON-LD/schema pré-construídos.
- React hydration in Gatsby — como o HTML estático se torna interativo.
- Understand the JavaScript SEO basics — as fases rastrear → renderizar → indexar e por que a pré-renderização ajuda.
Citações da fonte
Declarações registradas que se aplicam diretamente à arquitetura do Gatsby. Gatsby é um SSG JavaScript, portanto as fontes primárias relevantes são as orientações do Google sobre renderização JavaScript e as declarações de representantes do Google sobre o mesmo tema.
Google Search Central — fundamentos de SEO JavaScript
- “Server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.” — o argumento para exatamente o que o Gatsby faz no build. Tradução: “A renderização no servidor ou a pré-renderização continua sendo uma ótima ideia porque torna seu site mais rápido para usuários e crawlers, e nem todos os bots conseguem executar JavaScript.”
- “The page may stay on this queue for a few seconds, but it can take longer than that.” — sobre a fila de renderização que o HTML pré-renderizado permite evitar. Tradução: “A página pode permanecer nessa fila por alguns segundos, mas pode levar mais tempo que isso.”
Martin Splitt, Google (Developer Advocate)
- “Even though Googlebot can render JavaScript, we don’t want to rely on that.” — o princípio por trás de preferir SSG/SSR. (Via cobertura da SEJ / Botify.) Tradução: “Embora o Googlebot consiga renderizar JavaScript, não queremos depender disso.”
- “A lot of people are still looking at view source. That is not what we use for indexing. We use the rendered HTML.” — a razão exata pela qual o bug “DevTools versus view-source” do Gatsby confunde as pessoas. (Via SEJ.) Tradução: “Muitas pessoas ainda olham o código-fonte. Não é isso que usamos para indexação. Usamos o HTML renderizado.”
- “The median time in the render queue is only five seconds.” — observe que esta é a mediana; a latência da cauda pode ser muito maior. (BrightonSEO, via SEJ.) Tradução: “O tempo mediano na fila de renderização é de apenas cinco segundos.”
John Mueller, Google (Search Advocate)
- “Server-side rendering is not a requirement there. We can render JavaScript-based pages for the most part.” — contexto: SSR/SSG é boa prática, não requisito estrito; o Google eventualmente renderiza conteúdo CSR. (Via SEJ.) Tradução: “A renderização no servidor não é um requisito nesse caso. Na maior parte, conseguimos renderizar páginas baseadas em JavaScript.”
Checklist de SEO do Gatsby
Uma rodada para confirmar que um build Gatsby é realmente amigável à busca:
- O conteúdo principal aparece em View Source (HTML bruto), não apenas no DevTools — isso confirma que foi pré-renderizado, não que depende somente do cliente.
- Os metadados são definidos pela Gatsby Head API (exportação
Headde páginas/templates), não pelo react-helmet legado em trabalho novo. - Cada página tem um
<title>e uma meta description únicos definidos no build, com fallback desiteMetadata. - As tags canônicas são definidas de uma única forma — Head API ou
gatsby-plugin-canonical-urls, nunca os dois (evita o bug da canônica duplicada). -
stripQueryString: trueestá definido para que variantes com query string não fragmentem as canônicas. -
gatsby-plugin-sitemapestá instalado; você verificou a saída comgatsby build && gatsby serve(ele não roda no modo de desenvolvimento). - Você enviou
/sitemap-index.xml(não/sitemap.xml) ao Search Console. - Conteúdo em rascunho foi filtrado em
gatsby-node.js(GraphQL), para nunca entrar no sitemap. - Não há arquivos órfãos/obsoletos em
src/pagesque sejam compilados automaticamente em rotas. -
robots.txtbloqueia deploys de preview/branch da Netlify, mas mantém a produção aberta. - Todo
GatsbyImage/StaticImagetem texto alt explícito. - Assets JS/CSS não estão bloqueados em
robots.txt. - A forma da barra final foi decidida e imposta no host/CDN (não apenas via
<Link>). - As decisões de
noindexvivem no HTML estático ou nos cabeçalhos do servidor, não no estado React. - Os Core Web Vitals foram verificados — o pacote React é provavelmente o peso; considere hidratação parcial quando viável.
- Para cada caminho de renderização em uso (SSG, DSG, SSR, somente de cliente), você verificou em produção o HTML bruto, metadados, status HTTP, comportamento de cache e tratamento de falha/estado vazio — não apenas um log local de
gatsby build. - Rotas DSG, SSR e somente de cliente têm cada uma uma decisão de sitemap explícita e verificada — nenhuma usa a mesma suposição de uma página SSG.
Os modelos mentais
1. Rastreabilidade e performance são dois placares separados. O Gatsby é excelente em rastreabilidade (o HTML é pré-renderizado), mas paga em performance (o pacote React). Não misture os dois — “Gatsby é ruim para SEO por causa do React” confunde as categorias. Seu conteúdo indexa bem; é nos Core Web Vitals que o imposto do JS aparece.
2. Quanto mais cedo o HTML existe, menos pode dar errado. O SSG decide o HTML no momento do build — o ponto mais seguro. A página padrão do Gatsby é SSG, portanto está no lado seguro do espectro de renderização (somente cliente → SSR → DSG → SSG, aproximadamente do mais arriscado ao mais seguro para indexabilidade). Mas o Gatsby é um framework multimodo — uma página pode ser DSG, SSR ou somente de cliente, cada uma ocupando seu próprio ponto nesse espectro. Saiba qual modo cada rota realmente usa antes de presumir que está no lado seguro.
3. Head API por padrão; react-helmet apenas por herança.
Para qualquer coisa nova, a decisão está tomada: Gatsby Head API. react-helmet é algo de que você migra para fora, não algo que você procura. Se uma tag não aparece no HTML bruto, a primeira pergunta é: “isso está em uma exportação Head ou preso em um componente?”
4. Escolha exatamente um mecanismo de canônica.
Canônica da Head API ou gatsby-plugin-canonical-urls — nunca ambos. Dois mecanismos = duas tags canônicas = o bug da canônica duplicada. A mesma disciplina vale para qualquer coisa que escreva no <head>: uma única fonte de verdade por tag.
5. O Gatsby compila tudo o que encontra — filtrar é sua responsabilidade.
Rascunhos, arquivos obsoletos de src/pages e variantes com query string: o Gatsby não faz curadoria. Se você não excluir algo (em gatsby-node.js, na configuração de canônicas ou nas opções do sitemap), isso é enviado e rastreado.
6. Projeto novo versus site existente muda o cálculo de manutenção. Site Gatsby existente: mantenha-o, ele funciona. Projeto novo: a manutenção mais lenta e o risco de deterioração do ecossistema são fatores reais — avalie Astro/Next.js antes de se comprometer.
SEO do Gatsby — folha de consulta
Metadados: qual abordagem
| Abordagem | Status | Use quando |
|---|---|---|
Gatsby Head API (exportação Head) | Atual (v4.19+) | Todo trabalho novo; apenas páginas/templates |
gatsby-plugin-react-helmet | Legada | Sites existentes aguardando migração |
Plugins em resumo
| Plugin | O que faz | Armadilha de SEO |
|---|---|---|
gatsby-plugin-sitemap | Gera sitemap-index.xml | Apenas build de produção; envie a URL do índice |
gatsby-plugin-image | Tamanhos, WebP/AVIF, carregamento lazy, segurança contra CLS | Sem alt automático |
gatsby-plugin-canonical-urls | Tags canônicas para todo o site | Não combine com canônicas do react-helmet |
gatsby-plugin-robots-txt | robots.txt no build | Use regras de ambiente para bloquear deploys de preview |
gatsby-plugin-next-seo | Componentes JSON-LD pré-construídos | — |
gatsby-plugin-manifest | Manifesto de PWA (ícones/tema) | Não são dados estruturados |
Fatos rápidos
- O arquivo do sitemap é
/sitemap-index.xml, não/sitemap.xml. - O sitemap não é gerado em
gatsby develop— usegatsby build && gatsby serve. - O Google ignora
<priority>/<changefreq>— apenas um<lastmod>preciso. - O pacote React é ≈ 200KB+ por página (hidratação completa); um custo de CWV, não de rastreamento.
- O Astro envia cerca de 5KB em comparação (apenas ilhas).
gatsby develop≠ produção: sitemap, robots e algumas otimizações diferem.- A Netlify adquiriu o Gatsby em fevereiro de 2023; a manutenção desacelerou (ainda sem React 19).
Exportação de SEO Head em duas linhas
export const Head = ({ data, location }) => (
<>
<title>{data.post.title}</title>
<link rel="canonical" href={`https://example.com${location.pathname}`} />
</>
) Verifique os artefatos de produção do Gatsby
Execute isto depois de gatsby build, não contra gatsby develop:
find public -name '*.html' -type f | while IFS= read -r file; do
title_count=$(grep -Eio '<title>[^<]*</title>' "$file" | wc -l | tr -d ' ')
canonical_count=$(grep -Eio '<link[^>]+rel=["'"']canonical["'"'][^>]*>' "$file" | wc -l | tr -d ' ')
robots=$(grep -Eio '<meta[^>]+name=["'"']robots["'"'][^>]*>' "$file" | head -1)
if [ "$title_count" -ne 1 ] || [ "$canonical_count" -ne 1 ]; then
printf '%s\ttitles=%s\tcanonicals=%s\t%s\n' "$file" "$title_count" "$canonical_count" "$robots"
fi
doneIsso detecta saída ausente ou duplicada causada por mecanismos Head API/plugin sobrepostos. Revise os valores e a presença no sitemap separadamente.
Ferramentas para SEO do Gatsby
- Gatsby Head API (integrada, v4.19+) — a forma sem dependências de administrar
<title>, meta, canônica e JSON-LD por página/template. gatsby-plugin-sitemap— gerasitemap-index.xmlem builds de produção.gatsby-plugin-image—StaticImage/GatsbyImage, tamanhos responsivos, WebP/AVIF, carregamento lazy e placeholders que evitam CLS.gatsby-plugin-canonical-urls— tags canônicas para todo o site comstripQueryString.gatsby-plugin-robots-txt— robots.txt consciente do ambiente (bloqueia deploys de preview).gatsby-plugin-next-seo— componentes JSON-LD/schema pré-construídos se você não quiser escrever dados estruturados manualmente.view-source:/ inspeção de URL do GSC — a fonte de verdade para “meu conteúdo e metadados estão no HTML bruto?” (não o DevTools, que mostra o DOM hidratado).- Lighthouse / PageSpeed Insights — para ver o custo do pacote React nos Core Web Vitals e se vale buscar hidratação parcial.
gatsby build && gatsby serve— a única forma de testar localmente sitemap, robots.txt e otimizações exclusivas de produção.
O que não fazer em um site Gatsby
Erros concretos que as pessoas realmente cometem ao construir e publicar sites Gatsby — prevenção, não diagnóstico.
Manter gatsby-plugin-react-helmet em trabalho novo
O erro: recorrer ao react-helmet por hábito em páginas novas ou em um projeto novo, porque é isso que tutoriais antigos de Gatsby ainda mostram.
Por que está errado: o react-helmet tem problemas conhecidos com React Hooks e renderização concorrente, além de um bug de título em abas em segundo plano que você precisa corrigir com defer={false}. Ele também é um pacote de terceiros e um wrapper Provider de que você não precisa mais.
O que fazer: use a Gatsby Head API integrada (v4.19+) — uma exportação nomeada Head do arquivo da página ou template. Reserve o react-helmet para código existente que você ainda não migrou.
Executar dois mecanismos de canônica ao mesmo tempo
O erro: definir uma canônica via gatsby-plugin-canonical-urls e uma tag canônica do react-helmet (ou da Head API) na mesma página.
Por que está errado: ambos disparam e a página envia duas tags <link rel="canonical"> — um modo de falha conhecido do Gatsby que confunde qual URL você realmente pretendia definir como canônica.
O que fazer: escolha exatamente um mecanismo para todo o site (a Head API ou o plugin com stripQueryString: true) e remova completamente o outro.
Filtrar rascunhos em um componente React em vez de no build
O erro: esconder conteúdo não publicado com uma verificação no cliente (por exemplo, if (!post.published) return null) e presumir que isso o mantém fora da busca.
Por que está errado: o Gatsby compila tudo o que encontra em HTML estático antes de esse componente rodar no navegador — a página de rascunho já foi construída e já está listada no sitemap quando sua verificação React é executada.
O que fazer: filtre rascunhos em gatsby-node.js com uma consulta GraphQL (por exemplo, excluindo entradas sem data de publicação) para que nunca sejam compilados ou listados.
Publicar GatsbyImage sem texto alt
O erro: confiar que gatsby-plugin-image cuida de SEO de imagens de ponta a ponta porque gera tamanhos, formatos e placeholders automaticamente.
Por que está errado: o plugin otimiza a entrega — não escreve texto alt. Alt ausente em GatsbyImage/StaticImage é uma das falhas de SEO mais comuns do Gatsby justamente porque todo o restante da imagem parece resolvido.
O que fazer: trate o texto alt como campo obrigatório de todo componente de imagem, sempre — é a única parte do SEO de imagens que o Gatsby deixa inteiramente por sua conta.
Presumir que gatsby develop mostra a saída de SEO de produção
O erro: conferir sitemap, robots.txt ou comportamento de noindex em gatsby develop e concluir que algo está quebrado porque nada aparece.
Por que está errado: gatsby-plugin-sitemap e vários outros comportamentos de build simplesmente não rodam no modo de desenvolvimento — você não está vendo um bug, está vendo o modo de desenvolvimento fazer o que ele faz.
O que fazer: execute gatsby build && gatsby serve antes de tirar qualquer conclusão sobre sitemap, robots.txt ou otimizações exclusivas de produção.
Deixar o roteamento do <Link> esconder uma inconsistência de barra final
O erro: presumir que as regras de redirecionamento de barra final no servidor se aplicam em todos os lugares, incluindo a navegação dentro do aplicativo.
Por que está errado: o componente <Link> do Gatsby usa roteamento client-side pela History API, que contorna os redirecionamentos 301 no servidor que você normalmente usaria para normalizar barras finais — portanto, links internos podem servir silenciosamente a forma “errada” sem nunca passar pela regra de redirecionamento.
O que fazer: decida uma forma de barra final, imponha-a no nível do host/CDN e garanta que as canônicas sejam consistentes, independentemente de como a página foi acessada.
Problemas comuns de SEO no Gatsby
Consulta orientada pelo sintoma para problemas que você está vendo em um site Gatsby — comece pelo que observa.
Meta tags aparecem no DevTools, mas faltam em view-source
Sintoma: você inspeciona a página no Chrome DevTools e o título/meta description parecem corretos, mas view-source: (ou um curl bruto) mostra que estão ausentes ou genéricos.
Causa provável: o componente de SEO está renderizando no cliente — é usado como componente comum, e não como (ou dentro da) exportação Head da página, portanto só aparece no DOM depois da hidratação.
Correção: mova as tags para a exportação nomeada Head da página ou template. Confirme com view-source: ou curl -s <url> — não com DevTools, que mostra o DOM hidratado, não o que a busca bruta de um crawler recebe.
O sitemap está ausente ou vazio
Sintoma: você acessa /sitemap-index.xml (ou confere o Search Console) e não recebe nada ou vê uma lista incompleta.
Causa provável: quase sempre você testou em gatsby develop, onde gatsby-plugin-sitemap não roda de jeito nenhum. Com menos frequência, o plugin não está instalado/configurado em gatsby-config.js.
Correção: execute gatsby build && gatsby serve e confira novamente. Se continuar ausente, verifique se o plugin está presente em gatsby-config.js. Confirme solicitando diretamente /sitemap-index.xml — lembre-se de que essa é a URL do índice, não /sitemap.xml.
Uma página tem duas tags canônicas
Sintoma: ver a fonte (ou executar uma auditoria de schema/tags) mostra dois elementos <link rel="canonical"> na mesma página.
Causa provável: gatsby-plugin-canonical-urls e uma canônica do react-helmet (ou da Head API) estão disparando para a mesma página.
Correção: remova um dos mecanismos para que apenas uma fonte defina a canônica. Confirme vendo a fonte novamente e verificando com o Canonical Tag Checker do Patrick que exatamente uma canônica é resolvida.
Páginas órfãs ou de rascunho aparecem no sitemap
Sintoma: o sitemap (ou a cobertura do Search Console) lista URLs que você nunca pretendeu publicar — posts em rascunho ou arquivos obsoletos em src/pages.
Causa provável: o Gatsby cria e roteia automaticamente tudo o que encontra — uma entrada GraphQL não publicada que não foi filtrada ou um arquivo residual em src/pages vira uma página estática real e é listado como qualquer outra.
Correção: filtre rascunhos em gatsby-node.js com uma consulta GraphQL (por exemplo, excluindo entradas sem data de publicação) para que nunca sejam compilados. Para arquivos órfãos de src/pages, exclua o arquivo obsoleto — filtrar em um componente é tarde demais, pois a página já foi compilada.
Variantes com query string de uma página estão sendo indexadas como duplicatas
Sintoma: o Search Console mostra URLs quase duplicadas como /blog e /blog?tag=foo indexadas juntas ou sinalizadas como conteúdo duplicado.
Causa provável: gatsby-plugin-canonical-urls está rodando sem stripQueryString: true, então variantes com query string são canonizadas para si mesmas em vez de apontarem para a URL limpa.
Correção: defina stripQueryString: true na configuração do plugin, faça o build e verifique novamente a tag canônica em uma URL com query string — ela deve apontar para o caminho limpo.
Uma página que deveria ser noindex ainda aparece na busca
Sintoma: você definiu uma página como noindex, mas ela continua indexada semanas depois, ou o Search Console a mostra como indexada apesar da tag.
Causa provável: a diretiva noindex foi alternada pelo estado React, em vez de ser gravada no HTML estático ou nos cabeçalhos do servidor — o Google pode já ter processado o HTML bruto (sem noindex) e, quando encontra noindex apenas em uma passagem renderizada no cliente, pode deixar de renderizar a página novamente.
Correção: mova a decisão de noindex para o HTML estático (pela exportação Head no build) ou para um cabeçalho HTTP, não para lógica React condicional. Verifique novamente com view-source: para confirmar que a tag está presente na resposta bruta.
Teste seus conhecimentos: SEO do Gatsby
Cinco perguntas rápidas sobre como otimizar um site Gatsby para busca. Escolha uma resposta para cada uma e depois confira.
Recursos que valem seu tempo
Meus textos relacionados
- JavaScript SEO: A Definitive Guide — renderização, paridade do DOM e por que a saída estática/pré-renderizada (como a do Gatsby) é o lado de baixo risco do espectro.
- The Beginner’s Guide to Technical SEO — onde a arquitetura de renderização se encaixa no quadro maior.
Minhas palestras
- How Search Works (SlideShare) — minha explicação de rastreamento, renderização, indexação e ranking. (Meu aviso permanente se aplica: “Esta é minha compreensão dos sistemas… não será 100% completa nem precisa.”)
Do setor
- Gatsby Head API reference — a fonte primária da abordagem moderna de metadados.
- Introducing the Gatsby Head API — a explicação do próprio Gatsby sobre por que substituiu o react-helmet.
- Google Search Central — JavaScript SEO basics — as fases rastrear → renderizar → indexar que o build do Gatsby permite evitar para o conteúdo.
- Gatsby is joining Netlify — anúncio da aquisição de 2023, para contexto da manutenção.
- Netlify acquires frontend platform Gatsby (TechCrunch) — cobertura independente da aquisição.
- “Is GatsbyJS abandoned?” discussion #39062 — discussão da comunidade sobre o estado atual da manutenção do Gatsby.
- SEO comparison of Gatsby vs Next vs Astro (Vaihe) — comparação de payload JS e crawl budget.
- Understanding partial hydration in Gatsby 5 (LogRocket) — melhoria de hidratação relevante para CWV e suas limitações.
Registro de alterações
Atualizado em 18 de jul. de 2026.
Resumo editorial e detalhes registrados da alteração.Detalhes da alteração
-
As notas detalhadas sobre as alterações estão disponíveis atualmente em inglês.
-
As notas detalhadas sobre as alterações estão disponíveis atualmente em inglês.
-
As notas detalhadas sobre as alterações estão disponíveis atualmente em inglês.
Não é possível fazer a comparação completa — nenhum instantâneo anterior foi arquivado para esta revisão.