Guia completo de SEO para sites Astro: de meta tags ao ganho de ranking

Voce passou uma semana montando um blog bonito com Astro e publicou o site cheio de expectativa. Dois meses depois, ao pesquisar o titulo do seu artigo no Google, ele nem aparece ate a terceira pagina. Todo dia, ao abrir o Google Analytics, o numero de visitantes continua em um digito. Voce comeca a se perguntar: sera que tem algo errado?
Eu tambem passei por essa fase. Na epoca, eu tinha acabado de migrar de Next.js para Astro. Ouvia que a performance do Astro era excelente, que o carregamento podia ser 40% mais rapido do que em frameworks React tradicionais e que dava ate para chegar a 100 pontos no Lighthouse. O site ficou rapido, sim, mas o ranking de busca nao subiu. Depois percebi que so ter vantagem de performance nao bastava: a configuracao de SEO era a parte decisiva.
A boa noticia e que otimizar SEO no Astro nao e dificil. Neste artigo, vou te mostrar passo a passo como configurar uma estrategia completa de SEO para um site Astro, incluindo meta tags, sitemap, robots.txt e dados estruturados. Cada parte traz exemplos de codigo que voce pode copiar diretamente. Seguindo o roteiro, da para concluir a configuracao basica em 30 minutos. Uma ou duas semanas depois, voce ja pode ver boas noticias de indexacao no Google Search Console.
Por que o Astro e especialmente bom para SEO?
Antes de entrar na configuracao, vale explicar por que eu escolheria Astro para um site de conteudo.
As vantagens naturais de SEO do Astro
A maior caracteristica do Astro e que ele usa zero JavaScript por padrao. Voce leu certo: zero. Ele gera suas paginas diretamente como HTML estatico, entao o crawler do mecanismo de busca ve conteudo HTML limpo, sem precisar esperar a execucao de JS para enxergar a pagina.
Essa “arquitetura de ilhas” (Islands Architecture) e muito esperta. O corpo principal da pagina e HTML estatico; apenas as partes que realmente precisam de interacao, como um botao de curtir, carregam o JS correspondente. Com isso, a primeira tela carrega muito rapido, algo que os crawlers do Google costumam valorizar.
Quando eu usava Next.js, mesmo com SSR ativado, os arquivos JS gerados no build ainda eram bem grandes. Depois de migrar para Astro, o volume de JavaScript caiu diretamente 90%. A pontuacao do Lighthouse saltou de 78 para 98.
Como ele se compara a outros frameworks?
Falando francamente, frameworks diferentes servem melhor a cenarios diferentes. Minha comparacao simples seria:
Astro: e adequado para blogs, sites de documentacao e sites de marketing, onde o conteudo e o foco. A velocidade de carregamento e realmente boa; dados de 2025 mostram que o uso do Astro entre desenvolvedores ja cresceu para 18%.
Next.js: e mais adequado para aplicacoes web que precisam de interacoes complexas, como sistemas administrativos e e-commerces. Se voce precisa de muito gerenciamento de estado no cliente, Next.js tende a ser mais adequado.
Gatsby: tambem faz geracao estatica e se parece com Astro. Mas, na minha experiencia, o pacote gerado pelo Gatsby costuma ficar um pouco grande, e a velocidade de build e mais lenta do que a do Astro.
Um caso real: um amigo meu tinha um blog tecnico em Next.js e migrou para Astro. A velocidade de carregamento melhorou cerca de 50%. Os dados do Google Search Console mostraram que o tempo medio na pagina tambem subiu de 1 minuto e 20 segundos para 2 minutos e 10 segundos. Essa melhora foi bem evidente.
O basico obrigatorio: configuracao completa de meta tags
Vamos ao ponto principal. Meta tags sao o primeiro passo da otimizacao de SEO e tambem uma das partes mais faceis de esquecer.
O trio basico: title, description e keywords
Quando comecei a usar Astro, tambem travei por bastante tempo na configuracao de meta tags. Eu olhava aquela tela cheia de tags <meta> e nao sabia por onde comecar. Depois percebi que o nucleo era formado por tres itens:
Tag title: e a mais importante. O titulo grande mostrado nos resultados do Google vem dela. O ideal e manter entre 50 e 60 caracteres, pois titulos longos podem ser cortados. O title deste artigo, por exemplo, e “Guia completo de SEO para sites Astro: de meta tags ao ganho de ranking”.
Tag description: e aquele texto cinza abaixo do resultado de busca. Mantenha entre 120 e 160 caracteres e inclua a palavra-chave principal. Isso e muito importante, porque o Google usa a taxa de cliques (CTR) para avaliar se um resultado e bom. Ja vi dados mostrando que uma description bem otimizada pode aumentar o CTR em 20% a 30%.
Tag keywords: sendo bem honesto, hoje ela nao e tao importante. O Google basicamente nao usa mais. Mas nao faz mal inclui-la; 3 a 5 palavras-chave sao suficientes.
No Astro, a configuracao e muito simples. Voce pode escrever diretamente na parte <head> do arquivo .astro:
---
const title = "Guia completo de SEO para sites Astro";
const description = "Aprenda passo a passo a configurar uma estrategia completa de SEO para sites Astro, incluindo meta tags, sitemap, robots.txt e dados estruturados.";
---
<head>
<title>{title}</title>
<meta name="description" content={description} />
<meta name="keywords" content="Astro SEO, otimizacao Astro, meta tags, sitemap" />
</head>
Open Graph e Twitter Card
Essas duas configuracoes sao usadas em compartilhamentos em redes sociais. Voce ja reparou que, quando alguem compartilha um link no WeChat ou no Twitter, aparecem automaticamente titulo, descricao e imagem? Isso acontece gracas as tags Open Graph (OG).
Sinceramente, quando vi uma lista enorme de tags og:xxx, eu nao sabia quais eram obrigatorias. Depois de testar, entendi que o essencial e isto:
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content="https://seusite.com/og-image.jpg" />
<meta property="og:url" content="https://seusite.com/caminho-da-pagina-atual" />
<meta property="og:type" content="article" />
<!-- Cartao do Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content="https://seusite.com/twitter-image.jpg" />
Armadilha do og:image: o tamanho da imagem e crucial. Recomendo 1200x630 px. Na primeira vez que configurei, usei uma imagem pequena de 500x300, e o compartilhamento no WeChat ficou borrado. Depois que troquei para 1200x630, o resultado mudou na hora.
Gerencie tudo com um componente
Escrever manualmente meta tags em cada pagina da muito trabalho. A abordagem mais inteligente e criar um componente BaseHead.astro para centralizar todas elas.
Crie src/components/BaseHead.astro:
---
interface Props {
title: string;
description: string;
image?: string;
}
const { title, description, image = "/default-og-image.jpg" } = Astro.props;
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
---
<head>
<!-- Meta basica -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<!-- SEO -->
<title>{title}</title>
<meta name="description" content={description} />
<link rel="canonical" href={canonicalURL} />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:url" content={canonicalURL} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={new URL(image, Astro.site)} />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={new URL(image, Astro.site)} />
</head>
Depois, use diretamente nas suas paginas:
---
import BaseHead from '../components/BaseHead.astro';
---
<html>
<BaseHead
title="Titulo do meu artigo"
description="Descricao do artigo"
image="/my-article-cover.jpg"
/>
<body>
<!-- Conteudo da pagina -->
</body>
</html>
Se voce usa Content Collections para gerenciar artigos do blog, tambem pode extrair title e description automaticamente do frontmatter. Isso deixa tudo ainda mais pratico: ao escrever um novo artigo, as meta tags ja ficam configuradas.
Configuracao avancada: Sitemap e Robots.txt
Depois de configurar as meta tags, o proximo passo e garantir que o Google consiga encontrar seu site. Para isso, voce precisa de sitemap e robots.txt.
Sitemap: diga aos mecanismos de busca quais paginas voce tem
Sitemap e um arquivo XML que lista todas as paginas do seu site. Quando o crawler do Google ve esse arquivo, ele sabe quais paginas deve rastrear. Ha dados indicando que configurar sitemap pode reduzir o tempo de indexacao pelos mecanismos de busca em cerca de 50%.
A configuracao de sitemap no Astro e muito simples. O Astro oferece o plugin oficial @astrojs/sitemap, e um comando resolve:
npx astro add sitemap
Ao executar esse comando, o Astro altera automaticamente o seu astro.config.mjs e adiciona a configuracao de sitemap. O resultado fica mais ou menos assim:
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://seusite.com', // Troque pelo seu dominio
integrations: [sitemap()],
});
Ponto importante: o campo site precisa estar configurado. Caso contrario, o sitemap nao sera gerado. Eu ja cai nessa: na primeira vez, esqueci de definir site, e o build ficava falhando.
Depois de configurar, rode npm run build. O Astro vai gerar os arquivos sitemap-0.xml e sitemap-index.xml no diretorio dist/. Se o site tiver muitas paginas, acima de 50 mil, ele tambem divide automaticamente em varios arquivos sitemap.
Mais um passo que nao deve ser esquecido: adicione um link de sitemap no <head> do site:
<link rel="sitemap" href="/sitemap-index.xml" />
Robots.txt: defina regras de rastreamento
O robots.txt informa aos mecanismos de busca quais paginas podem ou nao ser rastreadas. Por exemplo, voce provavelmente nao quer que paginas de administracao ou paginas de teste aparecam no Google.
Ha tres formas de configurar robots.txt. Recomendo a primeira, por ser a mais simples para iniciantes.
Metodo 1: arquivo estatico (recomendado para iniciantes)
Crie diretamente um arquivo robots.txt no diretorio public/:
User-agent: *
Allow: /
Sitemap: https://seusite.com/sitemap-index.xml
Essa configuracao significa: permita que todos os mecanismos de busca rastreiem todas as paginas, e o sitemap esta nesse endereco.
Se quiser bloquear alguns caminhos, adicione regras Disallow:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /test/
Sitemap: https://seusite.com/sitemap-index.xml
Metodo 2: geracao dinamica
Se voce quiser reaproveitar a configuracao site do astro.config.mjs, pode criar src/pages/robots.txt.ts:
import type { APIRoute } from 'astro';
const robotsTxt = `
User-agent: *
Allow: /
Sitemap: ${import.meta.env.SITE}/sitemap-index.xml
`.trim();
export const GET: APIRoute = () => {
return new Response(robotsTxt, {
headers: { 'Content-Type': 'text/plain' },
});
};
Metodo 3: usar plugin
Se voce nao quiser escrever manualmente, tambem existe o plugin astro-robots-txt:
npm install astro-robots-txt
Depois, adicione a configuracao em astro.config.mjs:
import robotsTxt from 'astro-robots-txt';
export default defineConfig({
site: 'https://seusite.com',
integrations: [
sitemap(),
robotsTxt(),
],
});
Cuidados especiais para SEO no Baidu
Ao falar disso, vale mencionar o Baidu. Ele tem uma exigencia especial: nao oferece suporte a sitemap-index.xml. Se voce escrever sitemap-index.xml no robots.txt, o Baidu pode indicar “Robots bloqueado”, impedindo o rastreamento.
Se o seu site tambem precisa de SEO para Baidu, ha duas alternativas:
- Escreva no
robots.txtapenas o caminho de um unico arquivo sitemap, comositemap-0.xml, em vez desitemap-index.xml - Configure um sitemap simplificado especifico para o Baidu e envie manualmente pela Baidu Webmaster Platform
Minha abordagem pessoal e priorizar o Google. Para Baidu, eu envio o sitemap manualmente pela plataforma de webmaster. Afinal, para a maioria dos blogs tecnicos, a participacao de trafego do Google costuma ser maior.
Envio ao Google Search Console
Depois de configurar sitemap e robots.txt, nao se esqueca de enviar o sitemap pelo Google Search Console. Os passos sao simples:
- Adicione seu site e verifique a propriedade
- No menu lateral, encontre “Sitemaps”
- Digite
sitemap-index.xmle envie
Depois do envio, em geral o Google comeca a rastrear em 1 a 3 dias. Voce consegue acompanhar o progresso e os problemas encontrados no Search Console. Quando vi pela primeira vez o status mudar de “Descoberto” para “Indexado”, a sensacao de conquista foi muito boa.
Otimizacao avancada: dados estruturados (JSON-LD)
Sendo sincero, dados estruturados parecem algo sofisticado demais quando ouvimos falar pela primeira vez, mas a configuracao nao e dificil. E o efeito pode ser bem visivel.
O que sao dados estruturados? Por que configura-los?
Voce ja reparou que alguns resultados de busca aparecem com mais informacoes? Por exemplo, exibem avaliacao do artigo, data de publicacao, avatar do autor ou ate tempo de preparo e calorias em receitas. Esses sao “resultados ricos” (Rich Snippets), e por tras deles estao os dados estruturados.
Em termos simples, dados estruturados usam um formato que o Google entende para dizer: “isto e um artigo de blog”, “este e o autor”, “esta e a data de publicacao”. E como colocar etiquetas claras no seu site.
O Google recomenda o formato JSON-LD. Ele e baseado em JSON e e bastante direto de escrever. Depois de configurar, a taxa de cliques nos resultados de busca pode melhorar. No meu proprio blog, depois da configuracao, o CTR subiu cerca de 15%.
Implementando JSON-LD no Astro
No Astro, configurar JSON-LD e bem simples: basta usar a diretiva set:html. Crie um componente, por exemplo src/components/StructuredData.astro:
---
interface Props {
type: 'WebSite' | 'BlogPosting' | 'Article';
title: string;
description: string;
author?: string;
datePublished?: string;
image?: string;
}
const {
type = 'Article',
title,
description,
author = 'Seu nome',
datePublished,
image
} = Astro.props;
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
const structuredData = {
"@context": "https://schema.org",
"@type": type,
"headline": title,
"description": description,
"author": {
"@type": "Person",
"name": author
},
"datePublished": datePublished,
"image": image ? new URL(image, Astro.site).href : undefined,
"url": canonicalURL.href,
"mainEntityOfPage": {
"@type": "WebPage",
"@id": canonicalURL.href
}
};
---
<script type="application/ld+json" set:html={JSON.stringify(structuredData)} />
Depois, importe no template da pagina do artigo:
---
import StructuredData from '../components/StructuredData.astro';
const frontmatter = {
title: "Guia completo de SEO para sites Astro",
description: "Aprenda passo a passo a configurar SEO no Astro",
author: "Joao Silva",
pubDate: "2025-12-02",
coverImage: "/cover.jpg"
};
---
<html>
<head>
<StructuredData
type="BlogPosting"
title={frontmatter.title}
description={frontmatter.description}
author={frontmatter.author}
datePublished={frontmatter.pubDate}
image={frontmatter.coverImage}
/>
</head>
<body>
<!-- Conteudo do artigo -->
</body>
</html>
Atencao: use obrigatoriamente a diretiva set:html. Caso contrario, o Astro vai escapar o JSON como texto, e ele nao tera efeito.
Tipos comuns de Schema
De acordo com o tipo de site, voce pode escolher schemas diferentes:
WebSite: adequado para a pagina inicial, dizendo ao Google que aquilo e um site
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Nome do seu site",
"url": "https://seusite.com",
"description": "Descricao do site"
}
BlogPosting: adequado para artigos de blog
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Titulo do artigo",
"author": {
"@type": "Person",
"name": "Nome do autor"
},
"datePublished": "2025-12-02",
"image": "URL da imagem de capa"
}
Article: adequado para artigos de noticias. E parecido com BlogPosting, mas o Google costuma ser um pouco mais rigoroso com ele.
Se voce quiser verificacao de tipos com TypeScript, pode usar o pacote astro-seo-schema:
npm install schema-dts astro-seo-schema
Esse pacote fornece definicoes completas de TypeScript, com sugestoes inteligentes durante a escrita e menos chance de erro.
Validacao e testes
Depois de configurar os dados estruturados, valide se tudo esta correto. Ha duas ferramentas:
-
Validador do Schema.org: cole a URL da pagina e ele verifica se o JSON-LD segue o padrao
-
Teste de resultados ricos do Google: este e ainda mais importante, pois mostra se o Google consegue reconhecer corretamente seus dados estruturados
Recomendo usar os dois. As vezes um teste passa e o outro ainda mostra avisos. So considero a configuracao realmente concluida quando ambos passam.
Erros comuns incluem:
- Campos obrigatorios ausentes, como
datePublished - URL de imagem incompleta, pois deve ser absoluta, nao relativa
- JSON mal formatado, com virgula a mais ou aspas faltando
Quando vi pela primeira vez meu site exibindo avaliacao do artigo e data de publicacao nos resultados do Google, a sensacao de conquista foi muito boa. A configuracao pode parecer um pouco trabalhosa, mas, depois de ver o resultado, todo o esforco parece valer a pena.
Performance tambem e SEO
Muita gente nao sabe, mas a performance do site tambem e uma parte importante do SEO. O Google ja afirmou claramente que a velocidade de carregamento da pagina afeta o ranking de busca. Ha dados mostrando que 55% dos usuarios saem de um site lento em ate 3 segundos.
Core Web Vitals: os tres grandes indicadores de performance do Google
O Google usa tres indicadores para medir performance, conhecidos em conjunto como “Core Web Vitals”:
LCP (Largest Contentful Paint): tempo ate o principal conteudo da pagina terminar de carregar. O padrao e menos de 2,5 segundos. Acima de 4 segundos ja e considerado ruim.
FID (First Input Delay): tempo entre o primeiro clique do usuario em um elemento da pagina e a resposta do navegador. O padrao e menos de 100 milissegundos.
CLS (Cumulative Layout Shift): mede se os elementos da pagina pulam de lugar inesperadamente. Por exemplo, voce esta prestes a clicar em um botao, uma imagem termina de carregar e empurra o botao para baixo. O padrao e menos de 0,1.
Esses tres indicadores afetam diretamente o ranking no Google. A boa noticia e que o Astro ja nasce com boa performance. Com um pouco de cuidado, e facil ficar dentro dos padroes.
Tecnicas de otimizacao de performance no Astro
Otimizacao de imagens
Imagens geralmente sao as principais culpadas por deixar um site lento. O Astro tinha uma integracao @astrojs/image, hoje ja incorporada ao nucleo do Astro, que otimiza imagens automaticamente:
# Versoes antigas exigiam instalacao; versoes novas ja incluem isso
# npm install @astrojs/image
Use o componente <Image> do Astro:
---
import { Image } from 'astro:assets';
import myImage from '../assets/my-image.jpg';
---
<Image
src={myImage}
alt="Descricao da imagem"
width={800}
height={600}
loading="lazy"
/>
Esse componente faz automaticamente:
- Gera varias versoes da imagem de acordo com o tamanho do dispositivo
- Converte para WebP, que e menor
- Aplica lazy loading, carregando a imagem apenas quando a pagina rola ate a posicao dela
Em um projeto anterior meu, a pagina inicial tinha 10 imagens grandes. Antes da otimizacao, o LCP era 4,2 segundos. Depois de trocar para o componente <Image>, caiu diretamente para 1,8 segundo.
Otimizacao de fontes
Fontes personalizadas tambem podem derrubar performance. A otimizacao mais simples e adicionar font-display: swap:
@font-face {
font-family: 'MyFont';
src: url('/fonts/my-font.woff2') format('woff2');
font-display: swap; /* essencial */
}
font-display: swap significa que, enquanto a fonte carrega, o texto e exibido com uma fonte do sistema; depois, quando a fonte termina de carregar, ocorre a troca. Assim, o usuario nao ve uma pagina em branco.
Uma opcao melhor e usar a versao otimizada do Google Fonts:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
Repare no &display=swap no fim da URL. Esse e o ponto-chave da otimizacao de fontes.
Code splitting e lazy loading
A propria arquitetura de ilhas do Astro ja e uma excelente estrategia de code splitting. Mas, se voce usa componentes de React, Vue ou outros frameworks, lembre-se de adicionar uma diretiva de lazy loading:
---
import MyHeavyComponent from '../components/MyHeavyComponent.jsx';
---
<!-- Carrega o componente apenas quando ele entra na viewport -->
<MyHeavyComponent client:visible />
A diretiva client:visible espera o componente rolar ate uma area visivel antes de carregar o JS. Isso melhora muito a velocidade da primeira tela.
Monitore performance com Lighthouse
Depois das otimizacoes, como saber se o efeito foi bom? Rode uma avaliacao no Lighthouse.
No Chrome, pressione F12 para abrir as ferramentas de desenvolvedor, encontre a aba “Lighthouse” e clique em “Analyze page load”. Ele atribui uma pontuacao ao site, de 0 a 100, e lista todos os problemas de performance.
Meu habito e rodar Lighthouse antes de cada nova publicacao, garantindo que a pontuacao fique acima de 90. Se ficar abaixo disso, procuro a causa e otimizo de forma direcionada.
Tambem existe a ferramenta online PageSpeed Insights. Basta inserir uma URL para testar, e ela ainda mostra dados de performance de usuarios reais. E bem pratica.
A vantagem do Astro esta aqui: zero JavaScript por padrao e uma base de performance muito boa. Depois de reconstruir meu blog com Astro, minha pontuacao no Lighthouse saiu de 78 e foi direto para 98. Esse ganho aparece de forma muito clara.
Checklist pratico e problemas comuns
Depois de tantas configuracoes, organizei um checklist para voce seguir item por item.
Checklist de configuracao de SEO (15 verificacoes essenciais)
Configuracao basica
- O campo
siteesta configurado emastro.config.mjs - Foi criado um componente
BaseHead.astropara gerenciar meta tags de forma centralizada - Cada pagina tem um title unico, com 50 a 60 caracteres
- Cada pagina tem uma description, com 120 a 160 caracteres
- As tags Open Graph foram configuradas: title, description, image e url
- As tags Twitter Card foram configuradas
Sitemap e Robots
-
@astrojs/sitemapfoi instalado e configurado - O link do sitemap foi adicionado ao
<head> - O arquivo
robots.txtfoi criado - O sitemap foi enviado pelo Google Search Console
Dados estruturados
- A pagina inicial tem JSON-LD do tipo WebSite
- As paginas de artigo tem JSON-LD do tipo BlogPosting/Article
- A validacao no validador do Schema.org foi aprovada
- O teste de resultados ricos do Google foi aprovado
Otimizacao de performance
- A pontuacao do Lighthouse esta acima de 90
- Os tres indicadores de Core Web Vitals estao dentro do padrao: LCP abaixo de 2,5s, FID abaixo de 100ms e CLS abaixo de 0,1
Imprima esse checklist e confira item por item. Quando tudo estiver marcado, o SEO do seu site Astro estara basicamente configurado.
Solucao de problemas comuns
Q1: O que fazer se o site nao for indexado pelo Google?
Possiveis causas e solucoes:
- robots.txt bloqueando rastreamento: verifique se o
robots.txtcontemDisallow: /; se contiver, remova - sitemap nao enviado: envie o sitemap pelo Google Search Console
- site muito novo: sites novos podem levar 1 a 2 semanas para serem indexados; tenha paciencia
- qualidade baixa do conteudo: o Google nao indexa conteudo de baixa qualidade; garanta que os artigos tenham valor real
Q2: O sitemap continua mostrando erro depois do envio?
Confira estes pontos:
- O campo
siteemastro.config.mjsesta correto? - A URL do sitemap pode ser acessada normalmente? Tente abrir
seusite.com/sitemap-index.xmlno navegador - Alguma pagina retorna erro 404?
- No caso do Baidu, verifique se voce usou
sitemap-index, pois o Baidu nao oferece suporte a ele
Q3: Como fazer SEO para Baidu?
SEO para Baidu tem algumas diferencas em relacao ao Google:
- Nao escreva
sitemap-index.xmlnorobots.txt; use o caminho de um unico arquivo sitemap - Envie o sitemap manualmente pela Baidu Webmaster Platform
- O Baidu e mais rigoroso com sites novos, e o tempo de indexacao costuma ser maior do que no Google
- O Baidu da mais importancia a qualidade e originalidade de conteudo em chines
Q4: Como configurar SEO em um site multilíngue?
Se o seu site oferece varios idiomas, voce precisa configurar tags hreflang adicionais:
<link rel="alternate" hreflang="zh-CN" href="https://seusite.com/zh/article" />
<link rel="alternate" hreflang="en-US" href="https://seusite.com/en/article" />
<link rel="alternate" hreflang="x-default" href="https://seusite.com/en/article" />
x-default define a versao padrao de idioma. Assim, o Google consegue reconhecer corretamente a relacao entre as diferentes versoes linguisticas.
Sugestoes de otimizacao continua
SEO nao e uma configuracao unica que voce faz e esquece. Ele exige otimizacao continua.
Atualize conteudo regularmente: segundo pesquisas, sites atualizados com frequencia costumam ranquear cerca de 30% melhor do que sites estaticos. Publique pelo menos 1 a 2 artigos por semana.
Monitore dados do Google Search Console:
- Veja quais palavras-chave trazem trafego
- Identifique quais paginas tem baixa taxa de cliques e otimize seus title e description
- Acompanhe erros de rastreamento e corrija rapidamente
Analise as palavras buscadas pelos usuarios:
- Veja quais termos os usuarios pesquisam para encontrar seu site
- Crie novos conteudos a partir desses termos
- Otimize artigos existentes e acrescente palavras-chave relacionadas
Otimize paginas com baixa taxa de cliques:
- Se uma pagina tem muitas impressoes e poucos cliques, talvez title ou description nao sejam atraentes o suficiente
- Reescreva uma description mais convidativa
- Inclua numeros, perguntas ou palavras com carga emocional no title
Eu mesmo separo 1 hora por semana para olhar os dados do Search Console e encontrar pontos de otimizacao. Mantendo esse habito, a melhora de ranking fica bem evidente.
Conclusao
Depois de tudo isso, o resumo e simples: Astro e naturalmente adequado para SEO, e a configuracao nao precisa ser complicada.
O nucleo se resume a tres coisas:
- Meta tags basicas: title, description e tags OG, gerenciadas em um componente BaseHead
- Sitemap e robots.txt: use o plugin oficial para resolver com um comando e nao se esqueca de enviar ao Google Search Console
- Dados estruturados: configure JSON-LD para disputar resultados ricos na busca
Nao ignore performance. Uma pontuacao Lighthouse 90+ e requisito basico. Imagens com lazy loading, fontes com font-display: swap e esses pequenos detalhes tambem ajudam no ranking.
Configurar SEO pode parecer um pouco trabalhoso, mas, quando voce ve o ranking subindo, todo esforco vale a pena. Seguindo os passos deste artigo, da para concluir a configuracao essencial em 30 minutos. Uma ou duas semanas depois, voce ja podera ver no Google Search Console a boa noticia de que o site foi indexado.
Agora, abra seu projeto Astro e configure item por item seguindo o checklist acima. Depois de terminar, envie o sitemap e aguarde com paciencia. Volte uma semana depois para conferir a indexacao; voce pode se surpreender positivamente com a melhora no ranking.
Vamos em frente!
Fluxo completo de configuracao de SEO para sites Astro
Configure em 30 minutos uma estrategia completa de SEO, de meta tags a melhoria de ranking, incluindo sitemap, robots.txt e dados estruturados JSON-LD.
⏱️ Estimated time: 30 min
- 1
Step 1: Entender as vantagens de SEO do Astro e configurar meta tags basicas
Vantagens naturais do Astro para SEO:
• Por padrao, zero JavaScript e HTML estatico
• O crawler do mecanismo de busca ve conteudo HTML limpo
• Na arquitetura Islands, o corpo da pagina e HTML estatico, e apenas as partes interativas carregam JS
• O volume de JavaScript cai 90%, e a pontuacao do Lighthouse pode saltar de 78 para 98
Trio basico:
title (titulo)
• Cada pagina deve ter um titulo unico e descritivo
• Mantenha entre 50 e 60 caracteres
• Inclua palavras-chave
description (descricao)
• Cada pagina deve ter uma descricao
• Mantenha entre 150 e 160 caracteres
• Incentive o clique do usuario
keywords (palavras-chave)
• Embora o Google nao use mais esse campo, outros mecanismos ainda podem usar
• Recomendo manter, com 3 a 5 palavras-chave
Como configurar no Astro:
• Adicione um componente Head no componente de layout
• Leia title e description do frontmatter
• Gere as meta tags dinamicamente - 2
Step 2: Configurar tags Open Graph e Twitter Card
Tags Open Graph:
• og:title: titulo exibido no compartilhamento, normalmente igual ao title
• og:description: descricao exibida no compartilhamento, normalmente igual a description
• og:image: imagem exibida no compartilhamento, recomendada em 1200x630 px
• og:url: URL completa da pagina
• og:type: tipo da pagina; use article para blog e website para a pagina inicial
Tags Twitter Card:
• twitter:card: tipo do cartao, summary_large_image ou summary
• twitter:title: titulo ao compartilhar no Twitter
• twitter:description: descricao ao compartilhar no Twitter
• twitter:image: imagem exibida no compartilhamento no Twitter
Como configurar no Astro:
• Crie um componente de SEO que receba title, description, image e outros parametros
• Gere todas as tags Open Graph e Twitter Card
• Use o componente no layout - 3
Step 3: Configurar Sitemap e robots.txt
Instalacao da integracao de Sitemap:
• Execute: npm install @astrojs/sitemap
• Adicione a integracao sitemap em astro.config.mjs
• Configure a URL do site
Geracao automatica de sitemap.xml:
• O Astro varre automaticamente todas as paginas
• Gera o arquivo sitemap.xml
• Inclui URLs, data da ultima modificacao, prioridade e outras informacoes das paginas
Criacao de robots.txt:
• Crie um arquivo robots.txt no diretorio public
• Configure as regras dos crawlers, permitindo acesso geral e indicando a localizacao do sitemap
Envio do sitemap:
• Acesse o Google Search Console
• Envie a URL do sitemap.xml
• Verifique periodicamente o status de indexacao - 4
Step 4: Adicionar dados estruturados JSON-LD
Por que usar dados estruturados:
• Aumenta a riqueza visual dos resultados de busca
• Permite exibir mais informacoes nos resultados, como avaliacao, autor e data de publicacao
• Pode aumentar a taxa de cliques
Tipos comuns de dados estruturados:
Article (pagina de artigo)
• Inclui titulo, autor, data de publicacao, categoria etc.
BreadcrumbList (navegacao por breadcrumbs)
• Ajuda o usuario a entender a estrutura do site
Organization (informacoes da organizacao)
• Inclui logo, canais de contato etc.
Como configurar no Astro:
• Crie um componente de dados estruturados
• Gere o JSON-LD correspondente de acordo com o tipo de pagina
• Use o componente no layout
Validacao dos dados estruturados:
• Use o Google Rich Results Test para validar se o JSON-LD esta correto
• Verifique erros e avisos - 5
Step 5: Boas praticas de SEO e otimizacao continua
Boas praticas de SEO: cada pagina deve ter title e description unicos e descritivos; use HTML semantico (<article>, <section>, <header> etc.); otimize imagens (alt, formato WebP e lazy loading); otimize a estrutura de URL (URLs significativas com palavras-chave); melhore links internos (adicione links para artigos relacionados e aumente a autoridade das paginas). Para otimizacao continua, atualize conteudos regularmente (segundo pesquisas, sites atualizados com frequencia costumam ranquear cerca de 30% melhor do que sites estaticos; publique pelo menos 1 a 2 artigos por semana), monitore dados do Google Search Console (veja quais palavras-chave trazem trafego, identifique paginas com baixa taxa de cliques, otimize title e description, acompanhe erros de rastreamento e corrija rapidamente) e analise as palavras buscadas pelos usuarios (veja quais termos levam pessoas ao seu site, crie novos conteudos a partir deles, otimize artigos existentes e acrescente palavras-chave relacionadas). Tambem nao ignore performance: Lighthouse 90+ e o minimo, imagens com lazy loading e fontes com font-display: swap ajudam nos rankings.
FAQ
Por que o Astro e especialmente bom para SEO? Quais vantagens naturais ele tem?
• Por padrao, zero JavaScript e HTML estatico
• O crawler do mecanismo de busca ve conteudo HTML limpo, sem precisar esperar o JS executar
A arquitetura Islands e muito inteligente:
• O corpo da pagina e HTML estatico, e apenas partes que precisam de interacao, como um botao de curtir, carregam JS correspondente
• Isso deixa o tempo de primeira tela muito rapido, algo que os crawlers do Google apreciam
Quando eu usava Next.js, mesmo com SSR ativado, o bundle de JS ainda ficava grande. Depois da migracao para Astro, o volume de JavaScript caiu diretamente 90%, e a pontuacao do Lighthouse saltou de 78 para 98.
Comparando com outros frameworks:
• Astro e adequado para blogs, sites de documentacao e sites de marketing, onde o conteudo e o foco; a velocidade de carregamento e realmente alta, e dados de 2025 mostram que o uso do Astro entre desenvolvedores ja cresceu para 18%
• Next.js e mais adequado para aplicacoes web com interacoes complexas, como sistemas administrativos e e-commerces
• Gatsby tambem faz geracao estatica e se parece com Astro, mas o bundle gerado pelo Gatsby tende a ser um pouco maior, e a velocidade de build costuma ser menor do que a do Astro
Como configurar as meta tags de um site Astro?
• title: cada pagina deve ter um titulo unico e descritivo, entre 50 e 60 caracteres, com palavras-chave
• description: cada pagina deve ter uma descricao entre 150 e 160 caracteres, capaz de incentivar o clique do usuario
• keywords: embora o Google nao use mais, outros mecanismos podem usar; recomendo manter
No Astro, configure adicionando um componente Head no layout, lendo title e description do frontmatter e gerando as meta tags dinamicamente.
Tags Open Graph:
• og:title: titulo exibido no compartilhamento, normalmente igual ao title
• og:description: descricao exibida no compartilhamento, normalmente igual a description
• og:image: imagem exibida no compartilhamento, recomendada em 1200x630 px
• og:url: URL completa da pagina
• og:type: tipo da pagina; use article para blog e website para a pagina inicial
Tags Twitter Card:
• twitter:card: tipo do cartao, summary_large_image ou summary
• twitter:title: titulo ao compartilhar no Twitter
• twitter:description: descricao ao compartilhar no Twitter
• twitter:image: imagem exibida no compartilhamento no Twitter
No Astro, crie um componente de SEO que receba title, description, image e outros parametros, gere todas as tags Open Graph e Twitter Card e seja usado no layout.
Como configurar Sitemap e robots.txt?
• Execute npm install @astrojs/sitemap
• Adicione a integracao sitemap em astro.config.mjs e configure a URL do site
Geracao automatica de sitemap.xml:
• O Astro varre automaticamente todas as paginas e gera o arquivo sitemap.xml
• Inclui URLs, datas da ultima modificacao, prioridades e outras informacoes das paginas
Crie o robots.txt:
• Crie um arquivo robots.txt no diretorio public
• Configure regras para crawlers, permitindo acesso geral e indicando a localizacao do sitemap
Envie o sitemap:
• Acesse o Google Search Console e envie a URL do sitemap.xml
• Verifique periodicamente o status de indexacao
Observacoes para SEO no Baidu:
• Nao escreva sitemap-index.xml no robots.txt; use o caminho de um unico arquivo sitemap
• Envie o sitemap manualmente pela Baidu Webmaster Platform
• O Baidu costuma ser mais rigoroso com sites novos, e a indexacao geralmente demora mais do que no Google
• O Baidu valoriza mais qualidade e originalidade em conteudo chines
Como adicionar dados estruturados JSON-LD?
• Aumenta a riqueza visual dos resultados de busca
• Permite que os resultados mostrem mais informacoes, como avaliacao, autor e data de publicacao
• Pode aumentar a taxa de cliques
Tipos comuns de dados estruturados:
• Article: pagina de artigo, com titulo, autor, data de publicacao, categoria etc.
• BreadcrumbList: navegacao por breadcrumbs, ajudando o usuario a entender a estrutura do site
• Organization: informacoes da organizacao, como logo e canais de contato
No Astro:
• Crie um componente de dados estruturados e gere o JSON-LD correspondente ao tipo de pagina
• Use esse componente no layout
Validacao dos dados estruturados:
• Use o Google Rich Results Test para validar se o JSON-LD esta correto
• Verifique se ha erros ou avisos
Problemas comuns:
• Formato de dados incorreto: confira se o JSON-LD esta valido
• Campos obrigatorios ausentes: confirme que todos os campos necessarios foram preenchidos
Quais sao as melhores praticas de SEO? Como otimizar continuamente?
• Cada pagina deve ter title e description unicos e descritivos
• Use HTML semantico (<article>, <section>, <header> etc.)
• Otimize imagens, adicionando alt, usando WebP e lazy loading
• Otimize a estrutura de URL, usando URLs significativas com palavras-chave
• Melhore links internos, adicionando links para artigos relacionados e aumentando a autoridade das paginas
Sugestoes de otimizacao continua:
• Atualize conteudos regularmente; segundo pesquisas, sites atualizados com frequencia costumam ranquear cerca de 30% melhor do que sites estaticos, entao publique pelo menos 1 a 2 artigos por semana
• Monitore dados do Google Search Console: veja quais palavras-chave trazem trafego, identifique paginas com baixa taxa de cliques, otimize title e description, acompanhe erros de rastreamento e corrija rapidamente
• Analise palavras buscadas pelos usuarios: veja quais termos levam pessoas ao seu site, crie novos conteudos a partir deles, otimize artigos existentes e acrescente palavras-chave relacionadas
Tambem nao ignore performance: Lighthouse 90+ e o minimo, imagens com lazy loading e fontes com font-display: swap ajudam nos rankings.
Como configurar SEO para sites multilíngues?
• <link rel="alternate" hreflang="zh-CN" href="https://seusite.com/zh/article" />
• <link rel="alternate" hreflang="en-US" href="https://seusite.com/en/article" />
• <link rel="alternate" hreflang="x-default" href="https://seusite.com/en/article" />
x-default define a versao padrao de idioma. Assim, o Google consegue identificar corretamente a relacao entre as versoes em diferentes idiomas.
Cada idioma deve ter um sitemap independente, enviado separadamente no Google Search Console.
21 min de leitura · Publicado em: 2 dez 2025 · Atualizado em: 14 jul 2026
Guia Astro
Se você chegou pela busca, o caminho mais rápido é ir para o post anterior ou próximo desta série.
Anterior
Guia de configuração de i18n no Astro: crie um site multilíngue em 30 minutos (com seletor de idioma)
Aprenda a configurar i18n no Astro em 30 minutos, da configuração básica ao seletor de idioma. Inclui exemplos completos de código, comparação de estratégias de rotas, solução com Content Collections e dicas de SEO.
Parte 6 de 18
Próximo
Guia completo de otimização de performance no Astro: 8 técnicas práticas para sair de 60 pontos e chegar ao máximo no Lighthouse
Otimize de forma sistemática a performance de sites Astro, cobrindo arquitetura Islands, estratégias de hidratação, imagens, fontes, code splitting, preload e Core Web Vitals.
Parte 8 de 18



Comentários
Entre com GitHub para comentar