SEO para PWA

SEO para Progressive Web Apps — por que "adotar PWA" não melhora o ranqueamento, por que o manifest.json é irrelevante para SEO, como um service worker mal configurado pode servir um cache desatualizado ao Googlebot, e onde Core Web Vitals e HTTPS realmente (e não) se sobrepõem ao SEO.

Publicado pela primeira vez: 3 de jul. de 2026 · Última atualização: 22 de ago. de 2026 · Avançado
Idiomas

Um PWA é um site aprimorado com um manifest e um service worker — para o Google, ele continua sendo um site normal (geralmente JavaScript/SPA), sem vantagem inerente de ranqueamento. O manifest.json é irrelevante para SEO (ele controla a instalabilidade, não a indexação). O único risco real específico de PWA é o service worker: o renderizador do Google não executa service workers durante a indexação, então uma estratégia de cache-first para HTML pode entregar ao Googlebot uma página desatualizada ou offline. Corrija isso com network-first para HTML, e o resto é SEO comum de JS/SPA.

TL;DR — Uma PWA é um manifesto + um service worker sobrepostos ao que é quase sempre um site JS/SPA — portanto, as regras de renderização do SEO de JavaScript/SPA se aplicam inalteradas, mais duas preocupações específicas de PWA. O Google dá às PWAs nenhuma vantagem de ranqueamento (Mueller). O manifest.json governa a instalabilidade, não a indexação, e não há evidências de que os sistemas de ranqueamento o leiam. O service worker é o risco real: o renderizador do Google não executa service workers ao indexar, então uma estratégia de HTML com cache-first pode indexar um shell desatualizado ou offline — use network-first para HTML, cache-first para ativos estáticos. HTTPS é um requisito rígido para service workers e separadamente um pequeno sinal de ranqueamento; não encadeie isso em “PWAs ranqueiam melhor.” Core Web Vitals é a única sobreposição legítima, e é a engenharia, não o rótulo de PWA.

Evidence for this claim A progressive web app is still a web application; installability features do not replace indexable HTML and URLs. Scope: Current official or standards documentation. Confidence: high · Verified: web.dev: Progressive web apps Evidence for this claim JavaScript applications must expose crawlable links, meaningful content, metadata, and status behavior to Google. Scope: Current official or standards documentation. Confidence: high · Verified: Google: JavaScript SEO basics

Uma PWA é um site antes de tudo

O enquadramento mais útil é este: uma Progressive Web App é um site normal com dois recursos adicionais. Pela definição do próprio Google, PWAs “are web apps built and enhanced with modern APIs to provide enhanced capabilities while still reaching any web user on any device with a single codebase.” (tradução) «são aplicativos web criados e aprimorados com APIs modernas para oferecer recursos avançados e, ao mesmo tempo, alcançar qualquer usuário da web, em qualquer dispositivo, com uma única base de código». Os três pilares citados pelo Google são Capable, Reliable e Installable — nenhum deles é “ranqueável”.

Arquiteturalmente, esse código é quase sempre um framework JavaScript executando um padrão de aplicação de página única. O que significa: tudo o que governa a indexabilidade de JS/SPA governa a indexabilidade de PWA, sem modificação. Links reais <a href> e roteamento via History API (não fragmentos de hash) para endereçabilidade; renderização no servidor ou pré-renderização para disponibilidade de conteúdo; canonical, título e meta por rota no DOM renderizado. Se você já leu o material de SEO para JavaScript e SEO para SPA, você já conhece 90% do SEO para PWA — o modo de falha do app shell, em particular, é um que o Google documenta explicitamente: “Some JavaScript sites may use the app shell model where the initial HTML does not contain the actual content and Google needs to execute JavaScript before being able to see the actual page content that JavaScript generates.” (tradução) «Alguns sites JavaScript podem usar o modelo de app shell em que o HTML inicial não contém o conteúdo real e o Google precisa executar JavaScript antes de conseguir ver o conteúdo real da página que o JavaScript gera.» Um PWA que envia um shell vazio sem SSR/pré-renderização herda esse problema diretamente.

Portanto, o escopo honesto de um artigo de SEO específico para PWA é pequeno: o manifesto e o service worker. Todo o resto é SEO de JS/SPA vestindo um manifesto.

O mito central: “tornar-se PWA” não melhora o ranqueamento

Este é o ponto central. O Google foi incomumente direto sobre o assunto. Em uma sessão de atendimento do Search Central, John Mueller disse que PWAs “currently don’t have any advantage in Google Search, and as far as I know, there are no plans to change this,” (tradução) «atualmente não têm nenhuma vantagem na Pesquisa Google e, pelo que sei, não há planos para mudar isso»; quando perguntaram se converter um site em PWA ajudaria, respondeu: “By default, saying going to a PWA will make your rankings better — I don’t think that is the case.” (tradução) «Por padrão, dizer que adotar uma PWA melhorará seu ranqueamento — não acho que seja esse o caso».

Ele também antecipou o contra-argumento habitual: “nosso concorrente adotou PWA e seu ranqueamento disparou”. A resposta foi: “So just the fact that one of your competitors has moved from one framework to another, and has seen an improvement in search, that framework change from my point of view wouldn’t be responsible for that.” (tradução) «Só o fato de um concorrente ter migrado de um framework para outro e obtido uma melhora na busca não significa, do meu ponto de vista, que a mudança de framework tenha sido responsável por ela». E explicou: “These are essentially different ways of making a website… for the most part, we see these as normal HTML pages.” (tradução) «Essas são, essencialmente, maneiras diferentes de criar um site… na maior parte dos casos, nós as vemos como páginas HTML normais».

Onde relançamentos de PWA de fato se correlacionam com ganhos de ranqueamento, são os fatores de confusão que acompanham qualquer grande reformulação: linkagem interna modernizada, conteúdo atualizado e expandido, melhorias genuínas de velocidade e, geralmente, um impulso de marketing ligado ao relançamento. Nada disso exige o rótulo de PWA. Se você reconstruir um site de 10 a 15 anos crescidos organicamente, você muda uma dúzia de coisas ao mesmo tempo — atribuir o resultado a “PWA” é um erro de correlação.

As declarações de Mueller nos office hours acima são relatadas pelo Search Engine Journal e independentemente pelo Search Engine Roundtable cobrindo a mesma sessão de novembro de 2021; não reassisti ao vídeo original, então trate-as como reportadas-oficialmente.

Manifest.json: instalabilidade ≠ indexabilidade

O arquivo manifest.json existe para tornar seu aplicativo instalável. Seus campos — name, short_name, icons, start_url, display, theme_color — controlam o prompt de instalação, o ícone da tela inicial, a tela de abertura e se o aplicativo abre em modo autônomo ou em uma aba do navegador. Esse é o trabalho inteiro.

Não há evidência de que os sistemas de ranqueamento ou indexação do Google leiam o manifesto como um sinal. A confirmação externa mais clara é a própria lista de verificação de PWA do Google, que lista “Is installable” (tradução) «É instalável» e “Discoverable in search” (tradução) «Pode ser encontrado na busca» como duas categorias separadas e independentes. Nela, a capacidade de descoberta é definida pelos fundamentos comuns de SEO: “Enable search engine discovery through unique URLs, descriptive titles, meta descriptions, and structured data.” (tradução) «Permita a descoberta pelos mecanismos de busca com URLs exclusivas, títulos descritivos, meta descriptions e dados estruturados». Instalabilidade (orientada pelo manifesto) e descoberta (SEO clássico) são tratadas como preocupações paralelas, não uma alimentando a outra. Portanto, mantenha um manifesto válido porque é ele que torna o aplicativo instalável; apenas não o classifique como um recurso de SEO.

O Google não publica uma página afirmando em palavras exatas que manifest.json está excluído do ranqueamento; esta é uma inferência bem fundamentada a partir da declaração de “nenhuma vantagem”, da separação das duas categorias na lista de verificação e da ausência total do manifest nos documentos de fatores de ranqueamento do Google — formule como “nenhuma evidência de que seja lido”, não “confirmado como ignorado”.

Service workers: o único risco real de SEO específico de PWA

Aqui está o fato que mais importa, e é específico de PWA: o serviço de renderização do Google não executa o seu service worker quando renderiza uma página para indexação. A justificativa, de Martin Splitt: “As we have to assume that someone clicking on your page from a SERP is a first-time visitor, running a service worker is usually not going to do much good.” (tradução) «Como temos que presumir que alguém que clica na sua página a partir de uma SERP é um visitante de primeira viagem, executar um service worker geralmente não vai trazer muito benefício.» O objetivo principal de um service worker é acelerar visitas repetidas a partir de um cache — e o Googlebot é, por design, sempre tratado como um visitante de primeira viagem, então não há nada para acelerar. Splitt novamente: “We’re not supporting that because users clicking onto your page from the search result might never have been there beforehand.” (tradução) «Não estamos oferecendo suporte a isso porque os usuários que clicam na sua página a partir do resultado de pesquisa podem nunca ter estado lá antes.» Mueller confirmou que esta é uma política estável, não um estado temporário: “I wouldn’t expect it to change — it’s computationally expensive to run service-workers in the background like this for indexing.” (tradução) «Não esperaria que mudasse — é computacionalmente caro executar service workers em segundo plano assim para indexação.»

Essas três declarações são transmitidas pelo SearchViu (Splitt no Google I/O 2019/2020; Mueller relatado em julho de 2023). Confirmei que as citações de Splitt e Mueller aparecem literalmente nessa página, mas ela é uma fonte intermediária, não uma URL do Google. Observe também que “nunca executa” é absoluto demais — Splitt indicou que web workers podem ser executados em algumas situações; a formulação segura é “the rendering service doesn’t run service workers by design,” (tradução) «o serviço de renderização não executa service workers por decisão de projeto», e não “under no circumstance.” (tradução) «sob nenhuma circunstância».

Então por que isso é um risco? Porque o seu service worker executa nos navegadores dos usuários reais, e se você o configurou para servir HTML cache-first — retornar a cópia salva, pular a rede — então um visitante repetido real vê uma página em cache rápida, mas essa é uma estratégia que o Googlebot nunca executa. O perigo é o caso inverso: um padrão de cache que, sob qualquer condição de erro ou fallback, devolve um documento desatualizado ou a página de fallback offline. Como a renderização é stateless e o WRS trata cada busca como nova, uma estratégia de cache mal configurada é como um PWA acaba com o Googlebot indexando um shell offline desatualizado ou vazio em vez de conteúdo ao vivo.

A regra prática da estratégia de cache:

  • Documentos HTML → network-first (ou stale-while-revalidate com TTL curto). Obtenha a página ao vivo; use o cache apenas como fallback offline e certifique-se de que esse fallback nunca seja o que um rastreamento novo indexaria.
  • Ativos estáticos (JS, CSS, imagens, fontes) → cache-first é aceitável e desejável — eles não mudam por solicitação e não são o documento indexável.

Como auditar: compare o que o Googlebot vê com o que o navegador de um visitante repetido serve do cache. Use a URL Inspection no Search Console (teste ao vivo) para ver o HTML renderizado que o Google realmente obtém e verifique-o em relação à página ao vivo. Se divergirem, seu service worker ou configuração de SSR é o primeiro suspeito. E observe os timeouts de renderização em configurações híbridas — como Hamlet Batista observou na era da renderização dinâmica, “Rendering services won’t wait forever for a page to finish loading.” (tradução) «Os serviços de renderização não esperarão para sempre uma página terminar de carregar.» (Esse artigo específico é sobre renderização dinâmica, que o Google agora desencoraja em favor de SSR — cite o princípio do timeout, não o padrão.)

HTTPS: um requisito de service worker e, separadamente, um pequeno sinal de ranqueamento

Você verá posts de SEO para PWA implicando que “PWAs precisam de HTTPS, e HTTPS melhora o ranqueamento, portanto PWAs são mais amigáveis para SEO.” Dois fatos verdadeiros, encadeados incorretamente.

Fato um: service workers só funcionam em um contexto seguro. Segundo a MDN: “Service workers are only available in secure contexts: this means that their document is served over HTTPS, although browsers also treat http://localhost as a secure context, to facilitate local development.” (tradução) «Service workers só estão disponíveis em contextos seguros: isso significa que o documento deles é servido via HTTPS, embora os navegadores também tratem http://localhost como um contexto seguro, para facilitar o desenvolvimento local.» Essa é uma regra da plataforma do navegador, não uma tática de SEO — sem HTTPS, sem service worker, ponto final.

Fato dois: HTTPS é um sinal real de ranqueamento do Google, mas minúsculo. O anúncio de 2014 do próprio Google: “we’re starting to use HTTPS as a ranking signal. For now it’s only a very lightweight signal — affecting fewer than 1% of global queries, and carrying less weight than other signals such as high-quality content.” (tradução) «estamos começando a usar HTTPS como um sinal de ranqueamento. Por enquanto é apenas um sinal muito leve — afetando menos de 1% das consultas globais e tendo menos peso do que outros sinais, como conteúdo de alta qualidade.»

O ponto: qualquer site com HTTPS recebe esse mesmo sinal minúsculo — PWA ou não. Um PWA não recebe crédito extra de SEO por HTTPS; ele simplesmente não funciona sem isso. Não venda HTTPS como um benefício de SEO para PWA.

Core Web Vitals: a única sobreposição legítima

Se existe um lugar real onde “bom PWA” e “bom SEO” se encontram, é o desempenho. A orientação de PWA do Google começa com confiabilidade — “A reliable Progressive Web App feels fast and dependable regardless of the network” (tradução) «Um Progressive Web App confiável parece rápido e confiável independentemente da rede» — e as Core Web Vitals são um fator de ranqueamento confirmado (embora modesto). Um PWA bem projetado que carrega rápido e permanece responsivo tende a ter pontuações boas nas Vitals.

Mas leia a causalidade com cuidado: é a engenharia, não o fato de ser PWA. Um PWA inchado — pacote JS enorme, hidratação que bloqueia a renderização, um service worker excessivamente zeloso — pode facilmente apresentar Core Web Vitals piores do que uma página simples renderizada no servidor. A vitória nas Vitals vem de fazer o trabalho de desempenho bem, o que você poderia fazer com ou sem um manifesto. Ser um PWA não garante boas Vitals nem concede um atalho para elas.

Recursos semelhantes a apps são UX, não fatores de ranqueamento

Adicionar à tela inicial, modo offline, notificações push, navegação semelhante a apps — todos benefícios genuiínos e valiosos de PWA, e todos recursos de engajamento/retenção, não entradas de indexação ou ranqueamento. A lista de verificação de PWA do Google torna a divisão explícita ao colocar “instalável” e “detectável na busca” em categorias separadas.

Não trate “instalável” como uma capacidade única e universal também — ela varia por navegador e sistema operacional, o que é mais um motivo para não poder ser um sinal de SEO (o Google não teria um comportamento consistente entre navegadores para recompensar). O evento beforeinstallprompt que permite que um PWA mostre sua própria interface de instalação personalizada é um mecanismo exclusivo do Chromium; de acordo com o guia de instalabilidade de PWA da MDN, ele é “not supported on iOS.” (tradução) «não suportado no iOS.» No Safari do iOS, a instalação acontece apenas pelo fluxo manual Compartilhar → Adicionar à Tela de Início (estendido para Chrome, Edge, Firefox e Orion no iOS 16.4+, todos usando o mecanismo WebKit exigido pela Apple no iOS e, portanto, compartilhando essa limitação), não por um prompt automático. Nada disso muda o cenário de SEO — apenas significa que “meu PWA é instalável” não é um fato sim/não independente de qual navegador e sistema operacional o visitante está usando.

O Twitter Lite é o estudo de caso que todos usam como “prova de que PWAs ajudam no SEO” — e os resultados documentados são reais (um aumento de 65% nas páginas por sessão, aumento de 75% nos Tweets enviados, diminuição de 20% na taxa de rejeição) — mas cada um deles é uma métrica de engajamento. O estudo de caso do próprio Google sobre ele nunca menciona SEO, busca orgânica ou ranqueamentos. Ótimo resultado; coluna errada.

Vitrines de ecommerce PWA: um breve destaque

Vitrines PWA adicionam algumas complicações que valem a pena mencionar, porque elas agravam os riscos de SPA. Roteamento no lado do cliente combinado com navegação facetada pode gerar URLs que parecem rastreáveis, mas que todas resolvem para o mesmo shell, ou uma explosão de URLs com parâmetros. O estado do carrinho e do checkout vive no lado do cliente e nunca deve bloquear o conteúdo indexável do produto. E cada página de produto deve retornar HTML real e exclusivo de forma independente — a armadilha do app-shell é mais cara exatamente onde você tem mais páginas. As correções são as mesmas do SEO de ecommerce e de navegação facetada; a camada PWA não as muda, apenas torna a disciplina de SSR/prerender mais importante.

Bing e PWAs

Vale uma linha: o Bing não publicou nenhuma orientação específica de ranking ou indexação para PWA. Suas diretrizes para webmasters são agnósticas em relação a PWA (crawlability geral, sitemaps, robots.txt, IndexNow), e a extensa documentação de PWA da Microsoft é inteiramente sobre prompts de instalação no Edge, PWABuilder e empacotamento na Microsoft Store — distribuição e instalação, uma trilha separada da indexação em buscas na web. Portanto, para o Bing, use as orientações comuns de crawlability para renderização de JavaScript; não há exceção de PWA a aprender.

A conclusão

SEO para PWA é SEO para JavaScript/SPA com exatamente duas adições: ignore o manifest como entrada de SEO (ele é para instalabilidade) e configure o service worker para que ele nunca prenda o Googlebot em um cache obsoleto ou offline. Acertando isso, um PWA é indexado exatamente como qualquer outro site bem construído — sem bônus, sem penalidade, apenas as mesmas regras.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.