Files
amare/docs/evidence/lighthouse/2026-08-10-local-antes.md
manoel.neto 65919d4a6c perf: cortar 157 KiB do caminho crítico e medir o LCP de forma reprodutível (MAN-109)
A auditoria do PR #34 mediu LCP acima da meta de 2,5 s da SPEC §6.6 em todas
as páginas no mobile, mas ficou registrada apenas como tabela num comentário
do Linear — `storage/app/lighthouse` é gitignored, então não havia artefato
para comparar depois. Esta entrega mede de novo, encontra a causa dominante e
corta o que dava para cortar.

## Fontes servidas em dobro (88 KiB)

Bunny entrega cada peso de EB Garamond em woff2 e woff, e o plugin de fontes
emitia uma regra `@font-face` para cada, woff2 primeiro e woff depois. Duas
regras com a mesma família, peso, estilo e unicode-range fazem a última
vencer: o navegador renderizava a partir dos woff e descartava os woff2
pré-carregados.

O log de rede da home prova: 3 woff em prioridade VeryHigh (88 KiB), a mais
alta da página e à frente do elemento de LCP, mais 3 woff2 em High (74 KiB)
baixados só por causa do `<link rel="preload">`. 162 KiB de tráfego para
74 KiB de fonte útil.

woff2 é suportado por todo navegador que este site atende desde 2016, então as
regras woff eram peso morto, não fallback. O plugin `amare:fonts-woff2-only`
remove as regras do CSS e do manifest e tira os arquivos do bundle. É o que
derruba o FCP de 1,51 s para 0,91 s em todas as páginas.

## Ativos de marca reencodados (102 KiB) — absorve MAN-122

O logotipo era servido a 512 px de largura para renderizar em 48 px (lockup,
cabeçalho e rodapé de toda página) e 32 px (mark, home), com `loading="eager"`.
Reencodados a 3× do maior render: lockup 149×144 (84 → 14 KiB) e mark 191×96
(42 → 10 KiB), mesmos nomes de arquivo para não invalidar cache. As variantes
`on-dark` foram reencodadas junto por consistência; nenhuma view as usa hoje.

Os 16 baselines visuais foram regenerados no runner Linux e o diff é
imperceptível a 2× de zoom — mesma forma, mesma cor, menos bytes.

## Efeito medido

Mobile, mediana de 3 execuções por página: home 4,58 → 3,39 s; portfolio
3,98 → 1,58 s; portfolio-detalhe 3,98 → 3,01 s; servicos 3,68 → 2,63 s;
sobre 3,01 → 1,58 s; contato 2,55 → 1,51 s. Desktop passa com folga em todas
(máximo 0,79 s). Acessibilidade, boas práticas e SEO seguem 100, CLS 0,000 e
TBT 0 ms.

`contato`, `portfolio` e `sobre` entraram na meta. `servicos`,
`portfolio-detalhe` e `home` continuam fora, e o que falta está identificado:
o elemento de LCP da home é a imagem do hero em JPEG q82 (143 KiB), e
`Improve image delivery` estima 0,90 s de ganho restante. O lever é variante
WebP em ResponsiveImage com `<picture>` — fora deste escopo porque mexe no
pipeline de mídia que o CMS usa para upload.

## Ferramental

- `scripts/perf/lighthouse.sh` ganha `/portfolio/{slug}`, passada desktop,
  mediana de 3 execuções e uma guarda de HTTP 200 antes de auditar. Uma rota
  em 404 produz relatório com score alto: a rota mais pesada do site
  apareceria como ótima e ninguém notaria.
- `scripts/perf/summarize-lighthouse.mjs` extrai do JSON o elemento de LCP, a
  decomposição em fases e as requests até o LCP.
- `docker/ci-runner.Dockerfile` e `scripts/test/visual-update-ci.sh` versionam
  a receita de regeneração de baselines, que existia só como checklist.
- `CLAUDE.md` corrigido: Pest Browser serve a aplicação de um servidor Amp
  in-process, não do FrankenPHP. A paridade que importa nos baselines é
  Linux vs macOS, não o runtime HTTP.
- Sem gate de performance no CI (§14.1 e §22). No lugar, orçamento de bytes
  para os ativos de marca e asserção de que o build só emite woff2.

Staging não foi medido: a origem responde 303 para blocked.teams.cloudflare.com
a partir da rede corporativa, inclusive em `/up`. Duas hipóteses seguem não
validadas por dependerem de `FILESYSTEM_DISK=r2` — os ~4 round trips a R2 por
imagem que `x-media.image` faz sem cache, e a falta de `preconnect` para a
origem cross-origin de mídia. Ambas documentadas em
docs/evidence/lighthouse/README.md.

Co-Authored-By: Claude noreply@anthropic.com
AI-Assisted: yes
AI-Tool: claude-code
2026-08-10 13:55:34 -03:00

18 KiB
Raw Blame History

Lighthouse — local

  • Origem: http://127.0.0.1:8000
  • Lighthouse: 12.8.2
  • Navegador: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.0.0 Safari/537.36
  • Coletado em: 2026-08-10T15:55:03.101Z
  • Execuções por página/preset: 3 (reportada a de LCP mediano)
  • Commit: 2e43fde
  • Seeder: ContentSeeder

Metas SPEC §6.6: LCP ≤ 2,5 s · CLS ≤ 0,1 · INP ≤ 200 ms · zero erro de console.

página preset perf a11y BP SEO LCP FCP CLS TBT TTFB servidor LCP minmax
contato desktop 100 100 100 100 0.53 s 0.37 s 0.000 0 ms 55 ms 0.53 s 0.53 s
contato mobile 97 100 100 100 2.55 s 1.50 s 0.000 0 ms 97 ms 2.55 s 2.56 s
home desktop 99 100 100 100 0.87 s 0.37 s 0.000 0 ms 75 ms 0.87 s 0.87 s
home mobile 83 100 100 100 4.58 s 1.51 s 0.000 0 ms 217 ms 4.36 s 4.58 s
portfolio-detalhe desktop 99 100 100 100 0.97 s 0.37 s 0.000 0 ms 89 ms 0.97 s 0.97 s
portfolio-detalhe mobile 87 100 100 100 3.98 s 1.51 s 0.000 0 ms 126 ms 3.98 s 4.05 s
portfolio desktop 99 100 100 100 0.83 s 0.37 s 0.000 0 ms 187 ms 0.63 s 0.83 s
portfolio mobile 87 100 100 100 3.98 s 1.51 s 0.000 0 ms 108 ms 3.91 s 4.20 s
servicos desktop 100 100 100 100 0.77 s 0.37 s 0.000 0 ms 124 ms 0.77 s 0.77 s
servicos mobile 89 100 100 100 3.68 s 1.51 s 0.000 0 ms 78 ms 3.61 s 3.68 s
sobre desktop 100 100 100 100 0.61 s 0.37 s 0.000 0 ms 48 ms 0.57 s 0.61 s
sobre mobile 94 100 100 100 3.01 s 1.51 s 0.000 0 ms 133 ms 2.87 s 3.01 s

Decomposição do LCP

contato — desktop

Elemento de LCP: <h1 class="text-headline font-medium tracking-tight text-amare-text">

fase tempo
TTFB 0.12 s
Load Delay 0.00 s
Load Time 0.00 s
Render Delay 0.41 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/brand/lockup-on-light.webp Image 83 KiB 0.07 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.08 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.08 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.08 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.07 s
/build/assets/eb-garamond-500-normal-DehAIUv0.woff2 Font 25 KiB 0.06 s
/build/assets/eb-garamond-400-normal-BCNrxLz_.woff2 Font 24 KiB 0.06 s
/build/assets/app-Cswasu1n.css Stylesheet 10 KiB 0.06 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.10 s
Use efficient cache lifetimes 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

contato — mobile

Elemento de LCP: <h1 class="text-headline font-medium tracking-tight text-amare-text">

fase tempo
TTFB 0.45 s
Load Delay 0.00 s
Load Time 0.00 s
Render Delay 2.10 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/brand/lockup-on-light.webp Image 83 KiB 0.11 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.12 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.12 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.12 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.11 s
/build/assets/eb-garamond-500-normal-DehAIUv0.woff2 Font 25 KiB 0.11 s
/build/assets/eb-garamond-400-normal-BCNrxLz_.woff2 Font 24 KiB 0.11 s
/build/assets/app-Cswasu1n.css Stylesheet 10 KiB 0.11 s
insight com falha ganho estimado de LCP bytes
Render blocking requests 0.60 s
Improve image delivery 0.45 s
Use efficient cache lifetimes 0.15 s
Network dependency tree 0.00 s

home — desktop

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/og/og-default-960.jpg" srcset="/storage/content/og/og-default-480.jpg 480w, /storage/content/og/og-defaul…" size

fase tempo
TTFB 0.12 s
Load Delay 0.45 s
Load Time 0.03 s
Render Delay 0.27 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/og/og-default-960.jpg Image 143 KiB 0.09 s
/storage/content/portfolio/casamento-ana-lucas-cover-960.jpg Image 142 KiB 0.10 s
/storage/content/portfolio/lancamento-verano-cover-960.jpg Image 106 KiB 0.10 s
/storage/content/portfolio/mini-wedding-marina-cover-960.jpg Image 100 KiB 0.10 s
/brand/lockup-on-light.webp Image 83 KiB 0.08 s
/brand/mark-on-light.webp Image 42 KiB 0.08 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.09 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.09 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.25 s
Use efficient cache lifetimes 0.05 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

home — mobile

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/og/og-default-960.jpg" srcset="/storage/content/og/og-default-480.jpg 480w, /storage/content/og/og-defaul…" size

fase tempo
TTFB 0.45 s
Load Delay 3.30 s
Load Time 0.11 s
Render Delay 0.72 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/og/og-default-960.jpg Image 143 KiB 0.23 s
/storage/content/portfolio/casamento-ana-lucas-cover-960.jpg Image 142 KiB 0.25 s
/storage/content/portfolio/lancamento-verano-cover-960.jpg Image 106 KiB 0.25 s
/storage/content/portfolio/mini-wedding-marina-cover-960.jpg Image 100 KiB 0.25 s
/brand/lockup-on-light.webp Image 83 KiB 0.23 s
/brand/mark-on-light.webp Image 42 KiB 0.23 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.24 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.24 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 1.35 s
Use efficient cache lifetimes 0.30 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

portfolio-detalhe — desktop

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/portfolio/casamento-ana-lucas-cover-…" srcset="/storage/content/portfolio/casamento-ana-lucas-cover-480.jpg 480w

fase tempo
TTFB 0.12 s
Load Delay 0.54 s
Load Time 0.04 s
Render Delay 0.26 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/portfolio/casamento-ana-lucas-cover-1440.jpg Image 287 KiB 0.10 s
/storage/content/portfolio/casamento-ana-lucas-gallery-1-960.jpg Image 209 KiB 0.11 s
/storage/content/portfolio/casamento-ana-lucas-gallery-2-960.jpg Image 172 KiB 0.11 s
/brand/lockup-on-light.webp Image 83 KiB 0.10 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.10 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.11 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.10 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.10 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.20 s
Use efficient cache lifetimes 0.05 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

portfolio-detalhe — mobile

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/portfolio/casamento-ana-lucas-cover-…" srcset="/storage/content/portfolio/casamento-ana-lucas-cover-480.jpg 480w

fase tempo
TTFB 0.45 s
Load Delay 2.62 s
Load Time 0.06 s
Render Delay 0.85 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/portfolio/casamento-ana-lucas-gallery-1-960.jpg Image 209 KiB 0.16 s
/storage/content/portfolio/casamento-ana-lucas-gallery-2-960.jpg Image 172 KiB 0.16 s
/storage/content/portfolio/casamento-ana-lucas-cover-960.jpg Image 142 KiB 0.14 s
/brand/lockup-on-light.webp Image 83 KiB 0.14 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.15 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.14 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 1.20 s
Use efficient cache lifetimes 0.15 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

portfolio — desktop

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/portfolio/casamento-ana-lucas-cover-…" srcset="/storage/content/portfolio/casamento-ana-lucas-cover-480.jpg 480w

fase tempo
TTFB 0.19 s
Load Delay 0.51 s
Load Time 0.01 s
Render Delay 0.12 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/portfolio/casamento-ana-lucas-cover-960.jpg Image 142 KiB 0.23 s
/storage/content/portfolio/lancamento-verano-cover-960.jpg Image 106 KiB 0.23 s
/storage/content/portfolio/mini-wedding-marina-cover-960.jpg Image 100 KiB 0.23 s
/brand/lockup-on-light.webp Image 83 KiB 0.20 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.23 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.23 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.22 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.21 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.25 s
Use efficient cache lifetimes 0.00 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

portfolio — mobile

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/portfolio/casamento-ana-lucas-cover-…" srcset="/storage/content/portfolio/casamento-ana-lucas-cover-480.jpg 480w

fase tempo
TTFB 0.45 s
Load Delay 2.68 s
Load Time 0.09 s
Render Delay 0.76 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/portfolio/casamento-ana-lucas-cover-960.jpg Image 142 KiB 0.13 s
/storage/content/portfolio/lancamento-verano-cover-960.jpg Image 106 KiB 0.13 s
/storage/content/portfolio/mini-wedding-marina-cover-960.jpg Image 100 KiB 0.13 s
/brand/lockup-on-light.webp Image 83 KiB 0.12 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.13 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.13 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.13 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.12 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 1.35 s
Use efficient cache lifetimes 0.15 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

servicos — desktop

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/services/casamentos-960.jpg" srcset="/storage/content/services/casamentos-480.jpg 480w, /storage/content/servic…

fase tempo
TTFB 0.13 s
Load Delay 0.49 s
Load Time 0.03 s
Render Delay 0.12 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/services/casamentos-960.jpg Image 107 KiB 0.15 s
/storage/content/services/eventos-corporativos-960.jpg Image 100 KiB 0.15 s
/storage/content/services/celebracoes-intimistas-960.jpg Image 83 KiB 0.15 s
/brand/lockup-on-light.webp Image 83 KiB 0.14 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.15 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.14 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.20 s
Use efficient cache lifetimes 0.05 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

servicos — mobile

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/services/casamentos-960.jpg" srcset="/storage/content/services/casamentos-480.jpg 480w, /storage/content/servic…

fase tempo
TTFB 0.45 s
Load Delay 2.22 s
Load Time 0.07 s
Render Delay 0.94 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/storage/content/services/casamentos-960.jpg Image 107 KiB 0.12 s
/storage/content/services/eventos-corporativos-960.jpg Image 100 KiB 0.12 s
/storage/content/services/celebracoes-intimistas-960.jpg Image 83 KiB 0.12 s
/brand/lockup-on-light.webp Image 83 KiB 0.09 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.12 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.12 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.12 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.09 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 1.20 s
Use efficient cache lifetimes 0.15 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

sobre — desktop

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/about/about-image-960.jpg" srcset="/storage/content/about/about-image-480.jpg 480w, /storage/content/about/ab…"

fase tempo
TTFB 0.12 s
Load Delay 0.25 s
Load Time 0.01 s
Render Delay 0.22 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/brand/lockup-on-light.webp Image 83 KiB 0.06 s
/storage/content/about/about-image-960.jpg Image 60 KiB 0.07 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.06 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.06 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.06 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.06 s
/build/assets/eb-garamond-500-normal-DehAIUv0.woff2 Font 25 KiB 0.05 s
/build/assets/eb-garamond-400-normal-BCNrxLz_.woff2 Font 24 KiB 0.05 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.10 s
Use efficient cache lifetimes 0.05 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s

sobre — mobile

Elemento de LCP: <img src="http://127.0.0.1:8000/storage/content/about/about-image-960.jpg" srcset="/storage/content/about/about-image-480.jpg 480w, /storage/content/about/ab…"

fase tempo
TTFB 0.45 s
Load Delay 1.94 s
Load Time 0.07 s
Render Delay 0.54 s

Requests concluídas até o LCP, mais pesadas primeiro:

recurso tipo transferido fim
/brand/lockup-on-light.webp Image 83 KiB 0.14 s
/storage/content/about/about-image-960.jpg Image 60 KiB 0.16 s
/build/assets/eb-garamond-600-normal-xCe6GkOx.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-500-normal-DZU8xF9o.woff Font 30 KiB 0.15 s
/build/assets/eb-garamond-400-normal-maQnHeKB.woff Font 28 KiB 0.16 s
/build/assets/eb-garamond-600-normal-DHwxsLHv.woff2 Font 25 KiB 0.14 s
/build/assets/eb-garamond-500-normal-DehAIUv0.woff2 Font 25 KiB 0.14 s
/build/assets/eb-garamond-400-normal-BCNrxLz_.woff2 Font 24 KiB 0.14 s
insight com falha ganho estimado de LCP bytes
Improve image delivery 0.90 s
Use efficient cache lifetimes 0.30 s
LCP request discovery 0.00 s
Network dependency tree 0.00 s
Render blocking requests 0.00 s