Otimização de Performance, SEO e Open Graph (22/09/2026) — 91 mobile / 98 desktop

Atualização (22/09/2026, fim do dia): depois de mais uma rodada de correções, a home saiu de 63/100 para 91/100 no mobile e 98/100 no desktop de Desempenho no Google PageSpeed Insights. Esta página documenta o histórico completo — o que foi encontrado, o que foi corrigido a cada rodada e o que ainda está por vir.

Resultado final desta rodada

  Antes Depois
Desempenho (mobile, 4G lento) 63 91
Desempenho (desktop) — 98
Largest Contentful Paint (mobile) 6,9s 2,4s
Total Blocking Time (mobile) 160ms 170ms
Cache ineficiente 356 KiB 14 KiB (o resto é de terceiro, fora do nosso controle)
Imagens maiores que o necessário 921 KiB 64 KiB

image.png

Por que isso importa pro marketplace

O que foi corrigido — 1ª rodada (22/09/2026, tarde)

Imagens de produto pedindo tamanho errado

O componente do card de produto sempre pedia a imagem "pensando" num grid de 4 colunas no desktop e 1 no celular. Só que o grid real da home e das listagens é de 2/3/4/5/6 colunas dependendo da largura da tela. Resultado prático: no celular a imagem chegava com quase o dobro do tamanho necessário (750px de imagem pra caber num espaço de 341px). Corrigimos o cálculo em todos os pontos onde o card de produto aparece (home, categoria, busca, carrossel de recomendados).

Toda imagem da página marcada como "prioridade máxima"

Antes, os 48 cards de produto de uma página inteira competiam entre si por banda com a tag de "alta prioridade" — inclusive os que estavam fora da tela, ainda por vir no scroll. Agora só os primeiros 4 cards (os que realmente aparecem na primeira tela) recebem essa prioridade; o resto carrega sob demanda (lazy loading) normalmente.

Banner do rodapé (skyline) em PNG pesado

Convertido de PNG pra WebP: 299 KB → 64 KB (-78%), com o mesmo visual.

Carrossel de lojistas com dezenas de bolinhas de paginação

Com o número atual de lojistas em destaque, o carrossel "Ver mais" chegou a gerar mais de 40 bolinhas de navegação — cada uma marcada por acessibilidade como "área de toque pequena demais", além de inflar o HTML da página à toa. O carrossel já navega sozinho (autoplay) e por arraste, então as bolinhas foram removidas.

Cache de imagens/arquivos estáticos curto demais

Ajustamos o Next.js pra mandar o navegador guardar imagens otimizadas e arquivos estáticos (logos, ícones, banners) em cache por 1 ano em vez do padrão de 60 segundos. Achado importante nessa investigação: o Nginx Proxy Manager (o proxy reverso na frente do site) tinha a opção "Cache Assets" ligada, que ignorava e substituía esse cache por um teto de só 30 minutos pra tudo — anulando o ajuste feito no código. Desligamos essa opção pros domínios da loja, e o cache passou a funcionar de verdade (economia de cache ineficiente caiu de 356 KiB pra 14 KiB).

Vídeo do Story flutuante pesando quase 2 MB toda vez

O círculo de Stories que fica sempre visível na tela toca o vídeo completo em loop (até ~1,9 MB) só pra mostrar uma prévia pequena e repetitiva. Já preparamos um clipe dedicado — 4 segundos, tamanho de selo (160px), sem áudio — gerado automaticamente a partir do vídeo original só pra esse loop, com o vídeo completo (qualidade cheia) reservado pra quando o comprador abre o Story em tela cheia. Esse é o maior item que ainda falta entrar no ar — ver seção "O que ainda está por vir" abaixo.

SEO, Open Graph e Analytics

O que foi corrigido — 2ª rodada (22/09/2026, noite)

Carrossel de banners da home competindo consigo mesmo pela imagem principal

Todo slide do carrossel de banners (não só o primeiro, visível) estava marcado como "alta prioridade" — nos dois tamanhos (mobile e desktop) de cada slide. Isso fazia a imagem que realmente aparece pro visitante (a maior parte do tempo de carregamento da página, tecnicamente chamada de LCP) esperar na fila atrás de imagens que nem estavam na tela ainda. Corrigido: só o primeiro slide carrega com prioridade agora — esse ajuste sozinho cortou o tempo de carregamento da imagem principal de 4,7s pra 2,4s.

Logo do lojista pedindo imagem 10x maior que o necessário

O selo com a logo da loja (no verso do card de produto e na busca de lojistas) estava pedindo a imagem enviada pelo lojista no tamanho original (até 1080×1080px) pra mostrar num espaço de 80×80px. Corrigido pra pedir só o tamanho realmente exibido.

TalkJS (sistema de mensagens) carregando escondido em toda página, pra todo mundo

Este foi o achado mais surpreendente da investigação: o sistema de mensagens (TalkJS) estava programado pra carregar um script de ~85-100 KiB assim que a página abria — mesmo pra quem nunca faz login, e mesmo sem nenhuma configuração ativa ainda pra esse recurso. Era um comportamento automático da própria biblioteca, disparado só por ela estar referenciada no código, independente de realmente ser usada. Corrigido pra só carregar quando de fato for usado.

Banner de cookies removido

Avaliação feita: a LGPD não exige um banner de consentimento nos moldes da lei europeia (GDPR) pra esse caso — removido. O Google Analytics passou a rodar direto pra todo mundo.

O que ainda está por vir

Novas atualizações de performance estão por vir — essa página será atualizada conforme cada rodada for concluída.


Revision #3
Created 2026-09-22 04:55:23 UTC by Saara Online
Updated 2026-09-23 03:09:52 UTC by Saara Online