Guia de melhoria de qualidade de sites Astro — Caminho até 99 pontos no PageSpeed Mobile
Índice
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-jperaNoto Sans JP Variable, diferente doNoto Sans JPreferenciado no CSS - Imagens responsivas: Configuração de
srcset+sizesem 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-400 → text-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
Medição
Identificar os gargalos atuais com PageSpeed Insights e axe.
Análise
Ler o detalhamento da pontuação e identificar a melhoria de maior impacto.
Implementação
Aplicar alterações uma a uma e confirmar zero erros no build.
Reavaliação
Remedir após o deploy e verificar o efeito com números.
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
É possível alcançar 100 pontos no PageSpeed mobile?
Em que ordem as melhorias devem ser feitas?
Essa abordagem de melhoria é aplicável a outros sites Astro?
O GitHub Copilot foi usado nas melhorias?
Comentários
Gui
CEO da Acecore. Lidera sistemas de negócio, web, bancos de dados e infraestrutura, qualidade e adoção de IA da definição de problemas de negócio ao design, implantação e melhoria após o lançamento. Parte de capacidade prática em C#/.NET e também cobre PHP/JavaScript, SQL Server/PostgreSQL/MySQL e Linux/Windows Server, desenhando requisitos, escolhas tecnológicas, padrões de qualidade e operações de desenvolvimento baseadas em GitHub como um fluxo único. Incorpora IA generativa a processos de desenvolvimento, verificação e organização de informações, como uma base prática para que equipes pequenas entreguem mais rápido e com maior confiabilidade.
Quer saber mais sobre nossos serviços?
Oferecemos suporte abrangente em desenvolvimento de sistemas, design web, design gráfico e educação em TI.
Artigos relacionados
Guia de melhoria de qualidade de sites Astro, continuação - Ajustes finais para alcançar 100 em todos os itens do PageSpeed Insights 29 de março de 2026 às 02:30
Como projetar um site Astro + Cloudflare que cresce por funcionalidade 7 de junho de 2026 às 19:00
Como adicionar comentários a um blog Astro usando apenas Cloudflare 7 de junho de 2026 às 18:00