Desenvolvedores
Um redirecionamento para a loja de apps deve ser 301 ou 302?
Um redirecionamento que depende do aparelho tem que continuar temporário. Por que um 301 para a App Store ou o Google Play dá problema depois.
Resposta curta
Use um 302 (ou um 307): um redirecionamento que manda iPhones para a App Store e celulares Android para o Google Play responde de forma diferente para cada aparelho e pode mudar depois. Os navegadores guardam um 301 e pulam o seu servidor na próxima vez, então uma URL de loja corrigida depois continua mandando quem volta para a antiga. O OneStoreLink (onestore.link) responde com um 302, então um destino editado vale a partir do próximo toque.
Revisado em 2026-11-03
A escolha parece um detalhe quando você escreve o redirecionamento, e ela decide se você vai poder mudar o destino algum dia. Os navegadores tratam um 301 como “este endereço mudou de vez” e o memorizam; um 302 quer dizer “vá para lá desta vez”. Para um link impresso num QR code ou colado numa bio, que continua sendo usado por meses, essa diferença importa mais do que qualquer outra coisa no redirecionamento. Este guia explica qual código usar, por quê e o que mais um redirecionamento para a loja deve enviar.
O problema
- Um 301 diz aos navegadores que a mudança é permanente, e eles a guardam: a próxima visita pode ir para a loja sem perguntar ao seu servidor.
- Se a URL da loja mudar depois, uma nova página na loja, um novo nome de pacote, um erro de digitação corrigido, quem volta pode continuar sendo mandado para a antiga.
- Um redirecionamento por aparelho dá respostas diferentes para um iPhone e para um celular Android, algo que um redirecionamento permanente não descreve.
- Uma URL de redirecionamento indexada pelos buscadores acrescenta uma página que só existe para mandar as pessoas para outro lugar.
Com o onestore.link
- Responda com um 302 (ou um 307, que também mantém o método da requisição): os navegadores perguntam de novo ao seu servidor a cada visita.
- Escolha o destino a cada requisição, a partir do user agent do visitante, para que uma mudança que você fizer valha na hora.
- Marque o redirecionamento com um cabeçalho X-Robots-Tag: noindex para que o próprio link curto fique fora dos resultados de busca.
- O onestore.link responde com um 302 e um cabeçalho X-Robots-Tag: noindex, e você pode editar as URLs das lojas a qualquer momento sem mudar o link que compartilhou.
Como fazer
Sem SDK, sem recompilação. Só uma URL.
- 1
Devolva um redirecionamento temporário
Escolha a loja a partir do user agent e responda com o status 302. Aqui como um Cloudflare Worker; a mesma lógica funciona em qualquer servidor.
// Redirecionamento temporário: os navegadores perguntam de novo ao seu servidor a cada visita export default { fetch(req) { const ua = req.headers.get("user-agent") || ""; const ios = "https://apps.apple.com/app/id0000000000"; const android = "https://play.google.com/store/apps/details?id=com.example.app"; const web = "https://example.com/download"; const to = /iPhone|iPad|iPod/.test(ua) ? ios : /Android/i.test(ua) ? android : web; return new Response(null, { status: 302, headers: { Location: to, "X-Robots-Tag": "noindex" } }); }, }; - 2
Mande os computadores para uma página, não para uma loja
Uma página de loja não instala nada num computador. Mande os visitantes de computador para uma página com os dois botões das lojas e um QR code, que também pega os iPads que se identificam como Mac.
- 3
Ou use um link hospedado
Crie um onestore.link com as URLs das suas duas lojas: ele responde com um 302 por aparelho, mantém o link curto fora do índice e permite mudar o destino depois.
Perguntas frequentes
Um 301 é ruim para um link de download de app?
É arriscado. Os navegadores podem guardar um 301 e parar de perguntar ao seu servidor, então um destino que você mudar depois não chega a quem já seguiu o link. Um 302 evita isso sem custo nenhum.
302 ou 307?
Os dois são temporários. Um 307 garante que o método da requisição seja mantido; para um link em que as pessoas tocam, que é sempre um GET, os dois se comportam igual. O 302 é a escolha mais comum.
Um 302 prejudica o SEO?
Não para um link como este. Um redirecionamento para a loja não é uma página que você queira ranquear; a página a ranquear é o seu site. Marque o redirecionamento como noindex e coloque links para o seu site nas suas próprias páginas.
O que o onestore.link envia?
Um 302 para a App Store para user agents de iPhone e iPad e para o Google Play para Android, com um cabeçalho X-Robots-Tag: noindex. Navegadores dentro de apps e computadores recebem uma página, porque ali um redirecionamento puro falha ou não instala nada.
Pronto para experimentar?
Grátis para sempre, sem senha. Seu link fica pronto em cerca de um minuto.
Crie seu link grátisComparando ferramentas? onestore.link vs bitly →