Pular para o conteúdo

O Google está indexando o seu endereço vercel.app? Como manter previews e duplicatas fora da busca

Quais endereços da Vercel o Google indexa, por que seu-projeto.vercel.app concorre com o seu domínio e o que ajustar em redirect, canonical e proteção.

4 min de leitura

Todo projeto na Vercel tem mais endereços do que o que está no seu cartão de visita. Há o seu domínio, www.yourcompany.com. Há o endereço de produção que a Vercel cria, your-project.vercel.app. E cada deploy ganha o próprio endereço, além de um por branch para os previews.

A maioria deles nunca aparece no Google, porque a Vercel cuida disso. Um deles costuma aparecer, e concorre com o seu domínio de verdade pelas mesmas buscas. Este artigo explica qual é qual e como fechar essa brecha.

O que a Vercel já faz

A Vercel adiciona um cabeçalho X-Robots-Tag: noindex, que diz aos buscadores para não indexar a página, a:

  • todo deploy de preview, ou seja, todo deploy de uma branch que não é a de produção;
  • deploys de produção antigos: quando um novo deploy é promovido, o anterior passa a responder com noindex.

O deploy de produção atual fica de fora, porque é esse o site que você quer na busca. Dá para confirmar o que um endereço envia com um comando:

Este endereço diz ao Google para não indexá-lo?
curl -sI https://your-project-git-feature-team.vercel.app | grep -i x-robots-tag

As duas brechas

1. O endereço vercel.app de produção

your-project.vercel.app serve as mesmas páginas de produção que o seu domínio, sem noindex. Se o Google encontra um link para ele (um README antigo, um teste que você compartilhou, um diretório que lista projetos da Vercel), passa a ter duas cópias de cada página e precisa escolher uma. Duplicatas não geram penalidade, mas dividem os sinais, e às vezes o Google escolhe o endereço que você não quer.

2. Um domínio próprio numa branch de preview

Se você deu a uma branch que não é a de produção o próprio domínio, como staging.yourcompany.com, a Vercel não adiciona noindex a ele. Um site de staging no Google mostra páginas inacabadas, preços de teste e conteúdo duplicado com a sua marca.

As correções

Redirecione o endereço vercel.app para o seu domínio

A correção mais limpa é um redirecionamento permanente que vale só para esse host e mantém o caminho, para que your-project.vercel.app/pricing?plan=pro caia em www.yourcompany.com/pricing?plan=pro:

vercel.json
{
  "redirects": [
    {
      "source": "/:path*",
      "has": [{ "type": "host", "value": "your-project.vercel.app" }],
      "destination": "https://www.yourcompany.com/:path*",
      "permanent": true
    }
  ]
}

Restringir ao host exato é importante: uma regra sem essa condição redirecionaria o seu domínio para ele mesmo, e um padrão amplo pegaria também os endereços de preview de que você ainda precisa.

Teste com uma página interna e uma query string. Você deve ver um 308 e o Location certo:

Conferir o redirecionamento
curl -sI "https://your-project.vercel.app/pricing?plan=pro" | grep -iE "^HTTP|^location"

Use canonicals absolutas, no seu domínio

Cada página deve declarar como canonical o próprio endereço no seu domínio, escrito por completo: <link rel="canonical" href="https://www.yourcompany.com/pricing">. Dois erros comuns:

  • Canonicals montadas a partir do host da requisição: em your-project.vercel.app, a página declara o endereço vercel.app como o principal, e a duplicata confirma a si mesma. Monte-as a partir de uma configuração fixa com a URL do site.
  • Todas as páginas apontando para a página inicial. Isso pede ao Google que ignore todas as outras páginas.

Adicione noindex às branches de preview com domínio próprio

Para staging.yourcompany.com, adicione você mesmo o cabeçalho, restrito a esse host:

vercel.json
{
  "headers": [
    {
      "source": "/:path*",
      "has": [{ "type": "host", "value": "staging.yourcompany.com" }],
      "headers": [{ "key": "X-Robots-Tag", "value": "noindex" }]
    }
  ]
}

Não bloqueie pelo robots.txt no lugar disso. Uma página bloqueada para rastreamento não pode ser lida, então o Google nunca vê o noindex dela, e o endereço ainda pode aparecer nos resultados só por causa de links.

Ligue a Deployment Protection para tudo o que não é produção

Nas configurações do projeto, a Deployment Protection com Standard Protection exige login na Vercel em todos os endereços, exceto nos seus domínios de produção, e está disponível em todos os planos. Os previews deixam de ser públicos, o que também é bom para tudo o que você ainda não anunciou. Se um serviço externo precisa acessar um preview protegido (um executor de testes, um cliente revisando), a Vercel tem opções de bypass para isso.

Limpe o que o Google já tem

Se o endereço vercel.app ou um domínio de staging já está no Google:

  1. Primeiro, publique o redirecionamento ou o noindex. O Google remove as páginas quando volta a visitá-las e vê a mudança.
  2. Pesquise site:your-project.vercel.app para ver o que está indexado.
  3. Para esconder uma página mais rápido, o Search Console tem a ferramenta Remoções. Ela esconde o endereço por cerca de seis meses; o que torna isso permanente é o redirecionamento ou o noindex.

Não apague o projeto nem o domínio para o problema sumir: um endereço que de repente passa a dar erro deixa o Google sem nada para seguir, enquanto um redirecionamento passa o histórico dele para o seu domínio.

Depois de cada deploy

Configurações como essas quebram em silêncio: um novo vercel.json perde o redirecionamento, uma atualização do framework muda a forma como as canonicals são montadas. Quando você conferir as páginas importantes depois de um deploy, como em o que um deploy pode quebrar no seu SEO, inclua a canonical e uma requisição ao endereço vercel.app.

SEOVercelHospedagem

Este artigo também está disponível em: EnglishEspañol日本語中文

Todos os artigos