EM ANDAMENTO
Resumo técnico
Plugin NEXUS que integra o Google PageSpeed Insights (API v5) para auditoria de performance web: roda Lighthouse em mobile/desktop, captura os 4 scores (Performance, A11y, Best Practices, SEO) e os Core Web Vitals de laboratório (LCP, CLS, TBT, SI, FCP, TTI), com cache de 24h, histórico de runs, comparação entre execuções (delta de performance/LCP) e enriquecimento de URLs no Intelligence Hub.
Escopo executado
- Backend
backend.php(757 linhas):PAGESPEED_API_BASE(Google runPagespeed v5),PAGESPEED_CACHE_TTL = 86400(24h),PAGESPEED_TIMEOUT = 90,PAGESPEED_CATEGORIES(performance, accessibility, best-practices, seo); config emDB::getConfig('pagespeed_settings')comapi_key,auto_enrich(default true) edefault_strategy(default mobile). - Tabela:
pagespeed_install()criapagespeed_runs(id, url_norm VARCHAR(768), url_hash CHAR(32), strategy, status ok/error/quota/needs_api, score_perf/a11y/bp/seo, lcp_ms, cls DECIMAL(10,4), tbt/si/fcp/tti_ms, metrics_json/categories_json/summary_json LONGTEXT, http_code, error, from_cache, task_id, created_at; índices idx_url_strategy + idx_created). - Lookup:
normalize_url()(prefixo https://, host minúsculo),url_hash = md5(strategy|url), cache 24h por url_hash+strategy com status ok (paramforceignora o cache); requisição via cURL (timeout 90s, connect 10s, SSL verify,Accept: application/json, User-AgentNEXUS PageSpeed/1.0). - Parse: scores 0-100 por categoria; métricas LCP, CLS, TBT, SI, FCP, TTI (+ INP e max-potential-fid quando presentes); lighthouseVersion, fetchTime e finalUrl persistidos.
- Classificação de erros: HTTP 429/rate/quota → status
quota; 403 "has not been used" →needs_api(sem key); demais →errorcom mensagem. - Histórico:
pagespeed_history(page, limit ≤ 50, filtro por URL via hash mobile+desktop). - Comparação:
pagespeed_comparepor IDs (a/b) ou pelos últimos 2 runs OK da URL+strategy; delta de scores + delta LCP/TBT. - Teste de conexão:
pagespeed_test_connectionfaz probe em example.com (categoria performance); 429 sem key → "API alcançável, mas quota anônima esgotada". - Intelligence Hub:
pagespeed_intel_enrich(prioridade 48) —auto_enrichoff → vazio; budgetmax_live_lookups(default 2, slice ≤ 5); summaryPSI <strategy> · perf=N · LCP=Xms · CLS=Y, severidadeclamp(5, 95, 100−perf); URLs restantes ficampending. - API: 7 actions via
PluginManager::registerApiAction(pagespeed_stats, pagespeed_settings, pagespeed_settings_save, pagespeed_test_connection, pagespeed_lookup, pagespeed_history, pagespeed_compare) — sessão + CSRF;settings_savecomkeep_key(campo vazio = manter a key atual). - Segurança da key:
pagespeed_public_config()devolve apenasapi_configured(bool),auto_enrichedefault_strategy— a API key nunca é exposta no front. - UI Alpine.js (
tab.php, 396 linhas): badge Key OK / Sem Key, 4 stat cards (Runs, OK, Hoje, Avg Perf), abas Analisar (mobile/desktop, 4 scores com cor por faixa ≥90/≥50/<50, cards Core Web Vitals), Histórico (tabela paginada ID/URL/Strat/Perf/LCP/Status/Quando; clique recarrega no Analisar com cache), Comparar (IDs ou URL; card Delta Perf + LCP Δ) e Configurações (passo a passo da API Key, strategy padrão, toggle auto-enrich, Testar conexão). - Fastr
/pagespeed(fastr.json):arg_required=true,arg_key=url,pass_task_id=false→pagespeed_lookup. - Sem
cronjob.json— plugin on-demand com cache local 24h para absorver repetições.
Stack e ferramentas
- PHP 8 (sem framework)
- MySQL 8 (config em admin_configs; tabela pagespeed_runs)
- Alpine.js + Tailwind CSS (premium light, ring emerald)
- Sistema de plugins do NEXUS (PluginManager)
- cURL → Google PageSpeed Insights API v5 (runPagespeed)
Tags operacionais
- PageSpeed
- Lighthouse
- Core Web Vitals
- Performance
- SEO
Resultado operacional
- Auditoria completa em 1 chamada: 4 scores + 6 Core Web Vitals (lab) por run, em mobile e desktop, sem depender de extensão de navegador.
- Cache 24h evita re-queima de quota: reconsultas de URLs recentes são servidas da tabela sem bater na API.
- Regressão visível: a comparação entre runs (por IDs ou pela última URL) mostra o delta de performance e de LCP/TBT entre duas execuções.
- Intelligence Hub contextualizado: com auto-enrich ativo, URLs de tarefas ganham resumo
PSI <strategy> · perf · LCP · CLSe severidade derivada sem sair do NEXUS.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Plugin NEXUS que integra o Google PageSpeed Insights (API v5) para auditoria de performance web: roda Lighthouse em mobile/desktop, captura os 4 scores (Performance, A11y, Best Practices, SEO) e os Core Web Vitals de laboratório (LCP, CLS, TBT, SI, FCP, TTI), com cache de 24h, histórico de runs, comparação entre execuções e enriquecimento no Intelligence Hub.
Arquitetura e organização
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.