Insights / Artigos técnicos

Guia de melhoria de qualidade de sites Astro — Caminho até 99 pontos no PageSpeed Mobile

Registro completo de como melhoramos um site com Astro + UnoCSS + Cloudflare Pages nos 4 eixos de desempenho, SEO, acessibilidade e UX, alcançando 99 pontos no PageSpeed Insights mobile e 100 em todos os itens no desktop.

  • Tecnologia
  • Astro
  • Desempenho
  • Acessibilidade
  • SEO
  • Site
Guia de melhoria de qualidade de sites Astro — Caminho até 99 pontos no PageSpeed Mobile
Sumário
  1. Introdução
  2. A barreira dos 99 pontos no PageSpeed mobile
  3. Simulação mobile do Lighthouse
  4. Não-linearidade da pontuação
  5. Variação da pontuação
  6. Pontuação final
  7. Os 4 pilares da melhoria
  8. 1. Desempenho
  9. 2. SEO
  10. 3. Acessibilidade
  11. 4. UX e qualidade de código
  12. Stack tecnológica
  13. Conclusão

Introdução

O site oficial da Acecore, renovado em março de 2026, foi publicado com a configuração Astro 6 + UnoCSS + Cloudflare Pages. Porém, logo após a renovação, o site estava apenas no nível de “funcionar”. Havia margem para melhoria em todos os aspectos: desempenho, SEO, acessibilidade e UX.

Este artigo resume a visão geral de como alcançamos 99 pontos no PageSpeed Insights mobile e 100 em todos os itens no desktop após mais de 150 itens de melhoria.


A barreira dos 99 pontos no PageSpeed mobile

Primeiro, o que quero transmitir é que obter alta pontuação no PageSpeed Insights mobile é mais difícil do que se imagina.

Simulação mobile do Lighthouse

O Lighthouse, que roda por trás do PageSpeed Insights, aplica o seguinte throttling nos testes mobile:

Item Configuração
Velocidade de download ~1.6 Mbps (slow 4G)
Velocidade de upload ~0.75 Mbps
Latência 150 ms (RTT)
CPU 4x slowdown

Ou seja, uma página que abre em 1 segundo com fibra óptica leva 5-6 segundos na simulação do Lighthouse. Carregar 200 KiB de CSS em slow 4G causa ~1 segundo de bloqueio.

Não-linearidade da pontuação

A pontuação do PageSpeed não é linear:

  • 50 → 90: Alcançável com otimizações básicas (compressão de imagens, remoção de scripts desnecessários)
  • 90 → 95: Necessária estratégia de entrega de CSS, fontes e imagens
  • 95 → 99: Ajuste fino em milissegundos. Decisão entre CSS inline vs. arquivo externo
  • 99 → 100: Dependente da velocidade de resposta de CDNs externos e variação de medição do próprio Lighthouse. Extremamente difícil manter de forma estável em sites com AdSense/GA4

Variação da pontuação

Mesmo para o mesmo site, a pontuação pode variar 2-5 pontos entre medições. As causas incluem:

  • Velocidade de resposta de serviços de transformação de imagem como o Cloudflare Images
  • Estado do cache do edge server do Cloudflare Pages
  • Margem de erro do próprio Lighthouse

Portanto, o objetivo deve ser “obter pontuação alta de forma estável em medições repetidas”, não “atingir 100 uma vez”.


Pontuação final

Apesar das dificuldades acima, conseguimos alcançar de forma estável as seguintes pontuações:

Métrica Mobile Desktop
Performance 99 100
Accessibility 100 100
Best Practices 100 100
SEO 100 100

Os 4 pilares da melhoria

As melhorias foram organizadas em 4 grandes categorias. Os detalhes de cada uma estão em artigos individuais.

1. Desempenho

A maior contribuição para alcançar 99 pontos no mobile foi a otimização de desempenho. Eliminamos gargalos um a um: estratégia de entrega CSS (inline vs. arquivo externo), self-hosting de fontes, otimização de imagens responsivas e carregamento lazy de AdSense/GA4.

Os 3 itens de maior impacto foram:

  • Externalização do CSS: Mudança de expandir 190 KiB de CSS inline para arquivo externo, reduzindo o tamanho de transferência do HTML em até 91%
  • Correção de incompatibilidade no nome da fonte: Descoberta e correção do problema de que o nome registrado por @fontsource-variable/noto-sans-jp era Noto Sans JP Variable, diferente do Noto Sans JP referenciado no CSS
  • Imagens responsivas: Configuração de srcset + sizes em todas as imagens para entregar tamanhos adequados para mobile

2. SEO

Para suportar rich results do Google, implementamos 7 tipos de dados estruturados JSON-LD. Incluindo meta tags OGP, canonical, otimização de sitemap e expansão do feed RSS, estabelecemos a base para comunicar com precisão a estrutura do site aos mecanismos de busca.

3. Acessibilidade

100 pontos em Accessibility no PageSpeed foi alcançado passando os testes automáticos do axe DevTools e Lighthouse. Acumulamos correções meticulosas: aria-hidden em ícones decorativos (mais de 30 locais), notificação SR em links externos, correção de contraste (text-slate-400text-slate-500), e aplicação global de estilos focus-visible.

4. UX e qualidade de código

Resolvemos o problema de interrupção de scripts causado pela introdução de View Transitions (ClientRouter) em todos os componentes e implementamos busca de texto completo com Pagefind. No aspecto de código, melhoramos a segurança de tipos com TypeScript e centralizamos constantes (URLs sociais, IDs de anúncios e GA4 ID no constante SITE), melhorando significativamente a manutenibilidade.


Stack tecnológica

Tecnologia Uso
Astro 6 Geração estática de site (arquitetura zero JS)
UnoCSS (presetWind3) CSS utility-first
Cloudflare Pages Hospedagem, CDN, controle de headers
@fontsource-variable/noto-sans-jp Self-hosting de fonte japonesa
Cloudflare Images Transformações de imagem (conversão automática AVIF/WebP)
Pagefind Busca de texto completo para sites estáticos

Conclusão

Para alcançar 99 pontos no PageSpeed Insights mobile, é fundamental seguir o princípio de “não enviar o que não é necessário”. Estratégia de entrega CSS, self-hosting de fontes, otimização de imagens, carregamento lazy de scripts externos — cada medida é simples individualmente, mas combinadas geram grande efeito.

Ao mesmo tempo, avançar as melhorias de SEO, acessibilidade e UX em paralelo permite alcançar alta pontuação em todos os 4 itens. Em vez de perseguir 100 pontos, o objetivo realista é manter 95+ pontos de forma estável.

Para detalhes de cada tópico, acesse os link cards acima. Para o processo de melhoria e reflexo no código, consulte também o artigo sobre fluxo de desenvolvimento com GitHub Copilot.

Processo de melhoria

  1. Medição

    Identificar os gargalos atuais com PageSpeed Insights e axe.

  2. Análise

    Ler o detalhamento da pontuação e identificar a melhoria de maior impacto.

  3. Implementação

    Aplicar alterações uma a uma e confirmar zero erros no build.

  4. Reavaliação

    Remedir após o deploy e verificar o efeito com números.

Comparação antes e depois das melhorias

Antes das melhorias

  • PageSpeed mobile na faixa dos 70 pontos
  • Dados estruturados e OGP não configurados
  • Acessibilidade não tratada
  • Scripts parando com View Transitions
  • Constantes hardcoded espalhadas pelo código

Após as melhorias

  • Mobile 99 / 100 / 100 / 100 (desktop 100 em todos os itens)
  • 7 tipos de dados estruturados + OGP + canonical completos
  • Conformidade WCAG AA (contraste, aria, notificação SR, focus-visible)
  • Todos os componentes compatíveis com View Transitions
  • Constantes SITE, URLs sociais e IDs de anúncios centralizados

Perguntas frequentes

É possível alcançar 100 pontos no PageSpeed mobile?

Tecnicamente é possível, mas para sites que incluem serviços externos como AdSense ou GA4, é extremamente difícil manter 100 pontos de forma estável. O Lighthouse simula slow 4G (~1.6 Mbps), então recursos externos causam grande penalidade. 99 pontos é o ponto máximo realista.

Em que ordem as melhorias devem ser feitas?

Primeiro, entenda a situação atual com o PageSpeed Insights e trate as questões de maior impacto. Em geral, a ordem recomendada é desempenho → SEO → acessibilidade.

Essa abordagem de melhoria é aplicável a outros sites Astro?

Sim. Estratégias de entrega CSS, self-hosting de fontes, dados estruturados e melhoria de acessibilidade são boas práticas comuns a sites Astro em geral.

O GitHub Copilot foi usado nas melhorias?

Sim. Praticamente todas as melhorias foram realizadas em colaboração com o GitHub Copilot. Os detalhes são apresentados no artigo sobre o fluxo de desenvolvimento com GitHub Copilot.