tech stack
Framework web detetada
O MetricSpot identifica a framework JavaScript que renderiza a página (Next.js, Astro, Nuxt, SvelteKit, Remix, React, Vue). Informativo — adapta as receitas da auditoria.
O que esta verificação faz
Identifica a framework JavaScript que renderiza a página a partir de um conjunto em camadas de fingerprints. O primeiro sinal fiável ganha, e o resultado é puramente informativo — esta regra nunca faz falhar uma auditoria.
| Framework | Fingerprints primárias |
|---|---|
| Next.js | <script id="__NEXT_DATA__">, /_next/static/, runtime __next_f, x-powered-by: Next.js |
| Nuxt | window.__NUXT__, /_nuxt/, <div id="__nuxt">, <script id="__NUXT_DATA__"> |
| Astro | custom element astro-island, atributos data-astro-cid-*, comentário <!-- generated by Astro -->, tags View-Transitions |
| SvelteKit | <script data-sveltekit-hydrate>, /_app/immutable/, globais __sveltekit_* |
| Remix / React Router 7 | window.__remixContext, /build/_assets/, <link rel="modulepreload" href="/build/, URLs _data no estilo Remix |
| Gatsby | /page-data/, window.___gatsby, <div id="___gatsby"> |
| Create React App | /static/js/main.*.js, /static/css/main.*.css, <div id="root"> sem marcação SSR |
| Vite + React/Vue | /assets/index-*.js, <script type="module"> com entry com hash, sem globais específicos da framework |
| Vue (autónomo) | <div id="app">, window.Vue, atributos data-v-* com scope |
| Angular | <app-root>, atributo ng-version no elemento raiz |
Quando o MetricSpot não consegue classificar a página com confiança (builds fortemente personalizadas, HTML renderizado no servidor com todas as assinaturas retiradas), reporta “nenhuma framework detetada” e trata a auditoria como um site HTML renderizado no servidor.
Porque é importante
O mesmo que a verificação do CMS — isto é contexto que permite ao resto da auditoria escolher a receita certa.
- Uma tag canonical em falta no Next.js corrige-se via o export
metadatano App Router; no Astro vai no teu<Layout>; no CRA não há correção real sem um servidor. - Um Largest Contentful Paint falhado no Gatsby costuma significar má configuração do plugin de imagens; no Next.js aponta para hints de prioridade no
next/imageou para o limite de streaming; numa SPA Vite costuma significar renderização no cliente do conteúdo acima da dobra (a correção real é SSR). - Um Interaction to Next Paint falhado no Remix ou Next.js App Router aponta para componentes de cliente demasiado grandes; no Astro aponta para ilhas que deviam ser
client:visibleem vez declient:load. - Um sitemap XML é
@astrojs/sitemapno Astro,next-sitemapno Next.js Pages Router ousitemap.tsno App Router — a etiqueta de correção é diferente em cada caso.
A framework também prevê tetos. Sites Astro ou Next.js gerados estaticamente pontuam rotineiramente 95+ em Lighthouse performance; SPAs CRA renderizadas no cliente ou Vue vanilla raramente passam de 70 sem code-splitting agressivo. Saber onde estás diz-te o que vale a pena otimizar e o que vale a pena migrar.
Como corrigir
Não há nada a corrigir — esta regra é informativa. A ação é ler o resto da tua auditoria pela lente das convenções da tua framework.
Next.js (App Router) — quase todas as correções de metadata são o export metadata em layout.tsx ou page.tsx. Os cabeçalhos de segurança vão em next.config.js em async headers(). As imagens usam next/image com priority para LCP.
Next.js (Pages Router) — <Head> em pages/_app.tsx para tags do site, <Head> por página para sobreposições. next-sitemap para sitemaps. Cabeçalhos ainda em next.config.js.
Astro — tudo ao nível de página vai no teu componente <Layout> ou num bloco de frontmatter por página. @astrojs/sitemap para sitemaps, import.meta.env nativo para dados em tempo de build. O modelo “zero JS por defeito” do Astro faz com que a maioria das auditorias de desempenho passe sem intervenção.
Nuxt 3 — composable useHead() ou definePageMeta() para metadata. nuxt.config.ts para definições do site. @nuxtjs/sitemap para sitemaps.
SvelteKit — <svelte:head> em +layout.svelte para tags do site; <svelte:head> por rota para sobreposições. Cabeçalhos via hook handle em src/hooks.server.ts.
Remix — exports meta e headers por rota. Export links para preloads e folhas de estilo.
Create React App / SPA Vite — a maioria das conclusões de auditoria renderizadas no servidor (cabeçalhos de segurança, URLs canónicos, tags OG) não pode ser totalmente corrigida sem renderização no lado do servidor ou um passo de build que injete meta. Considera migrar para Vite + SSR (com uma framework como Astro ou Remix) antes de combater regras individuais.
Vue (autónomo) — usa vue-meta (Vue 2) ou @unhead/vue (Vue 3) para tags head dinâmicas. Para SEO ao nível de SSR, usa Nuxt.
Nenhuma framework detetada — estás em HTML simples ou num template do lado do servidor (PHP, Rails, Django, templates Go). Cada correção é uma edição direta ao template fonte; tens o máximo de controlo e o mínimo de magia.
Esconde fingerprints de framework se tiver mesmo de ser. Podes remover cabeçalhos x-powered-by e retirar comentários <!-- generated by … -->, mas as assinaturas de runtime (IDs de nó de montagem, caminhos de ativos com hash, globais de hidratação) estão cozidas na framework e retirá-las parte a framework. Não vale o esforço.
Perguntas frequentes
O MetricSpot detetou a minha framework errada. Porquê?
O caso mais comum é detetar uma framework wrapper em vez da meta-framework. Um site Next.js é também um site React — o MetricSpot reporta Next.js porque é mais específico. Um site Nuxt é também Vue; reportamos Nuxt. Se vês “React” mas estás em Next.js, a tua build provavelmente está a retirar o script __NEXT_DATA__ — invulgar mas possível em modos de output personalizados.
A framework afeta a minha pontuação de auditoria?
Não, esta regra é apenas informativa. Muda, sim, as receitas que vês — falhas noutras partes da auditoria vão recomendar uma correção adequada à stack detetada.
E se eu estiver a usar várias frameworks (micro-frontends)?
O MetricSpot reporta a framework que renderiza o shell da página. Se o teu shell é Next.js mas uma secção é um micro-frontend Vue, vamos reportar Next.js. Configurações de micro-frontend de página única são raras em superfícies de marketing — se tiveres uma, provavelmente já sabes que framework é dona de cada rota e consegues interpretar a auditoria em conformidade.
Fontes
Última atualização 2026-05-11