Pular para o conteúdo principal

Questão de Programação — Web — Avança SP 2025

ProgramaçãoWeb
Código
qg425169
Banca
Avança SP
Órgão
UNITAU
Ano
2025
Nível
Superior
Cargo
Programador Pleno
Em uma aplicação web moderna, qual é a melhor prática para implementar navegação entre páginas considerando SEO e performance?
  1. AUsar window.location para redirecionamento
  2. BImplementar React Router com componentes Link
  3. CUtilizar tags com atributo target="_blank"
  4. DRealizar redirecionamento via JavaScript puro
  5. EUsar frames para separar o conteúdo das páginas
Revelar gabarito e comentário

GabaritoB — Implementar React Router com componentes Link

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Navegação em aplicações web modernas: SEO e performance

Gabarito: letra B. Em uma aplicação web moderna, a melhor prática para navegação entre páginas, considerando SEO e performance, é usar um roteador de front-end como o React Router, com componentes Link que geram âncoras HTML reais (<a href>). Isso permite que os mecanismos de busca rastreiem os links e que o navegador pré-carregue os recursos, mantendo a experiência de SPA (Single Page Application) sem recarregar a página inteira. As demais alternativas (redirecionamento via window.location, JavaScript puro, target="_blank" e frames) sacrificam SEO, performance ou usabilidade.

O que está em jogo aqui é a diferença entre navegação tradicional (recarregamento completo da página) e navegação client-side (SPA). Em uma SPA, o React Router (ou similar, como Vue Router) intercepta a navegação e troca apenas o conteúdo da view, sem recarregar o HTML inteiro. Isso melhora a performance percebida, pois evita o download de todos os assets novamente. Para o SEO, o componente Link renderiza uma tag <a href> real, que os crawlers do Google conseguem seguir — diferente de um window.location que só executa via JavaScript e pode não ser indexado.

A pegadinha da banca está em confundir "navegação programática" (redirecionamento via JS) com "navegação declarativa" (links). window.location e JavaScript puro são formas de redirecionar, mas não são consideradas boas práticas para SEO porque não geram links rastreáveis e podem quebrar a experiência de voltar/avançar do navegador. Já o target="_blank" abre em nova aba, o que não é navegação entre páginas do próprio site, e frames são obsoletos e prejudiciais ao SEO.

Na prática, um componente Link do React Router faz o seguinte: quando o usuário clica, ele intercepta o evento, atualiza a URL via History API e renderiza a nova rota sem recarregar a página. O crawler do Google, ao analisar o HTML, vê um link normal (<a href="/sobre">) e consegue rastrear. Isso é o melhor dos dois mundos: performance de SPA + rastreabilidade de links tradicionais.

Guarde esta distinção: navegação declarativa com Link (gera âncora HTML) é a melhor prática; navegação imperativa com window.location ou JS puro é para redirecionamentos pontuais (ex.: após login), não para a navegação principal. É exatamente nessa fronteira que as alternativas se dividem.

1Declarativa (Link)
Gera âncora HTML real
SEO rastreável
Performance de SPA
2Imperativa (window.location / JS puro)
Sem link rastreável
Recarrega a página
Uso pontual (pós-login)
3Obsoleta (frames)
SEO prejudicado
Acessibilidade ruim
Navegação web moderna
LEVELsoulevel.com.br
Navegação web moderna: Declarativa (Link) (Gera âncora HTML real, SEO rastreável, Performance de SPA); Imperativa (window.location / JS puro) (Sem link rastreável, Recarrega a página, Uso pontual (pós-login)); Obsoleta (frames) (SEO prejudicado, Acessibilidade ruim)

Alternativa A — ❌ Incorreta

Usar window.location para redirecionamento é uma forma de navegação imperativa e programática. Ela não gera um link rastreável para SEO (o crawler não vê o destino no HTML) e causa um recarregamento completo da página, prejudicando a performance. É aceitável para redirecionamentos pontuais (ex.: após autenticação), mas não como prática geral de navegação entre páginas.

Alternativa B — ✅ Correta ⟵ GABARITO

O React Router com componentes Link é a melhor prática. O Link renderiza uma tag <a href> real, o que permite que os mecanismos de busca rastreiem os links (SEO) e que o navegador pré-carregue os recursos (performance). Além disso, mantém o estado da SPA e a experiência de navegação sem recarregar a página inteira. É a abordagem padrão em aplicações React modernas.

Alternativa C — ❌ Incorreta

Utilizar tags <a> com target="_blank" abre o link em uma nova aba/janela. Isso não é navegação entre páginas do próprio site — é uma ação de abrir um recurso externo. Além disso, o uso indiscriminado de target="_blank" pode prejudicar a performance (abre nova aba) e não resolve a navegação interna da aplicação. Não é uma prática de navegação entre páginas.

Alternativa D — ❌ Incorreta

Realizar redirecionamento via JavaScript puro (ex.: window.location.href = ...) tem os mesmos problemas da alternativa A: não gera link rastreável para SEO e causa recarregamento completo. É uma solução imperativa, não declarativa, e não é considerada boa prática para navegação principal em aplicações modernas.

Alternativa E — ❌ Incorreta

Usar frames (<frame>, <iframe>) para separar o conteúdo é uma técnica obsoleta e prejudicial ao SEO. Os mecanismos de busca têm dificuldade em indexar conteúdo dentro de frames, e a experiência de navegação (URL, histórico) fica comprometida. Além disso, frames são considerados uma má prática de acessibilidade e usabilidade. Não é uma solução moderna.

NÃO CAIA NESSA!

A banca tenta confundir "redirecionamento" com "navegação". window.location e JavaScript puro são formas de redirecionar, mas não são boas práticas para navegação entre páginas em uma SPA — o candidato que pensa "qualquer forma de mudar de página serve" cai nas alternativas A ou D. Lembre-se: a melhor prática é gerar links reais (<a href>) via componente Link.

PEGA ESSA DICA!

Na prova, quando a questão falar em "SEO e performance" em aplicações web modernas, procure a alternativa que menciona roteador de front-end (React Router, Vue Router) ou componente Link. Essas opções combinam rastreabilidade (SEO) e carregamento eficiente (performance). Evite alternativas com window.location, JavaScript puro ou frames.

Gabarito: letra B

Link permanente: /questoes/qg425169